タグ付けされた質問 「unity」

Unityは、簡単なアートパイプラインプロセスに焦点を当てたクロスプラットフォームのゲーム作成システムです。ゲームエンジンと統合開発環境で構成されています。ゲームエンジンのスクリプトはMono上に構築されています。

1
アルファブレンドスプライトを通してシルエットを見るシェーダー
Unityで、これらの例のようなシースルー効果を達成したいと思います。 私の特定のシナリオには、いくつかの要件があります。 スプライトはアルファブレンディングを使用しており、スプライトには透明な領域があります。 キャラクターを遮る2種類の要素があります。1つはシルエット効果を作成し、もう1つは通常のように動作する必要があります。 シルエットを作成する要素を遮蔽するには、ZWriteを有効にし、そうでない要素では無効にします。 キャラクターについては、シェーダーのキューをtransparent + 1に設定して、このパスを追加しました。 Pass { ZTest Greater Lighting Off Color [_Color] } そして、効果は部分的に機能します: シルエットは、透明な部分も含めて、キャラクター全体に描かれます。透明な部分はシルエットを作成しないでください。 シルエットは、スプライトの一部が透明であっても、キャラクターがスプライトの背後にあるときに作成されます。スプライトの透明な部分の後ろにいると、シルエットが作成されません。 キャラクターは、要素の後ろにある場合でも、残りの要素の前に表示されます。これは、キューをTransparent + 1に設定しているためだと思います。ただし、透明のままにすると、キャラクターは正しい順序で描画されますが、シルエットは表示されません。 私は誰かが私に与えたこれらのヒントに従おうとしましたが、私はそれを機能させることができません: 1)スプライトをレンダリングするパスはそのままにします。 2)zバッファーに書き込むパスを追加しますが、clip()を使用してアルファに基づいてピクセルを破棄するシェーダーがあります。z-bufferを使用して、MSAAおよびalpha-toカバレッジを使用せずにソフトzテストを作成することはできません。その品質は素晴らしいものではありませんが、あなたができる最善の方法です。より高速な代替手段は、パターンまたはノイズディザーです。スプライトのエッジがかなり鋭い場合は、古き良きしきい値を使用します。 3)zテストを使用してオクルージョンカラーを描画するオクルード可能なオブジェクトに3番目のパスを追加し、最終パスとして描画されることを確認します。 私は、特にUnityのシェーダーに慣れていないので、適切に機能させる方法がわかりません。

1
Motion SimulatorプラットフォームでのOculus Rift
現在、既存の(物理的に)大規模なモーションシミュレータプラットフォーム用のVR環境を開発しています。ユーザーはこのモーションプラットフォームに座って加速し、傾けて、研究用カーシミュレーター環境でモーション感を誘発できます。Oculus Riftポジショナルトラッカーは、PCで行うのと同じように、ユーザーの前の移動プラットフォームに既にマウントされています。 現在使用している3DエンジンはUnity 5.3です。プラットフォームの回転角度と直線加速度はすでにUnityに入力されています。しかし、結果は私が目指したものではありません。プラットフォームを傾ける限り回転補正はうまく機能しますが、角速度がゼロになると、トラッカーはリセットされます。線形加速度補正は、常に真の静止点を中心にジッタします。 既に、ネイティブUnity VR実装とOculusプラグインを使用してみました。ただし、センサーフュージョンはこのレベルでは使用できません。Oculusフォーラムにはこの問題に関する多くのトピックがありますが、解決策は見つかりませんでした。 Oculusを移動プラットフォームで使用するために試すことができる代替手段はありますか? 私が理想的にやりたいことは、さらに処理する前に、Oculusセンサーデータから誘導された動きを差し引くことです。私はすでにLibOVRなどのパッチを適用することを検討しましたが、役に立つセンサーフュージョン関連の機能もそこに見つかりませんでした。
12 unity  motion  oculus 


6
複数の色を色分けする方法は?
Unityドキュメントでこれに対する解決策を見つけるのはかなり難しいと感じました。 Color.Lerp(Color a, Color b, float t) は、ステップtに従って色を徐々に変化させ、Color bの最終値を与える関数です。 どうすれば複数の色の間を次々と検索できますか?
12 c#  unity  color  lerp 

