はじめに
猫背気味のアバタにUnityでアニメーションをつけようとしたところ、背筋が強制的に伸ばされる問題に遭遇しました。そのため今回は問題となった状態までの再現と、それから解決に至るまでの手順を備忘録にと書き起こしました。
以下の人は参考になるかも:
任意の姿勢でアニメーションを適応したい人
アニメーション中のみアバタの姿勢を変えたい人
注)本記事ではimportしてきたモデルをアバタ、animationを適応させるために必要な情報をAvatarとしている
環境ならびに使用アセット
Unity 2021.3.5f1
Basic Motions FREE(2020.3.18以降しか対応していないため注意)
使用したいアバタを用意する
今回はMakehumanで自作したアバタを使用
このアバタを猫背にしてUnity上で利用したいため、さらにblenderでアーマチュアをまげ理想形に変形させる
Unityで動かす
まず準備として先ほど作成したアバタと「Basic Motions FREE」をUnityにimportする。
アバタ名はnekoze_male1とした。
今回使用するアバタは、アニメーションを適応させるために必要なアバタ情報を持っていなかったため作成する。
Inspectorよりanimatorコンポーネントを加え、Avatar欄をクリックしてもnekoze_male1のAvatarがないことがわかる。
(上記のBasicMotionはBasic Motions FREEに内包されているモデルのAvatar)
アバタ情報の作成
[Project]-[Assets]より自身がimportしたアバタを左クリックする。するとInspector欄が以下の画面に切り替わる。
[Rig]-[Animation Type]-[Humanoid]の順で選択し、ApplyをクリックするとAvatarが作成される。
(先ほどでなかったnekoze_male1が存在してる)
しかしControllerにBasicMotions@WalkをアタッチしGame modeを起動すると、猫背のアバタにも関わらずきれいな姿勢で歩き出してしまう。
(動画を入れたかったのですが方法がわからず静止画となっています)
問題の解決方法
先ほどAvatarを作成するための画面まで行き、Configureをクリックすると以下の画面が開く。
これはアバターがアニメーションを実行する際の姿勢を表している。
先ほどはこちらを変更していなかったために、Scene上では猫背になっていたアバタに歩行のアニメーションを適応するときちんと背筋を伸ばして歩いてしまった。
これを解決する方法は2つある。
①直接アバタを操作する
画面中央にあるアバタのボーンを直接動かすことによって任意の姿勢を作る方法である。
この方法のメリットとして
・事前準備なしに姿勢を作成できる
・アニメーションを見て変更が行えるため微調整しやすい
・アニメーション上の姿勢を指定しているためanimatorのControllrに何か指定しない限り、従来の姿勢をとる
といったことが挙げられる。
②元の姿勢を使用する
Inspectorの最下部に位置しているPoseタブを開くと以下のタブが出てくる。
・Reset
アバタが本来持っていたボーン情報を適応させる
・Sample Bind T-Pose
サンプルのTポーズをとらせる
・Enforce T-Pose
現在のボーン情報をもとに、強制的にTポーズをとらせる
[Reset]-[Enforce T-Pose]の順にクリックすると、任意の姿勢でアニメーションに対応したAvatarが作成される。
([Reset]-[Enforce T-Pose]の順に実行した結果)
こちらのメリットは
・事前に情報を作っていた場合スムーズに作業が行える
といったことが挙げられる。
おわりに
ここが間違っている、ここがよくわからない等ありましたら連絡いただけると幸いです。