エラーの概要
Cubism Editor 5.3.03では正常的に見えたアートメッシュの位置が、Unity SDK(Cubism 5.0)に書き出しVTubeStudioで読み込んだ場合、正常的に見えない現象
アートメッシュおよびデフォーマの構造(親子順)
- 髪の毛の角度XYデフォーマ(以下「角度XYデフォーマ」)
- 髪の毛の塗りアートメッシュ(以下「塗りアートメッシュ」)
- 髪の毛の線画アートメッシュ(以下「線画アートメッシュ」)
- 塗り・線画をバインドするグルー(以下「グルー」)
- キーフォームの構造:物理演算(ブレンドシェイプ)、角度XY
- キーフォームの追加手順:物理演算(アートメッシュ)➔角度XY(ワープデフォーマ)➔角度XY(アートメッシュの細かい調整)
- 適用範囲:前髪・横髪・後髪(左)・後髪(中)・後髪(右)のすべての要素が同じ
検証
ケース①:塗りアートメッシュ・線画アートメッシュをグルーでバインド後、両アートメッシュに物理・角度XYのキーフォーム打った場合
両アートメッシュの頂点に差がある場合(頂点の数・位置など)、角度XYデフォーマの角度XYキーフォームだけ適用され、アートメッシュの物理・角度XYのキーフォームは正常に適用されない現象
両アートメッシュの頂点に一致する場合にも、アートメッシュのキーフォームが正常に適用されない
ケース②:塗りアートメッシュ・線画アートメッシュの頂点・デフォルトフォーム一致させ、グルーでバインド後、塗りアートメッシュのみにキーフォームを設定した場合
物理演算・角度XYパラメータによる移動は正常的に作動したが、線画アートメッシュの位置が不自然にずれる現象が発生
解決策および原因の分析
解決策:塗りアートメッシュ・線画アートメッシュの頂点・デフォルトフォームを同じくし、グルーを使わずフォームのコピー&ペーストを使いキーフォームを打って解決
原因の分析
Cubism EditorとUnity SDKにおける頂点演算の処理順序およびエラーハンドリングの差
Cubism Editorでは頂点の位置演算結果が異常である場合にも、頂点の演算結果よりグルーを優先するため線画アートメッシュのエラーが表面化されず正常に見えていた。
Unity SDKの場合、ハードウェアリソースを減らすため頂点の演算結果が異常である場合、頂点の位置演算結果ををNaN(結果の範囲が正常の範囲の外にある)になり、デフォルトフォームに戻った(ケース①)
塗りアートメッシュと線画アートメッシュの演算結果とグルーの演算が重複して適用され、キーフォームの作動は正常的に行われたが塗りアートメッシュと線画アートメッシュの位置にずれが発生
(ケース①)後髪のモデリング中、角度XY(ワープデフォーマ)➔角度XY(アートメッシュの細かい調整)でアートメッシュの大きな座標移動があったため、デフォーマ内の演算でエラーが発生した。
(ケース②)実際に、角度XYワープデフォーマを完全に消し、全く新しい角度XYワープデフォーマを作成して角度XYのキーフォームを追加した場合は線画アートメッシュがデフォルトフォームに戻る現象は現れなかった。
Xにてエラーの画像を含めて説明した記事を投稿しています。
よろしければこちらの記事も目を通していただければと思います。