目次
ボクセルキャラクターをUnityで動かしたい
3Dモデルを動かすためには、ボーン(骨)の追加やモデルとボーンのリンクなど、さまざまな作業が必要です。まずは、MagicaVoxelで作成したボクセルモデルをUnityにインポートできる状態に整えることが重要です。
今回はMagicaVoxelで作成したボクセルモデルをBlenderに取り込み、のちに行う作業のための下準備をします。
ボクセルを動かせるようになると、どんなことができる?
- オリジナルゲームでキャラクターとして使える。
- VRChatでアバターとして使える。
- 動かせるボクセルモデルを使って、アニメーションを作成できる。
- ポーズを取らせたボクセルモデルを3Dプリンターで立体物として出力できる。
Unityで自キャラにして操作してみたい!
用意するソフト
- MagicaVoxel
- Unity
- Blender
この記事ではBlender4.2.1LTSを使用しています。
ボクセルモデルが必要だよ
ボクセルをエクスポート
まずはMagicaVoxelで作成したボクセルをエクスポートしよう。
ためしにUnityに入れてみよう
エクスポートしたファイルをUnityに入れてみよう。
Unityプロジェクトを作成
プロジェクトを3Dで作成し、objファイルをUnityに入れます。
他のキャラクターモデルと比較するとこのボクセルはかなりでかい。MagicaVoxelで作成したサイズの影響かも。
それにこのままでは歩いたりポーズとらせたりできない。動かない銅像ならこのままでもいいけど、動かすためにはボクセルにBone(骨)を入れる必要がある。
骨を入れたりするにはBlenderがいいらしい。
Blenderにボクセルをインポートしよう
大まかな流れ
- ボクセルをBlenderにインポートする
- UV展開する
- マテリアルを作成する
- ベイクしてテクスチャを作成する
Blenderは操作に癖があるけど頑張って慣れよう!
MagicaVoxelの作ったボクセルを.plyでエクスポート
Blenderにボクセルをインポートする
まずはCamera、Cube、Lightを削除
.plyをインポート
キャラクターが中心に立っているか確認
右上にあるのインタラクティブナビゲーションでキャラクターがちゃんと中心に立っているかを確認する。
足と足の真ん中が中心になっているかチェック!
ちゃんと中心になってるね
UV展開
UV展開をする
牛乳パックやサイコロキャラメルを開くようにデータを展開する。
UV展開
新規画像を作成
マテリアルの作成
ベイクの設定
ベイクをする対象を用意
ベイクの実行
色がついた!
作成したテクスチャをローカル保存
上手くできているか確認
綺麗にテクスチャが付いた
頂点をマージしてテクスチャを繋げる
頂点が同じ位置に重なっているため、マージする必要があります。
重複する頂点の削除
距離でマージ
・Edit Mode(編集モード)にしてAキーを押して全てを選択
・メッシュ→クリーンアップ→距離でマージ(Merge by Distance)
これでポリゴン数が節約できた
エクスポートする
fbxをUnityへ
Rotationが-89.98になっててScaleが50になっている。
Assetsにあるファイルがおかしい
なんかうつ伏せになってる!
FBXを修正する
- Rotationが『0』の状態で正しく表示されてほしい。
- Scaleは『1』の状態で丁度良い大きさに調整したい。
Rotation『0』でうつ伏せ状態だったのが直った。
スケールの問題はエクスポートのスケールをいじっても直らなかったので保留。
このあたりをいじっても変わりませんでした
FBX作成までの早見表
- .plyでエクスポート
- Blenderにインポート
- UV展開し保存
- マテリアル作成、属性「Col」
- レンダーエンジン「Cycles」、ベイクタイプ「ディフューズ」、影響「カラーのみ」
- シェーダーエディター、追加→画像テクスチャ「作成したUV」
- ベイク実行
- テクスチャを保存
- マテリアルに適用
Boneを入れるときにこの続きからやるのでblendファイルで保存をしておく。
ファイル→名前を変更→〇〇〇.blend
下準備はここまで。Boneはまた次回。