今回はMakeHuman1.1.1で作った3DモデルをUnity2017にそのまま取り込んで使用したり、
Blender2.78に取り込んでアニメーションを付けた3DモデルをUnityに取り込んで使用してみたいと思います。
Blenderは現在の最新バージョンは2.79ですが、Rigify関連でうまく出来ない為2.78を使っています。
MakeHumanでは簡単な設定だけで3Dキャラクターモデルを作成出来ますが、それをBlenderに取り込みアニメーションを付けた後にUnityに取り込むとなると色々作業が必要になってきます。(^_^;)
そんなわけでそれぞれの現時点でのほぼ最新バージョンで連携してみます。
MakeHumanでモデルを作成し出力する
MakeHumanは
↑からダウンロード出来ます。
MakeHumanの使い方については
とほぼ同じなのでそちらをご覧頂くとして・・・(^_^;)
MHX2ファイルを出力する為にプラグインをダウンロードする
MakeHumanからファイルを出力する時にMakeHumanのプラグインが必要になるのでそれをダウンロードしておきます。
先ほどのリンク先でMakeHumanとは別にDownload MakeHuman Toolsというアイコンがあるのでそれをクリックした後、
blender_plugins_for_1.1.1.zip
makehuman_plugins_for_1.1.1.zip
の2つをダウンロードします。
blender_plugins_for_1.1.1.zipは後でブレンダーで使います。
makehuman_plugins_for_1.1.1.zipをダウンロードしたら、ファイルを解凍し9_export_mhx2フォルダをMakeHumanのソフトのフォルダ以下にあるpluginsの中にコピーします。
9_export_mhx2はMakeHumanのファイルとしてデータを出力する為に必要になります。
これをMakeHumanのpluginsフォルダ以下に移動させるとMakeHumanのファイルの出力形式にMHX2が表示されるようになります。
適当なキャラクターを出力する
今回はモデルを作成するより連携をする為の処理をするだけなので、最小限の設定だけを行います。
Unityにそのまま取り込むモデルの作成
まずはUnityにそのまま取り込むようのモデルを出力してみます。
まずはポーズアニメーションタブを選択し、さらにスケルトンタブを選択します。
リグプリセットでGame engineを選択します。
ファイルタブを選択しファイルを出力します。
メッシュフォーマットはfbxを選択し、ファイルの出力先を選択し名前をtounityとして出力します。
これでUnityでそのまま取り込むファイルの出力が出来ました。
Blenderに取り込むモデルの作成
Blenderに取り込むモデルはmhx2ファイル形式にし、単位をメートルにします。
これでBlenderで取り込む用のモデルの作成が終わりました。
Unityでモデルを取り込む
先ほどMakeHumanで作成したFBXファイルをUnityに取り込んでみます。
UnityのAssetsフォルダで右クリック→Import New Asset…を選択し、先ほど出力したtounity.fbxファイルを選択します。
後は他のキャラクターモデルと同じ扱いなので、インスペクタのRigのAnimation TypeをHumanoidにしてApplyを押すだけです。
適当なAnimatorControllerを設定して動かすと、
↑のような感じに普通に動かすことが出来ました。
Blenderでモデルを取り込む
Blenderにモデルを取り込む理由はモデルにアニメーションを付ける為です。
まずはいくつか先にやる事があるので、そちらをやっていきます。
Unityで取り込む時の設定をしてくれるスクリプトのダウンロード
BlenderでRigifyを取り付けたモデルやアニメーションをUnityに取り込む為にはBlenderの知識が結構必要みたいです。
そこでUnityに取り込めるように変換してくれるスクリプトを作成している方がいましたので、そちらをダウンロードして使わせていただきます。
やり方も動画で紹介されています。
の動画からスクリプトのダウンロード先に移動出来ます。
スクリプトをマウスでコピー(ダウンロードの仕方がわからない・・・(^_^;))してデスクトップ等にpy(パイソン)の拡張子のファイルを作り名前をrigify4unity.pyとして、そこに貼り付けます。
Blenderでの設定
次にBlenderでの設定を行います。
最初にダウンロードしたblender_plugins_for_1.1.1.zipの取り込みとrigify4unity.pyの取り込みを行います。
3D Viewが表示されている所をUser Preferencesに変えます。
Add-onsタブを選択します。
install from fileを選択し、blender_plugins_for_1.1.1.zip、rigify4unity.pyの2つのファイルをそれぞれ選択し取り込みます。
取り込んだらAdd-onsの左上の検索窓でrigiで検索し出てきた2つのRigify関連のチェックを入れます。
RigifyはBlenderでRigifyを使う為のアドオンでRigify To UnityはRigifyを取り付けたモデルをUnityに取り込む時に使用するアドオンです。
次に検索窓にimportと入れ、import-Runtime: MakeHuman Exchange 2にチェックを入れます。
これでBlenderにMakeHumanで出力したMHX2ファイルを取り込む事が出来るようになります。
次にFileタブを選択し、Auto Run Python Scriptのチェックを入れます。
これでBlenderでの設定が終了しました。
User Preferecesウインドウから3D Viewウインドウに戻してください。
Blenderでmhx2ファイルを取り込む
それではMakeHumanで出力したmhx2ファイルを取り込みます。
Blender2.78を開いたら、元々あるオブジェクトはいらないのでAキーを押して全選択したらXキーを押した後Enterキーを押して削除します。
BlenderメニューのFileからImport→MakeHumanを選択し取り込むファイルを選択します。
ファイル選択画面が開いたら出力したMHX2ファイルを選択し、Override Exported Dataにチェックを入れます。
次にImport Human TypeをBaseにし、RiggingのRig TypeをRigifyを選択します。
こうすることで、Rigifyの設定が済んだ状態の3Dモデルが取り込まれます。
既にRigifyの取り付けが終わっており、Poseモードでアニメーションを付けたりする事も出来ますがファイルを出力しUnityで取り込むとうまく出来ない為いくつかの処理を実行します。
プロパティウインドウで人型のアイコンをクリックするとRigify to Unity converter項目にConvert to Unity rigボタンがあるので押します。
するとUnityで取り込んだ時にうまくなるように変換されます。
ただ、この時人型モデルとRigとのウエイトが解除されるので、再度親子関係とウエイトの設定を行います。
眼球のオブジェクトを右クリックで選択しShiftキーを押しながら、人型モデルを右クリックで選択、最後にRigfyを選択し、Ctrlキーを押しながらPキーを押しWith Automatic Weightsを選択します。
↑のような感じで行います。
眼球もRigの子要素にしないと眼球が人型モデルと一緒に動きません。
アニメーションを付ける為の設定
Rigifyの設定とUnityへの出力の設定が出来たので後はアニメーションを付けて出力しUnityに取り込むだけです。
実際のアニメーションの作り方は
を参照してください。
ここではアニメーションを付ける前の設定をしておきます。
Nキーを押してウインドウを開きます。
ウインドウを下にスクロールすると↑のようにRigifyのレイヤーの表示・非表示を切り替えられるボタンが見つかります。
IKで操作するレイヤーのみ表示するようにし、右手、左手、右足、左足のIKのRigを選択し、FK/IKの切り替えで1にし、Auto-Stretch IKを0にしておきます。
FK/IKで1にすると完全にIKで操作出来、Auto-Stretch IKを0にするとIKをあり得ない位置に動かしても体が変に伸びないようになります。
3DモデルとアニメーションをFBXファイルで出力
3Dモデルとアニメーションを出力します。
BlenderのメニューからExportも出来ますが、Rigify to Unity converterの方が簡単にできますのでこちらを使います。
Rigify to Unity converterのメニューでExport fileの右のフォルダアイコンをクリックし、出力先のフォルダと出力ファイル名を指定します。
後はRigを選択した状態でExport to FBX fileボタンを押すと指定したファイル名でファイルが出力されます。
後はUnity側でこのFBXファイルを取り込みます。
取り込み方法はMakeHuman→Unityの時と同じです。
RigをHumanoid型に変更します。
これでBlenderから出力したモデルをUnityで取り込めました。
後は普通のキャラクターと同じように扱えます。
↑のようにボーンの名前もORGで統一されて綺麗になっていますね。(^^)/
終わりに
MakeHumanで作ったキャラクターをBlenderとUnityに取り込む方法をやりましたが、テクスチャの設定などは行っていない為そこは別途やる必要があります。
そこら辺はゴニョゴニュ適当にやってみてください・・・・( 一一)
動画内で紹介されているスクリプトはBlender2.79では動作しないのでBlender2.78を使いました。
PythonとBlenderの使い方がわかればいいんですけどわからないのでね・・・・・(-_-)