NinaLabo

個人ゲーム開発者の技術メモ

【Unity】MagicaVoxel のモデルに Blender でアニメーションをつけて Unity で動かす(前編)

以前の記事では、MagicaVoxel で3Dドットモデルを作成して、Unity に取り込んで動かすまでをやりました。

ninagreen.hatenablog.com

実際には、3Dドットのボクセルモデルに攻撃モーションなどのアニメーションをつけたいので、MagicaVoxel でエクスポートしたオブジェクトをそのまま Unity に取り込むのではなく、一旦 Blender 取り込んでアニメーションを追加してから Unity にインポートする方法を試してみることにします。

Blender の インストール

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

www.blender.org

私の場合は Mac なので、

Blender 2.77a for Mac OSX

のZipをダウンロードしました(2.77a は 執筆時点での最新版)

ダウンロードしたZipファイルを解凍して、アプリケーションフォルダなど任意のフォルダに置けばインストールは完了です。フォルダ内の Blender.app をダブルクリックすれば、Blender が起動します。

MagicaVoxel のモデルを Blender にインポート

不要な立方体を削除する

Blender を起動すると、デフォルトで立方体が作成されるので削除しておきます。立方体を左クリックで選択して(選択しても反応があまりないので不安になりますが、オレンジの枠で囲まれてたら選択されてます)、x キーを押すと下記のような確認ダイアログが表示されるので Delete をクリックします。

f:id:ninagreen:20160921191002p:plain

ショートカットキーを覚えられないという方は、右上に Unity でいうHierarcy Viewみたいな小さなウィンドウがあるので、そこからでも操作できます。立方体オブジェクト(Cubeという名前になってます)を選択後、右クリックして Delete を選択しても削除できます。

f:id:ninagreen:20160921192708p:plain

MagicaVoxel のデータをインポート

  1. File > Import > Wavefront (.obj) を選択
  2. MagicaVoxel で エクスポートした objファイルをダブルクリック

灰色のかなり大きい(?)状態で、モデルが Blender にインポートされました。(マウスのホイールで視点の拡大縮小ができます)

f:id:ninagreen:20160921191630p:plain

モデルのサイズを小さくする

モデルを選択した状態で s キー(左のToolタブのScaleボタンでもよい)を押してマウスを動かせばモデルのサイズを変更できます。Scale値を直接入力したい場合は、その状態で数値を入力しEnterを押してください。例えば、0.2 と入力してEnterを押せば 20% の大きさになります。実行後は、左下の Resize の Vector が すべて 0.2 になっているのが確認できます。

f:id:ninagreen:20160921194357p:plain   f:id:ninagreen:20160921194400p:plain

テクスチャーを設定 

下のほうの丸いアイコンを選択して、テクスチャを選択すると色が付きます。

f:id:ninagreen:20160921195048p:plain  f:id:ninagreen:20160921195109p:plain

ライトの設定

顔にライトが当たってなくて暗くなっているので、ライトの位置を調整します。右上のHierarcy から Lamp を選択。デフォルトではかなり遠くにあるので、マウスホイールで視点を縮小してください。

f:id:ninagreen:20160921195907p:plain

左下にある浮き輪みたいな丸は関係ないのでご注意を。(最後に選択した位置を表してるだけっぽいです)Tool の Translate ボタンを選択してマウスを動かせば位置を移動できます(見えやすくするだけなので適当な位置で大丈夫なはず)

f:id:ninagreen:20160921201419p:plain

ファイルをセーブする

一度ファイルを保存しておきましょう。File > Save で 場所とファイル名を設定して、Save Blender File を押せば完了です。

Unity に取り込む

慣れないツールで疲れたので、まだアニメーションはつけてないですが、一度 Unity にインポートして動作確認することにしました。

1. File > Export > FBX (.fbx) を選択

2. 左のサイドバーの Selected Objects にチェックをつける(チェックしないと Cameraや Lamp オブジェクトも一緒にエクスポートされてしまいます)

3. Scale の値を 100 に変更(100にするとBlender上での座標値1とUnity上での座標値1が同じになるそうです)

f:id:ninagreen:20160921221716p:plain

4. 任意の場所を設定し、右上の Export FBX ボタンを押します。

5. エクスポートした FBX ファイルを Unity にドラッグ&ドロップ

6. Materialフォルダが自動的に生成されるので、中にあるマテリアルのテクスチャ画像を設定 

f:id:ninagreen:20160921222927p:plain

 

無事、インポートできましたー!

f:id:ninagreen:20160921225117p:plain

 

あとがき

Blender の UI や操作が独特で、慣れるまで時間がかかりそうです。また、MagicaVoxel でモデルを変更したら、1回Blenderに取り込んでから Unity に取り込まないといけないので、モデルの微調整する場合に手間がかかりそうです。でも、無料で提供してもらえるのは本当に有難いことですし、もう少し使ってみようかなと思います。とりあえず、次の後編ではアニメーションをつけるところまでいきたい!

追記:後編書きました!

ninagreen.hatenablog.com

参考記事

b00.sakura.ne.jp

github.dev7.jp

semakimomo.net