Vket Mall では 通常の入稿以外に「Web向けの入稿」というものが存在し、そちらも入稿しないと全ての出展が取り消される。
前回 Unity入稿の話を書いたので、今回はその続きということで、この「Web入稿」について、軽く描きたいと思う。
入稿物
展示予定のものは、Unity入稿の時にも挙げた、この衣装モデル。
今回は後述の制限により、Unity入稿とは違い、衣装単体で展示予定。
入稿規定おさらい
入稿規定をまず、確認しましょう。
(Web入稿、じつは一番キツイのがこの入稿規定を正しく理解することかもしれない...)
うちは、ショップ分類の都合上、小物Bで申し込んだので
- スペースサイズ 1m x 1m x 2m
- マテリアル 2
- 入稿パッケージサイズ 5MB
となっています。
マテリアル数はともかく、サイズが何故か5MBもあるし楽では?と錯覚しますが、そんなことありません。
最大の罠(というか仕様)は、入稿形式から必然的にくるシェーダーの制限です!
入稿形式の制限として
- アバターの場合はVRM形式
- それ以外はGLB形式
という制約があります。
VRMはいまさらなので置いといて、GLBってなんぞや?
多くの人はそこから始まると思います。
まぁ、そこを話すと、3D標準フォーマットの話やGLTFの話、UniVRMとの関係性の話をしないといけなくなるのですが、長大になるので割愛します。
理解としては間違っていますが、めっちゃ制限されたVRMとでも思っておけば(VketMallの入稿上は)問題ないです。
話がそれました。で、そのGLB何がキツイかというはなしですが、シェーダーです。
なんと
- PBR系
- Standard
- Unlit系
- Unlit/Color, Unlit/Texture, Unlit/Transparent, Unlit/Transparent Cutout, UniGLTF/UniUnlit
しか使えません。Toon系のシェーダーがないZE!
なので、アバター向けの小物や衣装は事実上、Unlit向けに最適化(というか作り直し)を要求されます。
ちなみに、GLBのエキスポート手順などは、UniVRMの公式のこちらのページ を見るのが一番わかりやすく、VRMよりも簡単なので、詰まることはないでしょう。一番つらいのはこのページにたどり着くまでの過程かと思います。
スペースサイズの最適化
基本的にUnity入稿向けの調整が済んでいれば問題ないはず。
ただ、Unity入稿と同じ位置で出力すると、Web入稿だとエリア外警告が出る可能性があります。(GLBの仕様か、Vket側のGLB Import仕様の問題かはしらないけど、原点が上にずれているため)
そのため、Blender出力やMesh変換段階で、y座標を少し下げておく(私は0.5m下げました)必要があります。
シェーダーとの戦い
冒頭で述べた通り、UTSをUnlitに置き換えるしかありません。
置き換え自体は一瞬で、UniGLTF/UniUnlit に変えるだけ。
テクスチャもUnlitなのでメインテクスチャしかありませんしね...
問題は見た目です。
Unlitなので相当のっぺりします。
なので、シェーダーで表現していた影やノーマルの影響を全てメインテクスチャに書き込む必要がでてきます。
サブスタで影をペイントして、ノーマルは必要な箇所をPhotoshopで合成すれば、まぁいちおう雑に誤魔化せはしますね。
メッシュ最適化
制限10000ポリゴン!
今回これだけは事前に意識してたので、この衣装、素の状態で10000ポリに収まってます。(靴と帽子は除く)
なので、特にやることはなかった。
溢れている人がいたら、裏面のメッシュや見えないところのメッシュを削るとかですね。
それでもダメだと、根本的にリトポしないといけなくなりそうですが...
容量との戦い:テクスチャ最適化
正直シェーダの都合上メインテクスチャのみで最適化の余地がないし、5MBとゆるゆるなのでまず溢れません。
罠があるとすれば、GLB出力の場合
「Unityの設定ではなく、オリジナルのファイルサイズ・フォーマットがそのままGLBに使われる」
という点。すなわち、
- FBX生成の段階で、軽量化しておく
- シェーダーに食わせるテクスチャをPhotoshop等から吐き出す段階で適正サイズ/最適化設定をしておく
必要があるということ。(Crunch圧縮とかその手のは使えない)
10000ポリ制限ということもあり、FBX側は特にやらんでも平気。
テクスチャは、JPG/PNGで最適化した上で2Kで吐けば平気でしょう。
無事入稿
はい、入稿自体は思ったよりあっさりですね。
GLBの吐き出しと座標ズレさえ理解すれば、実はそんなに苦労はしない。
問題はシェーダーの縛りから意図しない見た目になって、それを展示しないといけないというジレンマ。
蛇足
表現の自由を確保するための最適化はそんなに嫌いではないですが、そもそも表現手段が縛られて最適化しても自由が得られないとなると、だいぶモヤっとしますね...
なにより今回のVket mall、VRChat向けのモデルを展示したくてやっているのに、展示の品質や仕様がVRChatの実際と乖離しまくってるのがとても理解に苦しむ。
GLB展示だって "Vket" でないなら、それはそれでレギュレーションとして理解できるんです。
Vket Mall、これは本当に Vket の展示なんだろうか?