【Unity】ナビメッシュエージェントを椅子に座らせる
ナビメッシュエージェントコンポーネントを付けたキャラクターを自然に椅子に座らせてみました。 モーションを用意 歩きと立ち(Idle)以外に、椅子に座るモーションをインポートします。 椅子を置く Cubeを作り、キャラクタ… 続きを読む »
ナビメッシュエージェントコンポーネントを付けたキャラクターを自然に椅子に座らせてみました。 モーションを用意 歩きと立ち(Idle)以外に、椅子に座るモーションをインポートします。 椅子を置く Cubeを作り、キャラクタ… 続きを読む »
一人称のプレイヤーに人型の影をつけて、立ち/しゃがみの歩きモーションをつけてみました。 モデルとアニメーション まずBlenderでキャラクターモデルに「歩く」と「しゃがみながら歩く」のアニメーションを付けました。 アニ… 続きを読む »
インポート設定でアニメーションクリップにカーブを追加して、アニメーションとエフェクトを連動させてみました。 カーブを追加する まず、アニメーションを付けたCubeをインポートして、そのFBXファイルを選択し、インスペクタ… 続きを読む »
Blenderで作った歩きやターンのアニメーションをTPSキャラクターに設定して、操作してみました。AIのキャラクターにも同様に使えました。 Blenderでアニメーションを作る スタンダードアセットのTPSコントローラ… 続きを読む »
アニメーションの再生ヘッドの位置をスクリプトで指定して、ゲージが満タンになったときにちょうど再生が終了するようにしてみました。 まずCubeに、適当にカメラを横切るアニメーションを付けて、AnimatorウィンドウでFl… 続きを読む »
スクリプトでステートごとにアニメーションのスピードを変更してみました。 まずFloat型のパラメーターを作って、スピードを変えたいステートを選択してインスペクタを見ます。 Speed Multiplierの右端のチェック… 続きを読む »
UIのパネルとテキストでポップアップウィンドウを作ってみました。テキストだけでボタンは無く自動で画面外に流れます。 まずポップアップを表示するCanvasを作って、UI Scale ModeをScale With Scr… 続きを読む »
Blenderで複数のオブジェクトにアニメーションを付けて、Unityの一つのアニメーターコントローラーで再生してみました。 まずバットをキャラクターの子にして、それぞれに別々のアクションを作りました。 子オブジェクトで… 続きを読む »
アニメーションが終了したときに毎回イベントを呼ぶようにして、中身のメソッドを変えてみました。 キャラクターにはアニメーターとスクリプトが付いています。アニメーターコントローラーでは、何も無いステートから、トリガーによって… 続きを読む »
NPCに追加したスクリプトを、NPCのアニメーターコントローラーのStateMachineBehaviourのフィールドに入れて、NPCを非アクティブにすると、インスペクタの変数の欄にNoneと表示されてしまいます。 S… 続きを読む »
バケツを左クリックすると中に入って隠れます。隠れている間、蓋を少し開けて隙間から外を見れるようにします。 一人称視点でロッカーの中に入って隠れるのと同じ方法で、バケツの方を向くようにFPSコントローラーを移動させて、蓋を… 続きを読む »
キャラクターコントローラーで動かす一人称視点のプレイヤーをアニメーションで動かしてみます。直接Animaorコンポーネントをつけると問題があったので、アニメーションを付けた別のゲームオブジェクトに乗せて動かします。 まず… 続きを読む »
アニメーターコントローラーで次のステートに遷移するときに、「または」を使った条件を設定します。 まず2つのトリガーパラメーターと、2つのステートを行き来する遷移を作ります。 右側の矢印をクリックしてインスペクタのCond… 続きを読む »
左クリックを長押ししている間に作動するものを作って、その進行度を進行バーで表示します。進行中はアニメーションさせて音声を鳴らし、終了すると別の音を鳴らします。 まずCubeにコライダーとスクリプト、アニメーター、オーディ… 続きを読む »
リロードのアニメーションを作ってアニメーターコントローラーに設定してみました。 まずBlenderで作ったアニメーションをインポートして、アニメーターコントローラーの新しいステートにアタッチしました。アニメーションはブレ… 続きを読む »
弾数を制限して、弾を発射するたびに一つ減らしていき、0になったら撃てなくします。前の記事のスクリプトに少し加えるだけでできます。 using System.Collections; using System.Collec… 続きを読む »
マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »
前の記事で攻撃可能ステートから攻撃中のステートへ遷移している間はまだ攻撃可能ステートに留まっていると思ったのですが、遷移中はその後の攻撃中のステートも有効になるようです。 攻撃ステートが有効でマウス左クリックすると攻撃す… 続きを読む »
振り向いている時に敵からプレイヤーが見えたら再度歩きのステートに遷移させる処理をStateMachineBehaviourで行います。 まず、敵のアニメーターコントローラーのBaseレイヤーのインスペクタでAdd Beh… 続きを読む »
前の記事では、ナビメッシュエージェントをアニメーションで振り向かせようとすると、ルートのオブジェクトはそのままで、ボーンだけが回転してしまいました。 これはアニメーションのインポート設定でRoot Transform R… 続きを読む »