いつも忘れるので備忘録。
-
概要
MagicalVoxcelを用いてボクセルモデリングを作成し、BlenderでリグとウェイトをつけてUnityに持って行くまでの手順をまとめる。
(Blender4.0.2 MagicaVoxel-0.99.7.1,Unity2022.3.6f1 使用) -
参考記事
- https://urkgdmp.hatenadiary.jp/entry/2018/02/16/122022
-
手順
1:マジカルボクセルでモデリングする。
今回はこんな感じ。これをPLYで出力する。
2:頂点カラーからテクスチャを作成する。
2-1:Blenderでplyファイルを読み込む。ファイル→インポート→Standard PLY
(読み込んだ時は色がついていないが別にOK)
2-2:全頂点を選択し、Island Marginを0.05にしてUV展開する。
UVEditorでテクスチャを新規作成する。
2-3:マテリアルを新規作成し、ベースカラーを先ほど作成したテクスチャに。
現在は頂点カラー情報しかもっていないため、テクスチャに頂点カラーをベイクする。
2-4:レンダーエンジンをCyclesにしベイクタイプをディフューズ、影響の寄与をカラーのみにする。
2-5:シェーダーエディターで以下のようにつないでから、
Image Textureが選択(外枠が白くなる)された状態で、プロパティのBakeボタンを押す。
2-6:ベイクが終われば以下のようにシェーダーエディターでベースカラーをつなぎ直す。
(ちなみにベイク結果はこんな感じになっている。)
3:頂点をマージする
現在は同じ座標に複数の頂点が重なってしまっている状態なので頂点を距離でマージする。
(ちなみに頂点をマージしないと、モデルを動かした際に裏面が見えてしまったりして酷いことになる)
(ちなみに1つ前の手順で頂点カラーをテクスチャにベイクせず頂点をマージしてしまうと頂点が色情報を持っているためマージで色がぐちゃぐちゃになっていた。)
4:Humanoidリグをつける
今回はこんな感じ
5:ウェイトを作成する
今回は自動ウェイトでテキトウにやってしまう
(一応ポーズモードでウェイトの確認はする)
6:Blenderでfbxとして書き出しUnityでHumanoidとして読み込む
(省略)
7:テクスチャのMipMapを無効化する
このままだとボクセルの境界線が見えて不格好なのでテクスチャのMipMapをOFFにすることで境界線を見えないようにする。
(ちなみにMipMapをGenerateしているとこんな感じ。(よくよく見るとボクセルの境界線が見える))
・以上。