おもちゃラボ

Unityで遊びを作ってます

【Unity】ZBrushで作ったモデルをアニメーションさせる方法

ZBrushで作った3DモデルをUnityで動かす方法を紹介します。ZBrushからUnityにインポートする手順の大まかな流れとしては次のようになります。

  1. ZBrushでリトポロジーを行いfbx形式でエクスポート
  2. Blenderでボーンを入れる(リギング)
  3. Unityでアニメーションの設定をする

f:id:nn_hokuson:20171015111834j:plain

それでは、ZBrush・Blender・Unityで行う各工程の詳しい流れを紹介していきます。

ZBrushでモデルをエクスポートする

ZBrushで作成したモデルはそのままではポリゴン数が多すぎてUnityでは動かすことができないので、まずはZBrush上でポリゴン数を減らします。ポリゴン数を減らすためにはZBrushの機能であるZRemesherを使います。

※ZRemesherはZBrush Coreでは使用できないため、通常版のZBrushが必要になります。

「Geometry」→「ZRemesher」を選択し、「Target Polygons Count」でポリゴン数を調節します。調節後にZRemesherボタンを押すとリトポロジーが行われ、ポリゴン数を減らしたモデルが完成します。

f:id:nn_hokuson:20171015102936j:plain

今回は、ディテールが残るくらいの3000ポリゴンまで減らしてみました。ゲームによってはもう少し減らして、Blenderで手直ししたほうが良いかもしれません。

f:id:nn_hokuson:20171015103147j:plain

ポリゴン数が減らせたら、fbx形式またはobj形式で書き出しましょう。「FIle」→「Export」で前述のファイル形式を選択して3Dモデルを書き出して下さい。

ZBrushの基本的な操作に関しては、こちらが参考になりました。

Blenderでボーンを入れる

ZBrushで書き出したfbxファイルをBlenderにインポートしてボーン(Blenderではアーマチュアと呼びます)を入れます。ボーンの入れ方は次の記事で説明しているので、これを参考にしながらボーンを入れて下さい。

人型のボーンを入れたい場合は、下の記事のようにBlenderのRigfyという機能を使うと簡単にリギングができるので、オススメですよ!

nn-hokuson.hatenablog.com

もし、Rigfyを使わずに自分で1からボーンを入れたい場合にはこちらの記事を参考にして下さい。動物やクリーチャーのような人型のボーンでは対応できないモデルに対してはこちらの方法を使います。

nn-hokuson.hatenablog.com

今回はこんな感じにボーンを設定しました。

f:id:nn_hokuson:20171015103702j:plain

ボーンを設定できたら、fbx形式でエクスポートします。fbx形式でエクスポートするには、メニューバーから「ファイル」→「エクスポート」→「fbx」を選択します。

Unityでアニメーションの設定をする

最後に、作成したモデルをUnityにインポートしてアニメーションさせましょう。Blenderで書き出したfbxファイルをプロジェクトウィンドウにドラッグ&ドロップしてUnityにインポートします。

プロジェクトウィンドウでモデルを選択して、インスペクタでRigタブをクリック、「Animation Type」を「Humanoid」に設定して「Apply」ボタンを押して下さい。

f:id:nn_hokuson:20171015104430j:plain

これで、3Dモデルのボーン設定ができました。あとは好きなAnimation Clip(Humanoidタイプでないと正しく動きませんが・・・)をモデルにドラッグ&ドロップすると、自動的にAnimatorとAnimation Clipが設定されます。この状態で実行すると、ZBrushで作ったモデルがアニメーションします。

f:id:nn_hokuson:20171015105038j:plain

3Dモデルにアニメーションを設定する詳しい方法は、上で紹介した「Blenderで人型のボーンを入れて、Animatorで走るアニメを再生する」の記事の他に、こちらの記事が参考になると思います。

nn-hokuson.hatenablog.com

nn-hokuson.hatenablog.com

ZBrushで作ったキャラクタにPerfumeのダンスを踊らせてみたら、次のようになりました!3000ポリゴンと少々重めのモデルですが、案外普通に動いているのが分かるかと思います。

f:id:nn_hokuson:20171015105757g:plain

まとめ

ZBrushで作ったハイポリゴンのモデルをリトポロジーしてUnityでアニメーションする方法を紹介しました。まとめると、まずはZBrushでZRemesherと使いポリゴン数を減らします。次に、BlenderでRigfyなどを使ってボーンを設定し、最後にUnityでアニメーションの設定をおこないました。

[asin:B00CBSPKOU:detail]