前回に引き続きモーション遷移を作っていきます。
今回は、前回作成したTransitionに条件式を設定し、条件が合う時にノード間の遷移が実行される様にします。条件式に使う値はAnim Graphのパラメータとして用意します。
参考資料:Amazon Game TechのYoutubeチャンネル
エディタのどこかにParametersというビューが開いているはずですので探して下さい。
これは現在のAnim graphに属するパラメータを表示する場所です。
表示されていない場合はViewメニューを開き、Parameters Windowにチェックを入れて下さい。
ParametersビューのAdd new parameterアイコンをクリックします。
Create Parameterウィンドウが開きます。
Values typeをFloat(slider)に、NameをGoに、Maximumを10に設定し、Createをクリックします。
Goという名前のパラメータが、現在のAnim graphに追加されました。
同じ手順を使って、NameをSelectに、Maximumを10に設定したパラメータを作成します。
ここから、Anim GraphビューでTransitionにCondition(条件)を設定していきます。
Anim Graphビューの左上のRootをクリックし、Motion0とStateMachine0の遷移を表示します。
Motion0からStateMachine0に向かうTransition(矢印)をクリックで選択します。
Attributeビューを見て下さい。
現在選択しているTransitionのアトリビュートが表示されています。
Add conditionボタンをクリックします。これは、このTransitionのアトリビュートに条件式を追加する為のものです。
Select A Conditionウィンドウが表示されるので、Parameter Conditionを選んで、Add Conditionをクリックします。
現在選択しているTransitionのアトリビュートにParameter Conditionが追加されました。
Parameter ConditionのSelect Parameterボタンをクリックします。これは、この条件式で使う値を指定する為のものです。
Parameter Selection Windowが表示されます。ここには、先程作成した二つのパラメータ"Go"と"Select"が表示されています。
Goを選択してOKをクリックします。
Parameter ConditionでGoパラメータの値を使う様に設定されました。
Test Functionをparam==testValueに、Test Valueを1.0に設定します。
これで、「Anim graphのGoパラメータの値を1.0にセットすると、このTransitionが有効になる」という状態になりました。
続いて、StateMachine0からMotion0に向かうTransitionを選択します。
こちらのTransitionにも全く同じ手順でConditionを設定します。
ただしこちらはTest Valueを2.0に設定します。
ここで、Transitionに設定した条件式が正しく動くのかテストしてみましょう。
AnimGraphビューを見てください。
二つのTransitionのどちらにも、中央に赤い小円が表示されています。これはTransitionがオフである事を示しています。
(注・この小円は通常時は表示が出ない事があるのですが、モーションを再生する時には必ず表示される様ですので、表示されなくても気にしないで先の説明に進んで下さい。)
このテストでは、Anim Graphのパラメータの値を変える事でそれぞれのTransitionをオンにしてみます。
まずAnim GraphでMotion0ノードをクリックで選択して黄色にします。
その状態で、Active Animgraph/Stateアイコンをクリックします。
するとMotion0がアクティブになります。
ここでParametersビューを見て下さい。Goパラメータには現在、デフォルト値の0.0が入っています。
Goパラメータを1.0にしてみて下さい。
すると、Motion0からStateMachine0に向かうTransitionの中央の赤い小円がグリーンになります。これはTransitionがオンになったという表示です。これでMotion0からStateMachine0への遷移が実行されました。
続いて、Goパラメータを2.0にしてみて下さい。
今度は逆側のTransitionの中央の小円がグリーンになります。
これでStateMachine0からMotion0への遷移が実行されました。
Transitionの切り替えが確認できたので、モーションを停止させます。
Animation EditorのViewメニューでCommand Barにチェックを入れると、Animation Editor画面の下端にCommand Barが表示されます。その中のStop all motionsボタンを押すとモーションが止まります。
(注・Command Barが表示されない場合は、ViewメニューでOpenGL Render WindowとAnim Graph以外のすべてのチェックを外し、その後でCommand Barのチェックを入れてみて下さい。)
これでテストは終了です。
次に、StateMachine0ノードの中にある各Transitionに対して同様に条件式を設定していきます。
Anim GraphビューでStateMachine0ノードをダブルクリックし、内容を表示します。
EntryNode0とMotion1を結ぶTransitionをクリックして選択します。
Attributeウィンドウに選択しているTransitionのアトリビュートが表示されています。Add Conditionをクリックします。
Select a conditionウィンドウが開きますので、Parameter Conditionを選択し、Add Conditionをクリックします。
AttributeにParameter Conditionが追加されました。
Select parameterをクリックします。
Parameter Selection Windowが開きます。リストからSelectを選び、OKをクリックします。パラメータとしてSelectがセットされます。
Test Functionをparam==testValueに、Test Valueを1.0に設定します。
これで、「Anim graphのSelectパラメータを1.0にセットすると、このTransitionが有効になる」という状態になりました。
EntryNode0とMotion2を結ぶTransitionにも、全く同じ手順でConditionを設定します。
ただしこちらはTest Valueを2.0に設定します。
EntryNode0とMotion3を結ぶTransitionにも、全く同じ手順でConditionを設定します。
ただしこちらはTest Valueを3.0に設定します。
EntryNode0とMotion4を結ぶTransitionにも、全く同じ手順でConditionを設定します。
ただしこちらはTest Valueを4.0に設定します。
これで、「Anim graphのSelectパラメータに設定した数値を1~4に変えると、それに応じて有効なTransitionが変わり、再生されるモーションが変わる」という状態になりました。
次に、各MotionノードからExitNode0に向かう残り四つのTransitionにも全く同じ手順でConditionを設定します。
ただしこれらは全てTest Valueを0.0に設定します。
これで、「Anim graphのSelectパラメータに0.0を設定すると、ExitNodeに向かう全てのTransitionがオンになり、ニュートラルに戻る」という状態になりました。
(実際はここのTransitionが無くてもニュートラルに戻るみたいですが、良くわからないので一応設定しておきました。)
以上でConditionの設定は終わりです。
テストしてみましょう。
Anim GraphでMotion0ノードをクリックで選択して黄色にし、Active Animgraph/Stateアイコンをクリックします。
Motion0が有効になり、ニュートラルモーションが再生されます。
次にParametersビューでSelectパラメータを1.0か2.0か3.0にし、Goパラメータを1.0にします。
Selectパラメータの値に応じたモーションが再生されます。
次にSelectパラメータを0.0にし、Goパラメータを2.0にします。
ニュートラルモーションに戻ります。
テストが終わったらAnim Graphを忘れずセーブして下さい。
以上でモーション遷移の作成は終了です。
次回からはLumberyard Editorでの作業です。
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment