以前、blenderにmakehumanのデータを取り込んでそれをUnityに取り込むというのをやりましたが、
リグを入れるとどうにもうまく出来ませんでした。
そこでBlenderでボーンを設定し、Rigifyを付けるという事をやっていきたいと思います。
今回使っているblenderは2.76bでmakehumanは1.0.2、Unityは5.3.1f1です。
バージョンによってはどこか変わるかもしれません。
この記事をご覧いただく前にMakeHumanからBlenderへの取り込みからUnity用の出力に関しては下記記事のやり方の方がRigifyを自分で調整する必要がないので比較的簡単に出来ます。
自分でRigifyを取り付けたい方はこの記事を参照していってください。
2018年06月21日に追記
解説しているyoutube動画がありましたので、そちらを参考にさせて頂き、blederでリグを付けUnityに取り込むまでをやってみます。
動画中のスクリプトは
3Dモデルにボーンをうまく設定するには↓がすごく参考になりました。
blenderを使いこなす事が出来ないので、いまだによくわかりませんが・・・、色々やってみて結局これの通りでしか出来ませんでした。
blenderを触った事がない人にはちょっとハードルが高めかもしれません・・・。
MakeHuman→Blender→Unityに取り込むまでの流れ
Unityに取り込むまでの流れはMakeHumanでボーンやRigify用のリグはつけずに3Dモデルだけをobjで出力します。
MakeHumanの設定で、ジオメトリー→トポロジー→femaleかmaleを選択します。
アニメーションの作成の為だけに使うのでなるべく線を少なくしておきます。
次にblenderを起動し、最初からあるオブジェクトを全部削除します。Aキーを2回押して全選択したらDeleteキーを押して消してください。
今作ったobjファイルをインポートします。
MakeHumanで作った3Dキャラクターは大きいのでSキーを押してサイズを0.1にまで減らします。減らす時にCtrlキーを押しながらやると大雑把な刻みになります。
MakeHumanで線を減らさなかった場合、blenderで線を減らします。
線が多いので減らします。(アニメーション用の3Dキャラなので精度はいらない為に行いますが、やらなくてもOKです)
3Dキャラクターを右クリックして選択し(blenderの選択は右クリック)
上のように選択してください。
上のようにRatioを0.1にしてApplyをクリックで反映させます。
あとは動画のようにすればOKなんですが・・・・。
Blederでモデルにボーンを設定し、Rigifyを付ける流れ
流れだけ書いておきます。
- Shift+Aキー→Armature→Human→Sキーを押してサイズ調整しオブジェクトの大きさにある程度合わせる。
- ボーンを選択しObject ModeからEdit Modeにし左にあるメニューのOptionsのX-Axis Mirrerをチェック
- ボーンをオブジェクトに合わせて調整
- 調整が終了したらObject Modeにしボーンを選択、右の方にある人型のアイコンを選択する
- 下の方にあるRigify Buttonsの下のGenerateをクリック
- 出来たリグをオブジェクトのサイズに調整
- 元のボーンを削除、右上の検索窓で「wgt」で検索し結果をAキーで全選択、scene以外を全部右クリックからDeleteする
- リグを選択した状態でTextEditorからrigify_script.pyを開きRunScript(画面上何も変化はない)
- オブジェクトを選択した状態でShiftキーを押しながらリグを選択
- Ctrl+PキーからWith Automatic Weights
これでとりあえずfbxとして出力し、Unityで取り込む事が出来ます。
fbxでの出力の設定でArmatureのOnly Deform Bonesにチェックを入れて出力してください。
BlenderでのRigify付けとUnityに取り込むまでの注意点
正直なところどこか間違えるとうまく取り込めなかったりします・・・・。
アニメーションデータだけをUnityに取り込むとアニメーションがうまく作用しなかったりします。(設定の問題?)
なのでblenderからモデルデータ込でfbx出力をし、Unityに取り込んだ方がいいかもしれません。
自分でアニメーションを作成する事がない人はやらずに、配布されているアニメーションを使うのも手ですね。
でblenderで簡単なアニメーションを作る方法を載せたのでそちらも参考にしてください。