Gaming Life

一日24時間、ゲームは10時間

MagicaVoxelで作成したモデルをUE4で利用する (1) 導入編

はじめに

 当ブログの現状のメインコインテンツ(?)であるMagicaVoxelで作ったモデルをUE4に持っていくワークフローの研究がようやく一定の成果を上げられたので、数回に分けて公開していこうと思う。目標は以下の通り。

  • MagicaVoxelでStaticMesh用モデルを作成してUE4にFBXとしてインポートする。条件はモバイル開発でも問題なく使えるように極力頂点数を減らす、取り回ししやすいようにUVテクスチャを作成する。

  • MagicaVoxelでSkeletalMesh用モデルを作成してBlenderでボーンを入れ、アニメーションを付ける。これをUE4にインポートし動かす。

 私はBlenderについては超がつく初心者の為、特にアニメーション周りは非効率な手法を使っている自覚がある。他に良い方法があればTwitterやコメントで教えていただけると助かります。

この記事の対象者

  • UE4でMagicavoxelで作ったボクセルモデルを使いたい

  • BlenderでMagicavoxelで作ったボクセルモデルをアニメーションさせたい

  • MagicaVoxelで作成したモデルにMinecraft風のカクカクしたアニメーションをつけたい。

 この記事はUnityユーザーを対象としていません。が、これから紹介する手法は、かなり変わった、自分が調べた範囲では日本語ブログで一切紹介されていない手法の為、もしかしたら何かの参考になるかも知れない。VRChatでボクセルモデルを動かしたいだけの方はそれについて書かれた専門の記事を読まれることを推奨する。

完成形

 Blender上でアニメーションさせている画面。

f:id:ai_gaminglife:20180606002119g:plain

必要ソフト

 StaticMeshとして書き出す際もBlenderを通す事を推奨。

  • Qubicle

 このワークフローの肝。Steamで2000円程度で購入可能。

  • Qubicle Mesh Module

 Qubicleの有料DLC。2480円。詳細は後述。

MagicaVoxel -> Blender -> UE4 の問題点

 当記事ではすでにQubicleを使わないこのワークフローを色々実験している。色々試しはしたが、UE4でボクセルモデルを使うのであれば、この手法はおすすめしない。詳細は省くが理由は以下の通り。

  • MagicaVoxelのobjエクスポートは頂点色を取ってマテリアルを作成する。UVテクスチャが生成されないので取扱いが面倒。

  • 複雑なモデルをobjエクスポートすると頂点数が爆発的に増える。

  • plyエクスポート -> Blenderで頂点数削減 + UV展開して頂点色を焼き込むという手法があるが、テクスチャ矩形がズレ、正しいマテリアルを生成出来ない。

Qubicleについて

 これらの問題を解決するのがQubicleとQubicle Mesh Module。このソフトはMagicaVoxelと双璧を成すボクセルモデリングソフトで、こちらを使って開発されたゲームも存在する。

cgworld.jp

 しかしながら、個人の感想であるがQubicleは使いにくい。MagicaVoxelより制作できるモデルのサイズが大きいという利点もあるがそれを差し置いてもMagicaVoxelでモデリングする事をおすすめする。幸いMagicaVoxelとQubicle間のやり取りは容易なのでここで心配する必要はない。

 QubicleとMagicaVoxelの差異についてはこちらの記事が詳しい。

imoue.hatenablog.com

 で、Qubicleを使う理由だが、Mesh Moduleを導入することで

  • 自動でズレのないUV展開、テクスチャ生成までやってくれる。

  • MagicaVoxelのobjエクスポート以上に頂点数を減らしてFBX or objエクスポート出来る

  • ボクセルモデルを腕、頭、体、足……と切り分けることが出来る。(Qubicle標準機能)これを使うことで更に頂点数を減らすことが出来る。

 というわけでMagicaVoxelで作ったモデルをQubicleで調整し、Blenderで更に調整するとより使い勝手のよいモデルを作れる。

 次回はStaticMesh用にUE4に書き出す手法を紹介する。

 続き

ai-gaminglife.hatenablog.com