atabii

ボクセルとかモデリングとか

VRChatにボクセルアバターをアップロードしたメモ

VRChatにボクセルアバターをアップロードするまでを書きます。

まずMagicaVoxelでボクセルモデルを作ります。
ここで書き出し形式のplyを選んで、blenderでボーンやウェイトつけてもいいんですが他の形式に比べて最適化されないのでポリゴン数が多いです。
頂点数も多い。重複頂点があるのでそれを削除してあげてもこんな感じです。
ちなみにblenderでの重複頂点の削除はこちら。

f:id:rocinante0o:20180602080912p:plain

f:id:rocinante0o:20180602080931p:plain


そこで最適化されるobjで出力します。
しかしblenderで見てみるとメッシュが大変なことになっています。

f:id:rocinante0o:20180602081005p:plain

これは大変だ!関節が曲がる部分をループカットなどでつけてやりたいところですが、blenderで四角化しても入れるのは大変でした。
元々MagicaVoxelで関節部分を見てもあまりわからないように近い色にするという方法もあります。
そうするとそこにエッジが入るので曲がりやすくなります。
でも大変なので他の方法を……と思い色々試しました。

次に試したのはQubicleという有料ソフトとそのDLCのメッシュモジュールを使った方法。Steamで購入できます。

www.getqubicle.com


まずMagicaVoxelでqbで出力、それはQubicleで読み込みます。
そしてQubicleでobjで出力。それをblenderにもっていきます。
デフォルトではメッシュが四角ですが、モデルをUnityに持っていくと自動で三角化されます。
今回は比較のために、blenderのほうで三角化(alt+J)をしました。

f:id:rocinante0o:20180602081035p:plain

f:id:rocinante0o:20180602081047p:plain


これが最も軽いかと思うのですが、問題があります。
それはエッジがつながっていない部分があるということ。それがどういうことになるかというとこんな感じです。

f:id:rocinante0o:20180602081057p:plain

隙間が空いてしまいます。動かないものならこれでもいいですが、キャラクターはボーンを付けて動かすのでダメ。
自分で手作業で調整するという手もありますが、とんでもなく大変なのでやめておきました。

で、最後の手段としてUnityのAssetにあるVoxel Importerを使いました。
どのみちVRChatにアップロードする際にUnityを使うので。
Voxel Importerはvox形式を直接読み込んで、最適化してくれます。

f:id:rocinante0o:20180602081115p:plain

その後、Unity上でボーンをつけることができます。
デフォルトであるものを選んで、必要のないボーンを消すと良いですね。

f:id:rocinante0o:20180602081128p:plain

VRChatで必要なボーンは必ず残しておいてください(neck,head,spine,chest...etc)
そしてボーンをいれたら次はウェイトです。これもUnity上でできます。
ウェイトの塗り方にはいくつかあって、Voxel Importerの素晴らしいところはボクセル単位でウェイトを付けられるところです。
またblenderのようにブラシで塗ることもできますし、範囲選択で塗ることもできます。優秀!
頂点数などはMVのobjと対して変わらないんですが、メッシュの綺麗さが全然違います。

f:id:rocinante0o:20180602081138p:plain

f:id:rocinante0o:20180602112037p:plain


詳しくはAsset作者の方がyoutubeにアップロードしているので、そちらを御覧ください。

www.youtube.com



またボクセルモデルは関係ない問題がひとつありました。VRChatのclientが入っているPCと別PCで作業をしている方は注意してください。
私は普段MacBookAir(以下MBA)で作業していて、VRChatはMacMini(以下MM)でBootCampしてWindowsを立ち上げてからやっています。
今回ボクセルモデルを作ってアップロードしようとしたのはMBAです。VRChatのclientが入っているのはMMです。
Unityでアップロードしようとしたらエラーが出てアップロードできない!という状況になりました。

エラーを調べてみたんですがなかなかない。
セッティングを見ていて気づいたんですがclientの項目が……空白?というかclient?パスの選択項目があるってことはパスを通す必要があるのでは?

f:id:rocinante0o:20180602081248p:plain

ということで、そうかパスを通せば!となったんですが、作業をしているのはMBAです。Macです。VRChatのclientなんて入っているわけがありません。
MMのWindowsのほうにUnityをいれてアップロードしたら完璧でした。
というこでエラーの原因はclientがないことでした。なのでMacではアップロードは完全にできません。

無事にアップロードできました!わーい!

f:id:rocinante0o:20180602081301j:plain

ボクセルアバターの依頼も今後受けようと思っていますので、もし何かあればTwitterのDMやメールでお気軽にご相談ください!
またいずれワールドも作る予定なので、現在作っている箱庭作品もお試しに見てみてください。

Web Site:https://urabe-rocinante.wixsite.com/no-0
twitter : @urabe_rocinante
chikizero+info(at)gmail.com