3D モデルの準備と最適化
このドキュメントでは、EasyAR の要件に適合した 3D モデルの準備方法について詳しく説明します。フォーマット仕様、推奨ツール、一般的なトラブルシューティングを網羅し、開発者がトラッキングの成功率を根源から向上させることを支援します。
モデルフォーマットと仕様
EasyAR 3D オブジェクトトラッキングでは Wavefront OBJ 形式のみをサポートします。使用時は以下の要件と仕様に従ってください。
モデルファイル構造
完全な 3D モデルは以下のファイルを含む必要があります:
- .objファイル:幾何学的モデルデータ(頂点、面、UV座標など)
- .mtlファイル:マテリアル定義(色、テクスチャマップパス)
- テクスチャマップ:少なくとも1枚の JPEG または PNG 形式画像(推奨解像度512×512~2048×2048)
ファイル要件
- 全てのファイルは同一フォルダ内に配置し、相対パスで参照すること(例:
texture.jpg)。絶対パス(例:C:\Models\texture.jpg)は禁止。 - ファイル名およびファイル内のパスにスペースを含めないこと。英数字の使用を推奨。
- ファイルエンコード形式は UTF-8 必須(文字化けによる読み込み失敗を防ぐため)。
OBJ(.obj)ファイル最低要件
vertex必須
幾何学的頂点。\((x, y, z [, w])\) 座標で表現。\(w\) はオプション(デフォルト1.0)。頂点カラーパラメータは必須ではなく、提供されてもシステムは読み込まない。texture coordinates必須
テクスチャ座標。\((u, v [,w])\) 座標で表現。\(w\) はオプション(デフォルト0)。通常$u$と$v$は0~1の範囲。範囲外の場合、システムはデフォルトでREPEATモード(座標の整数部を無視し無限反複パターンを生成)を適用(OpenGLのGL_REPEATと同様)。face必須
面要素。頂点インデックスとテクスチャ座標インデックスを含む必要あり。四角形など3頂点以上の多角形もサポート。mtllib必須
マテリアルファイルの参照。外部MTLファイルを相対パスで指定(絶対パス不可)。usemtl必須
材質名指定。外部MTLファイルで定義された材質名と一致させる必要あり。
MTL(.mtl)ファイル最低要件
- MTLファイル内に少なくとも1つの材質定義が必要。
- テクスチャマップ必須。
通常は環境光マップ(map_Ka)または拡散反射マップ(map_Kd)の指定で十分。
テクスチャパスは相対パス指定(絶対パス不可)。 - その他のテクスチャパラメータはオプション(指定されてもシステムは採用しない)。
モデルの準備
仕様に適合するOBJ形式モデルファイルは複数の方法で準備可能です。
既存モデルからのエクスポート
Autodesk Maya / 3ds Max 等の専門ツールでFBX等他形式モデルをインポート後、"OBJ Export"を選択。"Materials"と"UVs"オプションを有効化。新規モデルの作成
Autodesk Maya / 3ds Max 等のモデリングツールで3Dモデルを新規作成/編集し、OBJ形式で出力。実物のスキャンと3D再構築
Autodesk ReCap、Bentley ContextCapture 等の3Dスキャンモデリングソフト、またはレーザースキャナで実物を3D再構築後、OBJ形式でエクスポート。
重要
モデルのテクスチャは実物の視覚的特徴を正確に再現する必要があります。再現が不十分な場合、認識・トラッキング機能は正常に動作しません。
モデルベストプラクティス
以下にモデル準備時の一般的な問題と事例を示します。チェック時の即時参照用としてご活用ください。
豊富なテクスチャの詳細を確保する
モデルのテクスチャには豊富なディテールが必要です。
左図:EasyARで検出・追跡可能。右図:検出・追跡不可(テクスチャが少なすぎる)。
モデルの形状
モデルは様々な形状をサポートしますが、主要構造は凸状である必要があります。
両オブジェクトともEasyARで検出・追跡可能です。
ファイル内の参照パスを確認する
モデルファイル内で参照されるパスは絶対パスではなく相対パスでなければなりません。
右側のモデルは絶対パスを使用しているため、EasyARがファイルを見つけられずロードできません。
モデルファイル内で参照されるパスにスペースや特殊文字を含めてはいけません。
右側のモデルは参照パスにスペースを含むためロードできません。
ファイルのエンコード形式をチェック
モデルファイルは UTF-8 エンコード形式を使用する必要があります。
右側のモデルは、ファイルエンコードの問題により読み取り時のデコードエラーが発生するため、ロードできません。
モデルの法線をチェック
モデルメッシュの法線ベクトルの正方向は右手の法則に従う必要があります。
2番目の立方体では、影が付いた部分のメッシュの法線ベクトルが負の方向を向いています。このようなメッシュは EasyAR では非表示面として扱われます。モデルの内側から見ると、3番目の立方体のように表示されます。
モデルは、法線が負の方向を向いているメッシュを一切避ける必要があります。モデルのメッシュ数
モデルのメッシュ数は、物体の幾何学的形状を保証する前提で可能な限り少なくし、通常は 100,000 個の三角メッシュを超えてはなりません。過剰なメッシュ数は以下を引き起こします:- モデルのロード時間が長くなり、アプリ起動時のユーザー体験に影響する
- メッシュへのテクスチャ投影の計算量が増加し、アプリの追跡時のフレームレートに影響する
3D モデルの品質はトラッキング成功率を直接決定します。開発者はフォーマット仕様を厳守し、テクスチャの詳細最適化とファイル形式の正確性を確保する必要があります。