バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事は、blenderのポーズモードでボーンを動かした状態のメッシュをシェイプキーに登録してみた備忘録です。
これしょっちゅう手順を忘れるから、詳しく書いておく。
シェイプキーっていうのは、MMDでいうモーフみたいなやつ。
っていうかMMDに持っていけばモーフとして使える感じ?MMD最近いじってないから分からないけど(;^_^A
シェイプキーが作れるようになるとunityに持って行って簡単に表情変えたりできるので、覚えておいた方が良いかも。
動作確認したblenderのバージョンは2.8~4.5です。
2.7以前のは試してないけど、blender2.8以降はインターフェースがあまり変わってないからだいたい大丈夫だと思う。
参考にした頭のいい先輩のページ
とても参考になりました。
ありがとうございます(*^-^*)

やったこと:VRoidモデルをblenderにインポートし、ポーズモードでボーンを動かした状態のメッシュをシェイプキーに登録した
今回はVRoidモデルをblenderにインポートしてやってみました。






普通シェイプキーって頂点を移動させて作るのが一般的?
だけどポーズモードでボーンを動かした状態のメッシュを、シェイプキーとして登録することもできる。
シェイプキーとして登録しておけば、ボーン動かさなくても数値指定で呼び出せるのでラク。
VRoidモデルをblenderにインポートするにはアドオンが必要
VRoidモデルをblenderにインポートするにはVRM Add-on for Blenderが必要ですが、blenderバージョンによって入れるアドオンが違うようです。

Blender 4.2以上をお使いの場合 Blender Extensions Platform 経由でダウンロードをお願いします。
Blender 2.93から4.1をお使いの場合はこちら: 最新版のダウンロード (v2.33.1) 2024年12月18日
過去のバージョン一覧
このアドオンはかなり頻繁にアップデートされてるようなので、不具合があっても最新版に更新すれば結構直ったりしますね…。
具体的な手順
箇条書きすると以下のような手順になります。
- ポーズモードでボーンを動かす。
- オブジェクトモードに移り、メッシュだけを選択。モディファイアメニューでアーマチュアの「シェイプキーとして適用」をクリック(シェイプキーとして保存 でも可)。
- 2を行えば、1の状態がシェイプキーに登録されている。名前を好きな名前に変える。
- ボーンを初期位置に戻して後片づけ。ポーズモードに入り、全選択をして、回転であればAlt+R、移動であればAlt+Gで初期位置に戻る。
- シェイプキーを追加したメッシュを選択し、アーマチュアモディファイアを追加する。
①ポーズモードでボーンを動かす
VRoidモデルには胸のBustボーンがあるので、せっかくなのでシェイプキーで胸を動かせるようにしてみます(笑)。
アーマチュアを選択してポーズモードに入り、Bust1ボーンを左右両方選択して、 R+X+45+Enter でX軸で45度回転させる。



ワイヤーフレーム表示にしたほうが分かりやすいと思います。
②オブジェクトモードに移り、メッシュだけを選択。モディファイアメニューでアーマチュアの「シェイプキーとして適用」をクリック



参考にした先輩のページでは「シェイプとして適用」になっていた。
blenderのバージョンによって名前が少し違うみたい。
「シェイプキーとして保存」でもいけた
「シェイプキーとして適用」の下にある「シェイプキーとして保存」でもできました。



これだとアーマチュアモディファイアが消えずシェイプキーだけ追加される感じだったので、⑤の工程が不要だった。
特に問題なければこっちのほうがいいかな?
③ ①の状態のシェイプキーが登録されているので、シェイプキーの名前を好きな名前に変える
bodyメッシュにarmatureというシェイプキーが登録されているので、名前を変えます。ここでは「mune」にしておく。
ついでに動作チェックも。ちゃんと動いてますね。



④ボーンを初期位置に戻す。ポーズモードに入り全選択、回転であればAlt+R、移動であればAlt+Gで初期位置に戻す
そのままだとボーンが動かした位置のままなので、初期位置に戻します。
ポーズモードに入りAキーでボーンを全選択、Alt+Rで。



ちなみにAlt+Rっていうのは↓ここにあるので、Alt+Rを押してもダメだった場合は手動で選択してください。



2024/08/28追記:
前は普通にAlt+Rでできたんだけど、私のガレリアではNVIDIAのGPUのパフォーマンスオーバーレイとかいうやつが起動してダメだった↓。どうもショートカットキーが被ってるみたい。
こういう場合は、↑の画像のようにポーズモードから ポーズ ⇒ トランスフォームをクリア ⇒ 回転 でやってください。



⑤シェイプキーを追加したメッシュを選択し、アーマチュアモディファイアを追加する ※「シェイプキーとして保存」をした場合は不要
「シェイプキーとして適用」をした場合は元からあったアーマチュアモディファイアが適用されて消えてしまうようなので、この工程が必要っぽい。
最後にこれをやらないとウェイトが載ってない感じになり、ボーンを動かしてもメッシュがついてきません。↓



なのでシェイプキーとして適用したメッシュには、アーマチュアモディファイアを追加します。



「オブジェクト」のところはarmatureを指定します。
armatureはモデルによって名前が違うかも。前回MakeHumanでやった時は、モデルの名前がアーマチュア名になってた。
これでちゃんとボーンを動かせばメッシュも追従して動くようになりました。



注意点:メッシュを動かしているだけなのでボーンは動かない
メッシュが動くだけなので、ボーンは初期位置で置いてけぼりです。
↓胸のボーンは動いていないことに注目。



ダイナミックボーンとかの、ボーンに作用するアセットと併用すると意図しない動作をする可能性があるかも?
unityで動作確認してみる
ちゃんと動きましたね(*ノωノ)



このくらいならボーンで動かしてもいいけど、シェイプキーだと数値で指定できてラクだから好きです。
何パターンか作って組み合わせて使ったりもできるし。
blenderなら適当にボーン入れて自動でウェイト付けできるから、それに加えてシェイプキーも組み合わせればかなり色々動かせると思う。
参考になったなら幸いです(*^-^*)
2024/11/15追記:unityに持って行った時にシェイプキー(ブレンドシェイプ)がない時の対処法
たまにunityに持って行った時にシェイプキー(unityではブレンドシェイプ)が消滅する不具合があるんだけど、↓対処法を書いたので参考にしてください。
VRMモデルだったらアドオンを最新版にしたり、blenderとアドオンのバージョンを変えてみれば直るかも?
まぁ割と色々な要因でなるっぽいので、試行錯誤してみるしかないですね…。
また何かあれば追記します(*^_^*)