概要
タイトルにもある通り、特定のアニメーションAとBをブレンドすると、ブレンド中に首が1回転するバグに遭遇。
この問題を解決したので記録に残す。
バグの内容
こんな感じでブレンドすると首がクルっと1回転するようなバグに遭遇。
ブレンドはTimelineで行って、Animtorで行っても同じ結果になる。
結論
今回のバグの原因は、アニメーションFBXのインポート方法に問題があった。
↓これはアニメーションFBXのRigタブの一部
Avatar Definition
が、Create From This Model
となっている。
ここを、Copy From Other Avatar
にし、アニメーション生成に使用したメッシュのアバターを設定することで解決した。
詳細
Avatar Definition
について、Unityのドキュメントでは、
デフォルトでは、Avatar Definition プロパティは Create From This Model に設定されています。この設定では、Unity はファイル内で定義された一揃いのボーンをヒューマノイドアバターにマップしようと試みます。
とある。つまり、AvatarをUnityが自力で作というわけだ。
↑①Unityが自力で作成したアバター、neck_01
のノードの向きが、緑が前方を向いている。
↑②Animation生成時に使用したメッシュのアバター、見てわかるとおり、首ノードの向きが逆を向いている。
このようなアバターのノードのズレがある状態のまま、アニメーションをブレンドしても当然うまく動かない。なので、ちゃんとアニメーションを生成した時に利用したメッシュのアバターを使って、アニメーションFBXをインポートしましょう。というお話でした。
以上