Tuesday, October 2, 2018

Amazon Lumberyardで自作のキャラクターモデルを動かしてみる(3) -モーション遷移(1)-

今回から各モーション間の遷移を作っていきます。
今回は、Anim graph上で必要な各ノードを作成し接続する所までを行います。

参考資料:Amazon Game TechのYoutubeチャンネル

Anim Graphを開きます。
(いくつか関連するウィンドウが開きますが、とりあえず気にしないで下さい。)


Anim Graphビューが開きました。


Newアイコンをクリックし、新規Anim graphを作成します。


新規Anim graphが作成され、背景がグリッドになります。


作成したAnim graphのファイル(EMotion FX Anim Graphファイル)をとりあえずセーブしておきましょう。Saveアイコンをクリック→Saveを選択してファイルブラウザを出し、任意の場所に適当な名前でセーブします。

この先も、Anim graphは随時セーブして下さい。

エディタのどこかにAttributesというビューが開いているはずですので見つけて下さい。

(もし表示されていない場合はViewメニューを開いてみて下さい。Anim Graphを表示した時点でViewメニューの内容が増えており、その中にAttribute Windowという項目が確認出来ますのでチェックを入れて開きます。メニューの内容が増えていない場合は、Viewのチェックをつけたり外したり、ビューを選択したり外したり、色々試してみて下さい。)

AttributesビューにAnim graphのアトリビュートが表示されています。その中のPreview withプルダウンを開き、前回作ったMotion setを選択します。

これで、前回作ったMotion setでプレビューされる様になりました。

Anim graphビューに戻ってください。
グラフ内でマウス右ボタンクリックでメニューを出し、Create Node - Sources - Motion を実行します。


グラフ内に"Motion0"というノードが出現します。これが、モーション遷移の起点となるノードです。


作成した"Motion0"ノードをクリックで選択して下さい。ノードが黄色になります。
選択したら再びAttributesビューを見て下さい。
選択した"Motion0"ノードのアトリビュートが表示されています。


AttributesビューのMotionsのSelect Motionsをクリックすると、モーション選択画面が出て、"Motion0"ノードに割り当てるモーションが選択できる様になります。


先程述べた通り"Motion0"ノードはモーション遷移の起点になるので、ニュートラルモーションを割り当てる事にします。


ニュートラルモーションが割り当てられました。


次に、他の各モーションを格納しておくState Machineというノードを作成します。
グラフ内でマウス右ボタンクリックでメニューを出し、Create Node - Sources - State machine を実行します。


"StateMachine0"という名前でState Machineが作成されました。


作成された"StateMachine0"ノードをダブルクリックして下さい。Anim graphの表示が"StateMachine0"ノードの内容に切り替わります。
ここに使用する各モーションのノードを作成して行きます。


先程と同様にグラフ内でマウス右ボタンクリックでメニューを出し、Create Node - Sources - Motion を実行してノードを作成した後、そのノードのアトリビュートでモーションを割り当てます。
ここでは3つ作成し、それぞれに「パンチ」「伸び」「膝上げ」の各モーションを割り当てました。


ここから、今まで作成した各ノードを接続して行きます。
まずAnim Graphの左上のRootをクリックして、最初の画面に戻します。


Rootの画面に戻り、最初に作成した"Motion0"ノードと"StateMachine0"ノードが表示されます。


"Motion0"ノードの外枠に触れる位の位置にカーソルをあわせると、カーソルが指さし形に変化します。
そのまま"StateMachine0"ノードの外枠に触れる位置までドラッグしてドロップすると、矢印が作成されます。
この矢印をTransitionといいます。


同様に、"StateMachine0"から"Motion0"にもTransitionを作成します。

"StateMachine0"をダブルクリックしてAnim graphの表示を"StateMachine0"ノードの内容に切り替えて下さい。
先ほどと同様に各ノードの間にTransitionを作成します。



これで各ノードの接続は終わりです。
まだ途中ですが、一度Anim GraphビューのSaveアイコンからセーブしておいて下さい。
次回は、各Transitionに遷移のフローを制御する為の条件式を設定して行きます。

No comments: