gltf 格納詳細
警告
import, export の実装 で注意が必要です。
glTF: z+ forward
モデルは Z+ 方向が前方になるように格納します。
VRM0 | VRM1 | |
---|---|---|
forward | z- | z+ |
right | x+ | x- |
実装
vrm-0.x を vrm-1.0 に変換する際は、Y 軸 180 度の回転をしてください。
Vector3 vrm0;
var vrm1 = new Vector3(-vrm0.x, vrm0.y, -vrm0.z);
glTF: divided vertex buffer
bufferView の primitive 間での共有をやめます。
VRM0 | VRM1 | |
---|---|---|
bufferView | shared | divided |
利点 | GameEngine メモリレイアウトに近いので変換が少ない | 一般的な glTF ローダーでロードできる |
欠点 | UniVRM 以外の glTF ローダーでメモリ使用量が爆発する可能性(ロードできるが頂点バッファに未使用領域ができてしまう) | export 時に頂点の増加・並び順の変化がありえる。import 時に連結する手間。morphTarget の扱いが煩雑 |
例
prim0 | prim1 | |
---|---|---|
position | 100 | 100 |
index | 0..100 | 0..100 |
👇
prim0 | prim1 | ||
---|---|---|---|
position | 100 | 100 | バッファーが連結されている |
index | 0..100 | 100..200 |
実装
Vrm
専用の gltfPrimitive 間での共有バッファーローダーをやめて、
一般的な glTF
ローダーで問題ありません。