blenderでshape key actionをarmature actionに変換する方法
でもリンク先のファイルでは通常のshape key action (animation) ができないためdriver boneを使ってshape keyを制御するしかない。
そのためshape key actionをarmature actionに変換する必要がある。
- 適当なオブジェクトであ/い/う/え/おのshape keyを作ったあと、mmd_toolsを使ってリップモーションをshape key actionとして読み込む
-
mouth.a/i/u/e/oとかの名前のボーンを5つ作る
-
それぞれに以下のようなdriverを与える
- BoneのTransform panelのlocation Xとかを選んで右クリック -> Add drivers -> Manually create later (single)
- Graph editorのDrivers panelでsingle property選択
- PropでID typeでKey -> Key選択
- Pathのところに、1で作ったオブジェクトのshape keyあいうえおのいずれかを右クリック -> Copy data pathしたものをpaste (Path: key_block["あ"].value的になってればok)
- Type: Scripted Expression以下の Expr:のところをvarにする(そのままでもいいけどボーンがめっちゃ動くのを避けるためvar*.2とかにする)
※python error invalid target channelとかでたときはtypeのところ一度適当なものに変更したあと再度scripted expressionに戻すとなんかうまくいく
※copy driver -> paste driverすればdriverのtargetをいじるだけですむからちょっと楽かもしれない
-
この段階でshape key animationにしたがって各ボーンがうごくようになったはずなのでボーンをpose modeにして Pose-> Animation -> Bake ActionでActionとして保存できる
-
保存したarmature actionを、shape keyにdriverを与えたarmature (2で作ったarmatureと同じ構造) に与えれば、リップモーションをarmature actionとして表現できる
モデルをリンクした先のファイルで、リップモーション (armature action) を与えた様子