Kasackee’s blog

不定期に勉強したことや知ったことを書きとめます。

MagicaVoxel で作った3DドットキャラクターをUnityで動かすまでのメモ

MagicaVoxel

公式からダウンロード

https://ephtracy.github.io/

MagicaVoxelでモデルを作成する

http://github.dev7.jp/b/2015/12/15/precureadv20151213/ こちらのサイトから手に入れた「base.vox」を元にキャラクターを作成する。

完成したら、.objファイルで出力する。

Blender

ボーンの設定

http://github.dev7.jp/b/2015/12/15/precureadv20151213/ こちらのサイトから手に入れた BaseArmature.blend を開く。

  1. File->import->(.obj)を選択、先ほど出力した objファイルを指定する。

  2. 左メニュー、ToolsタブのTranslateを一度押し、下にマウススクロールすると読み込んだモデルの拡大縮小ができるので、ボーンにあった大きさまで縮小する。

  3. モデルを右クリックし、その後タブキーを押して Editモードに切り替える(タブを押すと、オブジェクトモードと Editモードを切り替えることができる)。

  4. Editモードになったら、左メニューのToolsタブ、remove:項目の「Remove Doubles」を押す。

  5. その後、同タブの add:項目の「subdivide」を押す。

    (これらはモデルの頂点の重複などに関する処理のようだが、門外漢なので行う理由はわからない)

  6. タブキーを押して、オブジェクトモードに変更する。

  7. モデルを右クリックした後、Shiftキーを押しながらボーンを右クリックする(モデルが赤い輪郭で、ボーンがオレンジの輪郭で選択状態になる)

  8. Control + P で Set_Parent_toメニューを表示。その中の「With Automatic Weights」を選択する(モデルとボーンの紐付け)

    きちんと紐づいたかの確認は、Poseモードで行える(ビューワー下に Object, Editなどのモードを変える箇所があり、そこでPoseモードに変更できる)。頭のボーンを右クリックして、左右に動かしてみるとわかりやすいと思う。

  9. ボーンのセットを確認したら、File->export->(.fbx)を選択して保存しよう(UnityのAssetsフォルダにしまえると、入れる手間が省ける)

Unity

モデルとテクスチャの設定

Assetsフォルダにあるモデルは、そのままではテクスチャがないので全体が灰色のままだ。

Unityではモデルを取り込むと、その階層に「Material」フォルダが作成される。中を見よう。 モデルのマテリアル(白球みたいな奴)を選択し、右メニュー(inspector)の shaderを「Mobile/Bumped Diffuse」に変更する。

肝心のテクスチャ用の画像は、MagicaVoxelで .objファイルをエクスポートしたときに、同じ階層に pngファイルが出来ているはずなので、それをUnityに取り込もう。

モデルのマテリアルを再び選択し、inspectorの Base(RGB)の欄にある四角いゾーンに取り込んだpngファイルをドラッグ&ドロップしよう。これでテクスチャをモデルに関連づけられる。

最後に、Assetsフォルダにあるモデルを選択し、Inspector内の Rigタブを選択。Animation Type を Humanoidに設定。そしてApplyボタンを押して更新しよう。

これでモデルの取り込みは完了だ。

蛇足 アニメーション

Unityちゃんのアニメーションをパクって、アニメーションさせてみる。 (あらかじめUnityちゃんを落としておくこと。Unity内のビューワー上部のAsset Storeも使えるぞ)

下のAssetsビューワー内で右クリックし、create->Animator Controller を選択。 作成された Animator Controllerをクリックして開く。

表示項目のうち、Entryの下あたりで右クリック->create state->empty で空のアクションを作成。 作成したアクションを選択し、右メニューのinspectorにて、Motionを設定する。 (Unityちゃんが入っていないと、選択できるものがないので注意)

以上、あとは実行すればアニメーションをしてくれる。