4
Unity 5のガラス素材
Unity 5でガラス素材を作る方法を知っている人はいますか? 金属や画像のテクスチャーは作成できますが、ガラス素材の作成方法がわかりません。 Googleで検索してもUnity 5については何も得られないので、かなり簡単にできるはずです。 このようなシャワードアと飛行機のガラス用です:

1
Substanceのランタイムテクスチャキャッシングを停止するにはどうすればよいですか?
サブスタンスエンジンを使用したプロシージャルテクスチャは、キャッシュをオフにし、公開された変数を一度に1つずつ変更し、頻繁に変更し、さらに2、3回変更を試みた後でさえ、非常に迅速に更新されるようです。 ただし、基本的には反対です。たとえば、ユニットには、ダメージを受けたときに異なる方法で血液を生成する「血液」変数と、傷やへこみを生成するが治癒しても元に戻らない「戦闘服」変数があります。 そのため、変数がキャッシュされないようにするには、変数をダミー値に設定し、通常に戻してからを呼び出す必要がありますRebuildTexturesImmediately。 実行時にSubstanceに変数をキャッシュしないように指示するにはどうすればよいですか?一度変更すると、テクスチャをすばやく再生成できますか?

1
動的モデルの相互作用
多くのゲーム(アーカムアサイラム/シティ、マンハント、ヒットマンなどのゲーム)で、あなたのキャラクターがあなたの前のキャラクターを「つかみ」、それらに何かをできるようにするために、どのようにそれを行うかについて私は興味があります。これは非常に紛らわしいように聞こえるかもしれませんが、例としてyoutubeにアクセスして「ヒットマンの処刑」を検索します。最初のビデオは私が求めているものの例です。 基本的に、どのようにしてあなたのモデルがあなたが遭遇する他のモデルと動的に相互作用するのか疑問に思っています。そのため、ヒットマンでは、繊維ワイヤーで他のモデルの後ろに来ると、他のキャラクターを絞め殺したり、麻酔薬を持っていると、人が苦労している間、口に手を置いて、ゆっくりと床に行きます。特定の骨/骨格識別子を使用して2つのモデルを使用するようにアニメーション化されたかどうかは、実際に相互作用しているように見えるように正しいタイミングで再生される2つの完全に別々のアニメーションだけである場合、または他の何かがすべて一緒になっているかどうかについて混乱しています。 私はアニメーターではないので、私が言ったことのほとんどは正しくないと思いますが、誰かが私の意味を理解し、答えを提供できることを願っています。 PS)私はプログラマーであり、そのゲームスタイルが大好きだからといって、ヒットマネスクゲームを構築しているところです。モデルとプログラミングの両方を含む例(現時点ではc ++と主にOgre3Dを使用していますが、統一とXNAを使用しています)とても感謝しています。 ありがとう。
12 xna  unity  animation  models  ogre 

3
ユニットの敵の「認識」をどのように実装すればよいですか?
Unity3dを使用して、RTS / TDハイブリッドプロトタイプゲームを開発しています。ユニットと敵の間の「認識」のための最良のアプローチは何ですか?すべてのユニットがすべての敵までの距離をチェックし、範囲内であれば交戦するのは正気ですか? 私が今行っているアプローチは、すべてのユニットにトリガー球を置くことです。敵がトリガーに入ると、ユニットは敵を認識し、距離チェックを開始します。これはいくつかの不必要なチェックを保存しますか? ここでのベストプラクティスは何ですか?
12 ai  unity  rts 

2
Unity Game Engineに音声認識機能を組み込むにはどうすればよいですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 Unity Game Engineに音声認識機能を組み込むにはどうすればよいですか?使用できるプラグインまたはフレームワーク(できればフリーウェア)はありますか?もしそうなら、それをインストールする方法について何かアイデアはありますか?また、ゲームへの音声入力を妨げるゲームのバックグラウンドノイズがどの程度問題になりますか?これを使用する市場のゲームの例はありますか?(Torque Game Engineのスペイン3Dを除く)。
12 unity 

