IshidaGames【UnityC#講座】AnimatorControllerの使い方Tweetnoteで管理人イシゲーのゲームの思い出記事を100円で公開しました。■■■Unity2018.1.5f1Windows10□このブログでは何度もAnimatorControllerを扱ってきましたが、同じことを何度も説明しないといけないことが多くなってきたのでまとめ的な記事を書くことにしました。ここではAnimatorControllerの基本的な設定とスクリプトの書き方を説明します。■AnimatorControllerの部位の名称AnimatorControllerを出すAnimatorControllerはProjectウィンドウから出します。Controllerこのようなアイコンが出ます。これをダブルクリックして開いてみましょう。これがAnimatorControllerウィンドウです。ひとつひとつ見て行きましょう。Layersアニメーションもレイヤーで重ねることができます。表情をつけたりピンピンした状態から瀕死の状態に変化させたりなど、部位ごとに別のアニメーションをさせるのに使います。+ボタンで増やします。Parametersアニメーションを遷移させる条件を設定しスクリプトで操作する時に使います。これも+ボタンで増やすのですが、こちらは4種の中から選ぶ必要があります。Floatは小数点以下の数値が使えます。BoolはTrue/Falseの2つの条件です。TriggerはBoolのTrueしかないバージョンです。設定するとこのようになります。Stateとは次は罫線の部分に行きましょう。ここはマウスホイールで拡大縮小が、ドラッグで画面を動かすことができます。そこにある長方形のものがStateでそれもドラッグで動かせます。Stateとはアニメーションクリップを格納し様々な設定をする機能です。最初にあるこの3つですが、Entryは最初にアニメーションの遷移がスタートするStateです。StateはどこからでもアクセスできるState。Exitに遷移すると最初のEntryに戻ります。Emptyで作れます。アニメーションクリップをそこにドラッグ&ドロップしても作れます。Treeはアニメーションを混ぜることで滑らかに遷移させるシステムです。Machineは複数のStateを一か所にまとめるフォルダみたいなものです。StateMachineはそのレイヤーのStateの設定を丸々コピーしPastで貼り付けます。Stateを作ると一番最初に作ったものだけ黄色くなりEntryと線でつなげられます。これはゲームを実行した時に一番最初に遷移されるStateです。スポンサーリンクStateにアニメーションクリップをセットする次はStateをクリックした時に出るInspectorをチェックしてください。Stateと書かれた部分からそのStateの名前を変えられます。Motionはアニメーションクリップをセットするところで、そこにドラッグ&ドロップするか空欄の右端の丸ぽちをクリックしてセットします。Speedは再生されるアニメーションのスピードです。Timeは正規化されたアニメーションの再生時間だそうです。Mirrorはチェックを入れるとアニメーションが反対になります。Offsetはアニメーションのループを開始するための位置の値だそうです。IKは足を自然な動きにするための機能です。Defaultsは設定されていないアニメーションの起動時のパラメータをデフォルト値として使うかどうかです。Behaviourからはスクリプトをセットすることができます。Transitionを出すTransitionとはStateをつなぐ線です。アニメーションはそれに従って遷移します。Transitionを選択し、遷移したいStateをクリックすることでセットできます。Transitionを設定するTransitionをクリックしてInspectorを見てください。HasExitTimeはチェックを入れると遷移元のStateのアニメーションの再生が終わってから遷移します。Settingsからはもっと細かく設定できます。ConditionsからParametersをセットできます。+ボタンを押して出てきた欄に先ほど設定したParametersをセットします。できたAnimatorControllerは動かしたいキャラクターのオブジェクト、ないしはその親オブジェクトのAnimatorコンポーネントにセットします。Avatarが動かしたいキャラクターのデータです。Motionはチェックが入っているとアニメーションの動きを元に移動します。それが困る場合はチェックを外しましょう。■AnimatorControllerをスクリプトで操作するさて、次はスクリプトでの記述の仕方です。Start()でAnimatorコンポーネントを取得し、Animator.Set~という形で使います。引数の””で囲まれているのは使うParametersの名前で、SetFloatとSetIntの場合は数値かそれぞれの変数が2つ目に入り、BoolだとTrueかFalse、あるいはBool変数が入ります。SetTriggerはParametersの名前だけで良いです。このスクリプトですが書き方を教えるためのもので実際には動かせません。動く実例は以下で紹介する関連記事をご覧ください。【UnityC#講座】3D人型モデルを三人称視点で動かす【ユニティちゃん】アニメーションを合成してより滑らかに遷移させます。Controllerを上手く使いたいスクリプトから様々な遷移のさせ方をします。SetLayerWeight【UnityC#講座】ユニティちゃんの表情を替える【SetLayerWeight】Layerを使いキャラクターの表情を替えます。AnimatorOverrideController【UnityC#講座】AnimatorControllerを使いまわす【AnimatorOverrideController】State,Transitionの設定をそのままに別にアニメーションクリップをセットして他のキャラクターに使います。今回はこれで終わりです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。