hibitの技術系メモ

数学とか3Dとか翻訳とか

Blenderを一切触らずにボクセルアバターを作成する方法

 MagicaVoxelは簡単にボクセルデータを作れる素晴らしいソフトです。今まで3Dソフトを触ったことがない人でもマイクラ感覚で簡単にアバターを作れる……と言いたいところですが、アバターに持っていくためには

  • リギング
  • テクスチャ画像作成

 という2つの工程を経る必要があり、これにはBlender等の3DCGソフトを用いる必要があります。

 いや、Blenderは無料ソフトだし、サンフィッシュ熊野さんの素晴らしい解説記事があるので、これを見ながら操作すればええやんと言われたらそれまでなのですが、世の中には宗教上の理由でどうしてもBlenderを触れない人もいると思います。そのような方のために、Blenderを一切触らずにボクセルアバターを作成する方法を伝授します。

mixamoによるリギング

 mixamo、というAdobeが提供しているサービスがあります。これはなんと自動でリギングをしてくれるというとてもすごいサービスです。Adobeのユーザー登録が必要ですが、別に登録するだけで金を取られるようなものではないので、しましょう。以下、SSによる解説。

f:id:hibit_at:20181011204058p:plain

 まず、MagicaVoxelでメッシュを作成します。今回は説明のために緋色さんの素体を使わせていただきます。ありがとうございます。

f:id:hibit_at:20181011204401p:plain

 エクスポートする時に「obj」形式を選択します。

f:id:hibit_at:20181011210201p:plain

 熊野さん方式だとplyですが、ここではobjにします。そうじゃないとmixamoで読み込めないからです。出力先には、objファイルと、mtlファイルと、謎の虹色のpngファイルが出力されたと思います。このpngファイルは後で使います。

f:id:hibit_at:20181011204620p:plain

 次にmixamoを開いてこのobjデータを読み込ませます。私はすでに一通りテストした後なのでこの画面ですが、サインインしたばかりだと中央のウィンドウには誰もいないはずです。右上にあるオレンジ色の「DOWNLOAD」……ではなく、その下の「UPLOAD CHARACTER」のボタンを押します。

f:id:hibit_at:20181011204922p:plain

f:id:hibit_at:20181011205041p:plain

 先程エクスポートしたobjを読み込みます。ドラッグ&ドロップでもいけます。

f:id:hibit_at:20181011205357p:plain

 それぞれの色の輪っかをドラッグして対応する箇所にはりつけていきます。「NEXT」を押したらオートリギングが始まります。英語のメッセージで「2分ぐらいで終わります」とありますが、大体1分足らずでやってくれます。終わったらなんかメッセージウィンドウが出てきますが、何も考えずに「NEXT」を押し続けていきましょう。

f:id:hibit_at:20181011205615p:plain

 終わったらリギング済みのキャラクターが画面に出てきます。ここでやっと右上の「DOWNLOAD」を押します。ここで左側にあるアニメーションアイコンを押すとアバターが動き出してTポーズでなくなってしまうので注意です

f:id:hibit_at:20181011205819p:plain

 フォーマットはfbx、ポーズはTポーズでDOWNLOADしましょう。

Unityでの操作

 できあがったfbxをUnityに持ち込みます。……が、真っ白です! これは、fbxはテクスチャ画像を含まないという仕様によるものです。なので、別途テクスチャ画像を用意してあげる必要があります。実はそれが、最初にobjファイルをエクスポートした時に出した謎のpngファイルです。

f:id:hibit_at:20181011210538p:plain

 真っ白なfbxをクリックした時に出てくるマテリアルにpng画像をぶち込めば……

f:id:hibit_at:20181011210651p:plain

 このように無事最初の着色通りのアバターができました。カラーパレットからピンポイントで色を持ってくるような変態的なUVマップを持っているということでしょうね。

 ちなみに、もっとベタッとした発色にしたい~という方はUnlit Shaderにしてください。

f:id:hibit_at:20181011211022p:plain

 ここで変えられます。

humanoidを適用

 今だとまだアバターは直立不動のgenericアバターなので、humanoidを適用します

f:id:hibit_at:20181011211813p:plain

 右上の欄にある「Animations」を「Rig」にして、「Generic」を「Humanoid」にして、「Apply」を押します。これでhumanoidになりました。これでアバターに「VRC Descriptor」を適用すればもうアップロード可能に……!

(※VRC Descripotorの適用等についてはこのページの解説がとても詳しいです)

ボーンの罠

f:id:hibit_at:20181011212216p:plain

 Your rig has the UPPER CHEST mapped in the Humanoid Rig. This Will Cause Problems with IK.じゃあないんだよYour rig has the UPPER CHEST mapped in the Humanoid Rig. This Will Cause Problems with IK.じゃあ。

(和訳:あなたのリグには、ヒューマノイドリグにマップされたUPPER CHESTがあります。これはIK上の問題を引き起こす可能性があります。)

 はいはい、UPPER CHESTを外せばいいのね。Configureしていきましょう。

f:id:hibit_at:20181011212444p:plain

f:id:hibit_at:20181011212533p:plain

 ここを選択してDelキーを押せばここのリグを外すことができます。

 これでやっとアップロード可能に……!

f:id:hibit_at:20181011212703p:plain

 は~~~~~~~~?

 Spine Hierarchy incorrect. Make sure that the parent of both Shoulders and the Neck is the Chest.じゃあないんだよSpine Hierarchy incorrect. Make sure that the parent of both shoulders and the Neck is the Chest.じゃあ。

(和訳:Spineの階層が正しくありません。ShouldersとNeckの親がChestになっていることを確かめてください。)

 結論から言うと、もともとUpper ChestにあったボーンをChestにもってくる必要があります。何このトラップ。

f:id:hibit_at:20181011212954p:plain

 こうなればOKです。

 これでやっとアバターがアップロードできます。

 blenderを無視して、mixamoで横着したものには、最後には神罰が待っているのだ……!