公式バリデーターを、ブラウザで
これは独自の再実装ではありません。Khronos glTF-Validator——公式オンラインバリデーターや複数のDCCツールに組み込まれた書き出しチェックと同じエンジン——をJavaScriptにコンパイルし、あなたの端末上でローカルに実行しています。
この違いは、取引先に「書き出しが壊れています」と伝える立場になったときに効いてきます。「Khronos公式バリデーターが /meshes/3/primitives/0/indices で ACCESSOR_INDEX_OOB を報告しています」は、すぐ決着がつく会話です。「どこかのサイトがおかしいと言っていました」ではそうはいきません。
重大度の読み方
バリデーターは4段階で報告しますが、その深刻さは同じではありません。
エラー はファイルがglTF 2.0仕様に違反していることを意味します。寛容なビューアなら開けることもあり——特にthree.jsは寛大です——しかし他の実装で通る保証はありません。これは修正すべきです。
警告 は、仕様上は正しいものの、ほぼ確実に意図していないものを示します。宣言されたmin/maxがデータと一致しないアクセサー、画像のないテクスチャ、単位変換のみで子を持たないノードなどです。
情報 と ヒント は助言にすぎません。UNUSED_OBJECT や NODE_EMPTY は、まったく問題のない実運用アセットにもよく現れます。エクスポーターが補助ノードを残しただけのことです。ヒントが9件あっても、きれいなファイルはきれいなファイルです。
外部ファイルを伴う .gltf の検証
.gltf は、別ファイルの .bin バッファや画像を参照するJSONドキュメントです。JSONだけを検証すると、それらの参照がすべてリソース欠落として報告され、レポートは役に立ちません。
2つ目のピッカーに関連ファイルを追加すれば、参照は正しく解決されます。それでも見つからないものは明示的に一覧表示されます。これ自体が本物の指摘です。.bin を伴わずに納品された .gltf は、それだけで不完全な納品だからです。
よくある指摘とその意味
ACCESSOR_INDEX_OOB— インデックスバッファが存在しない頂点を参照しています。ほぼ確実に、壊れたエクスポーターかファイルの切り詰めが原因です。ACCESSOR_MIN_MISMATCH/ACCESSOR_MAX_MISMATCH— 宣言された範囲が実データと食い違っています。視錐台カリングや、ヘッダーを信頼するあらゆる読み込み側が壊れます。MESH_PRIMITIVE_NO_POSITION— 頂点位置を持たないプリミティブ。どのレンダラーでも描画できません。UNSUPPORTED_EXTENSION— バリデーターが知らない拡張が使われています。必ずしも誤りではありませんが、対象エンジンで対応しているか確認する価値があります。MESH_PRIMITIVE_TANGENT_WITHOUT_NORMAL— 法線のないタンジェント。意味を成しません。UNUSED_OBJECT— 定義されたまま一度も参照されていないもの。無害ですが、ファイル内の無駄な重量です。
アセット概要
問題の一覧に加えて、性能に効く数値も報告されます。ドローコール数、頂点と三角形の合計、UVセットの最大数、そして頂点あたりのボーン影響数の最大値です。最後の項目は要注意で、モバイル向けパイプラインの多くは影響数4が上限です。8で作られたモデルは、はっきり失敗するのではなく、誤った変形をします。
プライバシー
バリデーターはブラウザ内のJavaScriptとして動作します。ファイル・バッファ・テクスチャのいずれもアップロードされないため、クライアント案件や未発表アセットにも安心して使えます。
Tiny Online Tools







