3Dのモデルにアニメーションをさせながら、なにかに注目させたりしたいことがあると思います。ここではAnimation Riggingパッケージを利用して、視線誘導を行う処理を実装してみたいと思います。
プロジェクト・パッケージ・モデルの導入
プロジェクトの準備や必要になるパッケージを用意します。プロジェクトについてはすでに3Dのものを利用している場合はそちらを引き継いで問題ありません。URPとかBuilt-Inとか関係ないです!
プロジェクト準備
テンプレートは3D/3D URPなどを準備してください。
Third Personなど、3D系の他のテンプレートなどの利用が決まっている場合はそちらを利用しても大丈夫です
Animation Riggingパッケージを導入
Window>Package Managerでパッケージマネージャーウインドウを開きます。
Unity Registryに切り替えて、「Animation Rigging」を探します。選択できたら右下のInstallボタンを押してください。
モデルの追加
今回は可愛い系のキャラクターモデルを得意としているSURIYUNさんのFayeちゃんを使ってみました。無料のモデルでも確認出来ますが、有料アセットで試して大丈夫かを確認したかったので、以下サンプルではFayeちゃん使っていきます。
Animation Riggingのセットアップ
Rig Setup
Riggingで制御したいモデルのルートを選択した状態で、ツールバーのAnimation Rigging>Rig Setupを選択します。
Multi-Aim Constraint
追加されたRig 1の子供に空のGameObjectを追加し、そのGameObjectにAnimation Rigging>Multi-Aim Constraintというコンポーネントを追加してください。
コンポーネント内のセットアップを行う前に、モデルのルートを選択した状態で、Animation Rigging>Born Renderer Setupを選択してください。下図の様にモデルの構造が選択しやすくなります。
Constrained Objectのセット
Bornを目安に、体から頭にかけてつながっているオブジェクトをセットします。首よりに頭があれば、頭の方を優先してセットしてください。
Axisの設定
Constrained ObjectにセットしたTransformに対して、各軸を設定する必要があります。各軸の意味は以下。設定を行う場合は、対象のGameObjectを選択した状態でTransformの矢印を表示させると確認しやすいですが、1点注意があります。
表示させる矢印を必ずLocal座標系に切り替えてください。シーンビューの上部に、地球みたいな表示があれば、そこから切り替えが可能です。
軸名 | 解釈 | 下図だと |
---|---|---|
Aim Axis | 目で追う方向 鼻の向きなど | 緑の矢印方向と一致させたいのでY |
Up Axis | 頭頂部の方向 | 頭の方向に合わせたい。 赤い矢印の逆方向ということで-X |
今回は目線を向けるときのたとえでしたが、監視カメラや銃口など人間以外の場合にはうまく置き換えながら当てはめてください
なにかに目線を配る
基本セットアップが完了したら、実際に目配せしてみましょう。
カメラ目線
手っ取り早いのはMain Cameraをセットして、カメラ目線にしてもらうのが良いでしょう。
Multi-Aim Constaint>Source Objectsにカメラをセットしてください。
準備が出来たらゲームを実行してカメラを動かしてみましょう。うまく設定できていればカメラをずっと見続けてくれるようになります。
カメラ以外のオブジェクト
やることはカメラと同じです。キャラクターに注目させたいTransform(GameObject)をセットするとそちらを注視するようになります。
野球場で観客が弾道を追いかけるとかって表現にもってこいですね。
注目状態を解除する方法
設定をしてしまうと、基本的にずっと注目した状態になります。コンポーネントを外しても解除されますが、ぱっと注目をやめてしまいます。
注目具合を調整するには、RigコンポーネントのWeightを0にするか、Multi-Aim ConstraintのWeightを0にするかで注目を辞めることが出来ます。RigはMulti-Aim Constraint以外の設定を行っている場合、他の機能も失われるため、注目のみを調整したい場合は
コメント