6
Unreal Engine 3対id Tech 3対Unity [終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 7年前に閉鎖されました。 ゲームの構築を開始するために使用するエンジンを決定しようとしています。 Unityを選択しましたが、Unreal Engine 3がちょっと自由に使えるようになったと聞いて、自分の決定に疑問を抱きました。 技術的には、Unrealが依然として最も高価であり、Unity、id Tech 3(無料)です。 しかし、それはまた、作業するのが最も速いかもしれませんか?または単に最も強力ですが、Unityは実際にあなたのために非常に多くのことをしますので、これで作業し、パフォーマンス/チューニング(Java / C#など)にヒットするのが最も理にかなっています。 考えてください、3つすべての経験から誰でも話すことができますか? 私は運命の日から改造を経験し、その後Quake 1とHalf Lifeで経験しました。3DS Maxの経験もあります。現時点では、C ++アニメーションとレンダリングの問題の核心に本当に入り込むことを望んでいません。それが可能かどうかを確認するために、何かをすばやく実行して実行したいのです。しかし、Unrealの経験は私を大いに誘惑します。
12 unity  unreal 

2
Unityがリフレクションを使用して更新メソッドを取得するのはなぜですか?
なぜアクセスするために、ユニティ使用リフレクションを行うMonoBehaviourようなメッセージ法Awake、Update、Start、...? リフレクションを使用するのは遅いのではないでしょうか?なぜ他のアプローチを利用しないのTemplate Methodですか?MonoBehaviour基本クラスでメソッドを抽象として定義し、サブクラスにそれを実装させるだけです。
12 unity  c#  performance 

5
Unity:親スクリプトから、子オブジェクトで発生する衝突を検出する方法は?
私はこの構造で敵を持っています 敵 体 頭 左腕 右腕 等々。 体の各部分にコライダーも持っています。「敵」オブジェクトにスクリプトを添付しました。そのスクリプトで、身体、頭、腕、左などの衝突(弾丸)の可能性を遮断したいと思います。 これを行う方法はありますか?

3
Lerping関数でTime.deltaTimeを使用する理由
私の理解では、Lerp関数は、との間の3番目の値()を使用して、2つの値(aとb)の間を補間します。で、値aがで、返される値は、返されます。値0.5で、途中の間とが返されます。t01t = 0t = 1bab (次の図は、滑らかなステップで、通常は3次補間です) 私はフォーラムを閲覧していて、この回答で次のコード行を見つけました。transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime); 「なんてばかだ、彼にはわからない」と私は思ったが、40以上の賛成票があったので、試してみて、十分に機能した。 float t = Time.deltaTime; transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, t); Debug.Log(t); との間0.01でランダムな値を取得し0.02ましたt。関数はそれに応じて補間すべきではありませんか?これらの値が重なるのはなぜですか?Lerpについて私が理解していないのは何ですか?

