poi’s tech blog

3D多人数同時接続型球体アクション成人向けゲーム開発のためのアイデア、ナレッジ

Animatorで全身のアニメーション再生しながらブレンドシェイプで表情だけ変えたい

もともとAnimatorの状態遷移で歩かせながらブレンドシェイプで表情を切り替える算段だった。

f:id:poipoipoip:20190306213901p:plain
ブレンドシェイプ単体で動かすと問題ない

実際に試してみるとAnimatorのアニメーションが再生された瞬間ブレンドシェイプの値が0になり無表情になる。

f:id:poipoipoip:20190306213800p:plain
突如無表情になる球体

徐々にブレンドシェイプの値が変わるようなスクリプトを試してみたもののAnimatorのアニメーションが優先されてしまう。

docs.unity3d.com

解決策を考えよう。

3/6追記

長いので続きは↓へ。

既存の歩くAnimationにブレンドシェイプのキーが登録されてるねー

f:id:poipoipoip:20190306204655p:plain
これが原因くさいなあ…

Read-Onlyとは(すっとぼけ)

f:id:poipoipoip:20190306205623p:plain
Blender側パッと見みあたらない…

試したこと

ProjectビューでモデルにくっついたAniamtionクリップを選択してCtrl + Dで抜き出す

f:id:poipoipoip:20190306210339p:plain
モデルに引っ付いてるAnimationクリップだからRead-Onlyだったのかな?

f:id:poipoipoip:20190306210518p:plain
抜き出したAnimationクリップはRead-Onlyじゃない!

f:id:poipoipoip:20190306211005p:plain
削除した!Animatorのノードに登録したしこれで勝つる

変わりませんでした

なんでやねん!!


これだアアアアアアアアッ(キメポーズ)

answers.unity.com

ようするにBlenderのシェイプキー項目の相対的とかかれたチェックを外すだけ。

試す。

相対的のチェックを外すと1つの変数を10刻みで連続的にアニメーションするようになる。正直使いづらい?

f:id:poipoipoip:20190306222730g:plain
ぐいんぐいんする

このモデルをFBXにExportしてUnityに取り込む。

取り込んでみたもののSkinned Mesh Renderer のInspectorで見える情報は全く同じだった。

しかし…

f:id:poipoipoip:20190306223132g:plain
走りながら表情変えられるゥゥゥ!

それぞれルートオブジェクトに歩行アニメーションさせるAnimator、ブレンドシェイプのあるメッシュオブジェクトに表情を変えるAnimatorを設定してる。

ちなみに相対的チェックを外したモデルのAnimationだと最初からブレンドシェイプのキーが登録されていなかった。

リンク先の枝全て見たわけじゃないけどベストアンサーの人もなんでこのチェック外したら動くのか謎みたいなこと言ってたけどほんとようわからん。

とりあえず解決してほっこり