ZBrushで作った3DモデルをUnityで動かす方法を紹介します。ZBrushからUnityにインポートする手順の大まかな流れとしては次のようになります。
- ZBrushでリトポロジーを行いfbx形式でエクスポート
- Blenderでボーンを入れる(リギング)
- Unityでアニメーションの設定をする
それでは、ZBrush・Blender・Unityで行う各工程の詳しい流れを紹介していきます。
ZBrushでモデルをエクスポートする
ZBrushで作成したモデルはそのままではポリゴン数が多すぎてUnityでは動かすことができないので、まずはZBrush上でポリゴン数を減らします。ポリゴン数を減らすためにはZBrushの機能であるZRemesherを使います。
※ZRemesherはZBrush Coreでは使用できないため、通常版のZBrushが必要になります。
「Geometry」→「ZRemesher」を選択し、「Target Polygons Count」でポリゴン数を調節します。調節後にZRemesherボタンを押すとリトポロジーが行われ、ポリゴン数を減らしたモデルが完成します。
今回は、ディテールが残るくらいの3000ポリゴンまで減らしてみました。ゲームによってはもう少し減らして、Blenderで手直ししたほうが良いかもしれません。
ポリゴン数が減らせたら、fbx形式またはobj形式で書き出しましょう。「FIle」→「Export」で前述のファイル形式を選択して3Dモデルを書き出して下さい。
ZBrushの基本的な操作に関しては、こちらが参考になりました。
Blenderでボーンを入れる
ZBrushで書き出したfbxファイルをBlenderにインポートしてボーン(Blenderではアーマチュアと呼びます)を入れます。ボーンの入れ方は次の記事で説明しているので、これを参考にしながらボーンを入れて下さい。
人型のボーンを入れたい場合は、下の記事のようにBlenderのRigfyという機能を使うと簡単にリギングができるので、オススメですよ!
もし、Rigfyを使わずに自分で1からボーンを入れたい場合にはこちらの記事を参考にして下さい。動物やクリーチャーのような人型のボーンでは対応できないモデルに対してはこちらの方法を使います。
今回はこんな感じにボーンを設定しました。
ボーンを設定できたら、fbx形式でエクスポートします。fbx形式でエクスポートするには、メニューバーから「ファイル」→「エクスポート」→「fbx」を選択します。
Unityでアニメーションの設定をする
最後に、作成したモデルをUnityにインポートしてアニメーションさせましょう。Blenderで書き出したfbxファイルをプロジェクトウィンドウにドラッグ&ドロップしてUnityにインポートします。
プロジェクトウィンドウでモデルを選択して、インスペクタでRigタブをクリック、「Animation Type」を「Humanoid」に設定して「Apply」ボタンを押して下さい。
これで、3Dモデルのボーン設定ができました。あとは好きなAnimation Clip(Humanoidタイプでないと正しく動きませんが・・・)をモデルにドラッグ&ドロップすると、自動的にAnimatorとAnimation Clipが設定されます。この状態で実行すると、ZBrushで作ったモデルがアニメーションします。
3Dモデルにアニメーションを設定する詳しい方法は、上で紹介した「Blenderで人型のボーンを入れて、Animatorで走るアニメを再生する」の記事の他に、こちらの記事が参考になると思います。
ZBrushで作ったキャラクタにPerfumeのダンスを踊らせてみたら、次のようになりました!3000ポリゴンと少々重めのモデルですが、案外普通に動いているのが分かるかと思います。
まとめ
ZBrushで作ったハイポリゴンのモデルをリトポロジーしてUnityでアニメーションする方法を紹介しました。まとめると、まずはZBrushでZRemesherと使いポリゴン数を減らします。次に、BlenderでRigfyなどを使ってボーンを設定し、最後にUnityでアニメーションの設定をおこないました。