1
堅牢なアイテムシステムの作成
私の目的は、次のようなものを処理できる、可能な限り一般的なアイテムシステムを作成することです。 アップグレード可能なアイテム(+6カタナ) ステータス修飾子(+15器用さ) アイテムモディファイア(Yダメージを与える確率%X、フリーズする確率) 充電アイテム(30回使用の魔法使い) セットアイテム(4セットのXセットを装備してY機能を有効化) レアリティ(共通、ユニーク、伝説) 劣化(一部のクラフト材料に分割) 製作可能(特定の材料で製作可能) 消耗品(5%%X攻撃力、回復+15 hp) ※以下の設定で太字になっている機能は解決できました。 今、私は私が考えていることを反映するために多くのオプションを追加しようとしました。必要な機能をすべて追加するつもりはありませんが、必要に応じて実装できるようにしたいと考えています。これらは、在庫システムおよびデータのシリアル化とも互換性がある必要があります。 私は継承をまったく使用せず、エンティティコンポーネント/データ主導のアプローチを使用することを計画しています。最初は、次のようなシステムについて考えました。 BaseStat:外出先で統計を保持する汎用クラス(アイテムとキャラクターの統計にも使用できます) 項目:リスト、名前、項目タイプ、およびui、actionName、説明などに関連するものなどのデータを保持するクラス。 IWeapon:武器のインターフェース。すべての武器には、IWeaponが実装された独自のクラスがあります。これには、Attackとキャラクター統計への参照があります。武器が装備されている場合、そのデータ(アイテムクラスのstat)がキャラクターstatに挿入されます(BaseStatが何であれ、それはStatボーナスとしてキャラクタークラスに追加されます)したがって、たとえば、剣( jsonを使用してアイテムクラスを作成する)ため、剣はキャラクターのステータスに5攻撃を追加します したがって、BaseStatは( "Attack"、5)になります(enumも使用できます)。このステータスは、装備するとBonusStat(別のクラスになる)としてキャラクターの "攻撃"ステータスに追加されます。したがって、SwordはIWeaponを実装するという名前のクラスが作成されます。アイテムクラスが作成されます。そのため、この剣にキャラクターのステータスを挿入し、攻撃するときに、キャラクターのステータスから合計の攻撃ステータスを取得し、攻撃方法でダメージを与えることができます。 BonusStat:BaseStatに触れずに統計をボーナスとして追加する方法です。 IConsumable:IWeaponと同じロジック。直接統計の追加はかなり簡単(+15 hp)ですが、この設定で一時的な武器を追加するかどうかはわかりません(%xで5分間攻撃する)。 IUpgradeable:これは、このセットアップで実装できます。私は武器をアップグレードするときに増加する基本ステータスとしてUpgradeLevelを考えています。アップグレードすると、武器のBaseStatを再計算して、アップグレードレベルに一致させることができます。 この時点まで、システムはかなり良いと思います。しかし、他の機能については、他に何かが必要だと思います。たとえば、BaseStatはこの機能を処理できず、これが行き詰まったため、Craftable機能をこれに実装できないからです。すべての材料をスタットとして追加できますが、それは意味がありません。 これを簡単に投稿できるようにするために、次の質問を参考にしてください。 このセットアップを続行して他の機能を実装する必要がありますか?継承なしでそれは可能でしょうか? 継承なしでこれらの機能をすべて実装するために、あなたが考えることができる方法はありますか? アイテムモディファイアについて、どうすればそれを達成できますか?それはその性質上非常に一般的だからです。 この種のアーキテクチャを構築するプロセスを容易にするために何ができるか、推奨事項はありますか? この問題に関連する掘り出し物はありますか? 私は本当に継承を避けようとしていますが、継承をかなり維持できるように維持しながら、継承によって簡単に解決/達成できると思いますか? さまざまな側面や人から知識を得ることができるように質問を非常に広くしているので、1つの質問に自由に答えてください。 編集 @ jjimenezg93の答えに従って、C#でテストするための非常に基本的なシステムを作成しました。あなたがそれに何かを追加できるかどうかを確認してください: public interface IItem { List<IAttribute> Components { get; set; } void ReceiveMessage<T>(T message); …

2
これらの2つのコードのどちらが「より良い」ですか?ローカル変数またはクラス変数を作成しますか?
私はより多くのゲームを作り、より愚かな質問をしています。 うまくいけば、これは非常に簡単です。剛体に力を加えてPlayerオブジェクトを移動するだけの非常に基本的なクラスを作成していますが、rbへのクラス参照を作成するのか、Update every frame内のローカル変数を作成するだけなのでしょうか?(これは、Monobehaviour.GameObject unity親クラスにすでに存在していることを念頭に置いてください)。 多くのローカル変数を実行するとループ全体の速度が低下するのではないかと思います(ローカルとは、クラスの先頭ではなく、関数自体の内部を意味します。正しい用語を使用してください)。 これが私が言いたいことです、私がそれをすることを考えていた2つの方法: public class Player : MonoBehaviour { private void FixedUpdate() { Rigidbody rb = GetComponent<Rigidbody>(); float v = Input.GetAxis("Vertical"); rb.AddForce(v * rb.transform.forward * Const.walkForce); } } または... public class Player : MonoBehaviour { Rigidbody rb; private void Awake() { rb = GetComponent<Rigidbody>(); } private …
11 unity  c#  game-loop 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.