記事作成 2020年9月10日
PlayMaker 1.9.0 / Unity 2018.2.6f1
これまで [FBXアニメーション] として、PlayMakerの状態遷移の中から
キー操作で、モーションを再生するノードを組んできました。
ここでは、方向キー、パッドでキャラクターモデルを移動させながら、歩行
等のモーション(アニメーション)を、自動で再生するようにしてみます。
-----------------------------
ブログページ記事 [FBXアニメーション]2 Animator
でお借りしたモデルを使い上記記事の続きとして、説明したいと思います。
(アニメーション設定等の説明を省略するためでもあります(^^)上記記事の
ノードが組んであるものとして進めます)
-----------------------------
方向キーでの操作は、十字キーでキャラクターを操作する
の方法を使います。シーンにCube を作成し動かしてみます。
(下に落ちないように Plane も用意します)
作成したCubeに状態遷移を付け、このようにアクションを並べます。
Vector3 変数 [ v3 ムーブメント ]を準備。
これで、Cubeは方向キー、WASD、ゲームパッドで動きます。
一旦Cubeを置いておいて(非表示)、モデルをみてみます。
正面を向いている場合は、RotationのY軸が -180 になっていると思うので
0 にして向こう向きにします。
前記事内容を実践してあれば、モデルMaleFree1 には、このようなノードがついてい
ます。キーASDF… で各アニメーションを再生していました。
とりあえずこれを無効にしてください。図のように、開始を空ステートにすると簡単。
Cube を表示し、モデルと位置を合わせ、モデルをCube の子オブジェにします。
-----------------------------
この状態で再生すれば、方向キーでモデルごと動かすことができるはずです。
しかし、このままでは髪の生えた動く立方体、というシュールなオブジェなので
Cube のメッシュを消します。
方向キーでモデルを移動できました。
-----------------------------
こわいですね。
移動と同時にそれらしいアニメーションを再生したいです。
モデルの状態遷移をこのようにしてみました。
開始状態で、[ Axis Event ]を使います。これは方向キー入力を感知して
イベント分岐させるアクションです。
Any Direction はとにかく上下左右の入力があれば、Yes イベントへということです。
Yesイベントは、あらかじめ作っておきます。
そして、方向キー入力があったら run のアニメーションを再生します。
前記事のステート、run の内容そのものです。
次のステートで更に方向キー入力を感知します。今度は No Direction
「何も入力がなければ」ということ。無入力の感知です。
無入力を感知すると、次のステートで、idle (直立の準備体勢)を再生します。
これらのノードは、モデル以外の空オブジェ等に、対象Objectをモデルと設定して作成
しても構いません。
何れにせよ自動再生は、アニメーション再生の条件を感知、取得して判断、実行という
流れです。記事で上げた以外にも、様々な、もっと効率のいい方法もあるんだと思い
ます。
前記事での、モデル_MaleFree1 のメカニム設定はこんな感じでしたね。
*アクション[ Animator Play ]はEvery Frame を外せば Next Frame Event は
いらないかも。
*アニメーション再生と方向キー感知は同一ステートでも。その場合
Next Frame Event なし。
シーンを再生すると冒頭の動画のように動きます。
アニメーション間の遷移(トランジション)の調節等にこだわりだすと、ブレンドを
はじめメカニムのアレコレ、CGツールでのモーション自体の調整などなど、底なし沼
のごとき世界が待っています()
とりあえずは、制作するゲームに必要十分な範囲で形にしていければよいでしょう。
0 件のコメント:
コメントを投稿