[FBXアニメーション]4 キャラ移動時のモーション

記事作成 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 件のコメント:

コメントを投稿