ボクセルアバターを作ってみたよ
こんにちは~、わさびのりたろうです。
VRoidを使わない自分のオリジナルアバターをそろそろ作りたいなあと思ったので、今回は簡単にできそうなドット絵の3Dアバターを作ってみました。
3Dドットのことをボクセル(voxel)と言うのですが、ボクセルアバターのモデリングソフトに MagicaVoxel というのがあるので今回はこれを使いました。
今回は備忘録であり作り方を丁寧に紹介する記事ではありません。なので、実際に作りたい方はあげている参考ブログなどを読んで挑戦してみてください。
作業環境
参考にしたブログなどは1,2年前のものだったりしますが、それでも下記のような最新の作業環境で動作しました。
- MagicaVoxel:
0.99.2
- Blender:
2.79
- Unity:
2017.4.18f1
- UniVRM:
0.48
ボクセルを作る
ボクセルの素体には daishi さんが配布していたものを使いました。
この素体に髪やスカートなどを肉付けしていく感じです。
ボクセルがいい感じにできたらエクスポートします。
はじめは OBJ 形式でエクスポートしていましたが、それだと後述するウェイトの設定作業で詰まってしまったので PLY 形式でエクスポートしました。
3Dモデルとして動くようにする
以下のブログなどを参考にしながらボクセルを3Dモデルとして動かせるようにしました。
- オリジナルアバターを簡単に作りたい人向けチュートリアル リギング編 PLYバージョン
- MagicaVoxel→Blender→Unityでボクセルモデルを動かす③ - 裏鍵.dump
- 【Blender】ボーンヒートウエイトのエラーが出たときに試す5つの解決策 - おもちゃラボ
- ボーンヒートウェイト:一つ以上のボーンで解決に失敗しました(failed to find solution for one or more bones)の原因
頂点数を削減する
頂点が重複していると後述する自動ウェイトがエラーで使えなかったのでやっておきます。
なおこの作業を OBJ 形式のボクセルでやろうとするとピクセルの角が消えてボクセルらしさが失われてしまうので PLY 形式でやるのが良さそうです。
テクスチャを作成する
PLY 形式でボクセルを読み込んだ場合の注意点として Blender 以外でボクセルに色が付かなくなることがあります。なので、Unity へモデルを持って行った際にも色が反映されるようにするためにテクスチャを作成しておきます。
スマートUV展開で画像を作成し、マテリアルを作成して画像はテクスチャとして設定すればOkです。
ボーンとウェイトを設定する
ボクセルだけでは3Dモデルは動かないので、ボーンを入れます。
ボーンは @megakumadori さんのものを使いました。
ボクセルとボーンのスケールが合わないこともあるかと思うのでそこを調整します。
次にウェイトを設定します。ウェイトペイントで塗ってもいいのですが、楽をするために自動ウェイトを入れるだけにします。
できたら FBX 形式でエクスポートします。VRM対応のアプリケーションに読み込むことがないのであればここまででOKです。
VRM にコンバートする
基本的にはドワンゴさんのこの記事通りにやるだけです。
注意点としては、 VRM にコンバートするだけならボーンのマッピングに Neck, Chest, Shoulder, Toes は不要なのですが、ないと VRoid Hub にアップロードする際にエラーが発生して失敗してしまったので入れておきます。 (自分の時は Chest 以外は自動で入りました)
VRM にコンバートするときは利用可能なシェーダーに変更しておく必要があるのですが、自分の場合はなぜかテクスチャの Inspector が disable になっていて編集できない状態になっていましたが、この問題はマテリアル用のフォルダを作成することで解消しました。
FBX ファイルの [Inspector -> Materials -> Extract Materials] を押下して Assets 以下にマテリアル用のフォルダを作成すればOK。
VRM ファイルにしてしまえばあとは簡単、VRoid Hub にアップロードするだけです。お疲れさまでした。
今回のようにボクセルアバターを作るのは Blender でメッシュを一から作るわけではないので Blender 入門として気軽にできてよいなあという感想でした! それでは~。