blender2.76bにmakehumanデータの取り込みとUnityへのインポート1

今回は無料3DCG作成&編集ソフトのblenderを使ってMakeHumanのデータを取り込んでみます。

Home of the Blender project - Free and Open 3D Creation Software

上のサイトからダウンロードします。

スポンサーリンク

MakeHumanのデータを取り込む為のBlenderの設定

MakeHumanのデータをblenderで取り込めるようにblenderの設定を変更します。

ブレンダーの設定を変更する


上のようにFile→User Preferrencesで出来ればいいんですが、わたくしみたいに選択するとblender自身が落ちてしまう人もいるみたいです。
グラフィックボードが関係してるやらなんやららしいですが・・・謎。

そういう方は下のようにUser Preferencesを選択しウインドウ内に設定を表示させてください。

設定のPreferenceが開けない時

Add-onのmakehumanのチェックを入れる

Add-onsでImport-ExportのMakeHumanを探しチェックします。
これでMakeHumanで出力したmhxファイルの取り込みが出来るようになります。
設定が終わったら3D Viewにウインドウを直しておきます。

blenderの設定が終わったらMakeHumanで3Dキャラクターを出力します。

MakeHumanで3Dキャラクターを出力する

makehumanでhumanik.jsonを選択する

ポーズ/アニメーションでhumanik.jsonを選択。

mhxファイルを出力する

ファイル→エクスポートでメッシュフォーマットをBlender exchange(mhx)にしエクスポートボタンを押す。

これでファイルが出力されたので、次はblenderに戻ります。

BlenderでMakeHumanのキャラクターの取り込みと出力

blenderでmhxファイルの取り込み

blenderのFile→Import→MakeHumanと選択します。

blenderでの取り込みの設定

ファイル選択画面になったら、Override Default Settingをチェックし、下のScaleを0.1にして、右上のImport MHXをクリックします。

Unityに3Dキャラクターを取り込む時にScaleを合わせるため調整しています。

オブジェクトを全選択

上のようにPose Modeとなっているところを選択し、Object ModeにしAキーを2回押し全体を選択した状態にします。

これらをExportで出力します。

blenderでfbxファイルをエクスポート

File→Export→FBX(fbx)とします。

blenderの出力設定をしてファイルの出力

3D Viewで選択した項目だけを出力したい時は上のようにSelected Objectsにチェックを入れます。

人のメッシュとアーマチュアだけチェックを入れます(Selected Objectsの上)。

Deform Boneだけを出力

Armaturesを選択しOnly Deform Boneにチェックを入れておきます。
ここでチェックを入れないと余計なものがいっぱいついてきてファイルサイズが10倍近くになってしまいます。

あとは出力する場所を指定した後にExport FBXボタンを押します。

最終的にUnityでキャラクターを取り込む

最後にUnityに取り込みます。

UnityのAssetsメニューのImport NewAssetからファイルの選択も出来ますし、ファイルをUnityのProjectウインドウのAssetsエリアにドラッグ&ドロップでもインポート出来ます。

インポートしたら

fbxファイルを取り込み人型キャラクターとして扱う

Rig→Humanoid→Configure→Apply→Save→Doneとし、人型キャラクターとして認識させます。

ここら辺はMakeHumanの記事でやったので同じように出来ます。

MakeHuman1.0.2を使って3Dキャラクターを作り、Unityで取り込んで使う。
3Dキャラクター作成ツールMakeHumanを使ってキャラクターを作り、Unityに取り込んで使用します

他のキャラクターと同じコンポーネントを取りつける

プレハブをシーンに配置し名前を「satosi」と変更し「masasi」君たちと同じコンポーネントを付ければ完成です。

3兄弟の出来上がり!(最初から記事を見てくれている方でないとわかりません・・・というか見ててもわからないかも)

MakeHuman→Blender→Unityとした理由

なんだか前回やったMakeHuman→Unityから比べると面倒くさい事が増えてる割にやってる事は同じじゃないか!と言いたくなる方もいるとは思いますが・・・・。

blenderに取り込むのはblenderでアニメーションを作成し、それをUnityで取り込むという事がしたい為です。

アニメーションを作るのにRigifyを使うとかなり楽に作成出来るのですが、
MakeHuman→blenderまではうまくいってもそれをUnityに取り込むのがうまくいきません・・・・。

今回はそこまでやりたかったんですが、解説サイトを見て同じようにやってもエラーが出てうまく出来ないんですよね・・・。

キャラクターの取り込みの流れはこうするといいかも!?

----------以下追記----------

いろいろやっているうちにMakeHumanとblenderとUnityをすべて使う場合は以下のようにするとうまくいきました。

MakeHumanで作ったモデルをUnityに取り込む場合はMakeHumanのジオメトリーのトポロジーをmaleにし、メニューのスムースで
モデルを滑らかにする。

makehumanでxonotic.jsonにして出力

ボーンをxonotic.json、エクスポートする時は他はいじらずmhxにしてエクスポートする。

このまま使えればボーンの設定もうまく出来ていいんですが・・、服が破れてるような表示がされてしまうので、blenderで服のサイズの調整をします。(調整をするにはblenderの知識が必要になります。)

調整が終わったらfbxでエクスポートします。
その後Unityで取り込んでモデルとして使います。

モデル用のアニメーションを作成する場合はMakeHumanでジオメトリーのトポロジーをmake、ボーンの指定をせず、スムースを解除、エクスポート設定でメートルにし、Wavefront objとしてエクスポートします。

そこにblenderでボーンの設定をしリグ(Rigify)を作成してアニメーションを作成します。

blenderでボーンを設定する方法は

blender2.76bにmakehumanデータの取り込みとUnityへのインポート2
MakeHumanで作成したキャラクターをBlenderに取り込み、ボーンを設定しリグを取りつけます。Unityで使うアニメーションを作成する時に便利です

を参考にしてください。

アニメーションの作成が終わったらfbxファイルでエクスポートし、それをUnityで取り込みます。
Unityでキャラクターを選択し、RigをHumanoidにしたらこのアニメーションを先ほどのモデルのアニメーションとして使えます。

MakeHumanで指定するボーンをhumanik.jsonでも出来ているかなと思っていたんですが、どうやら指先がうまく働いていませんでした・・・。
なのでこのやり方をお勧めします。(他にいいやり方があればそちらでお願いします)

正直なところここの連携部分がもう少し簡単にエクスポートやインポート出来たらいいなぁと思いました。