OBJ、glTF、GLB のインポート
OBJ、glTF、GLB データのインポート
はじめに
FRI3D は OBJ、glTF、GLB ファイル形式のインポートをサポートしており、 建築のコンテキストモデル、スキャンされたジオメトリ、あるいは Blender、SketchUp、3ds Max などの モデリングツールで作成された外部メッシュといった、軽量な 3D アセットの可視化と統合を可能にします。
これらの形式は主にジオメトリと材料(マテリアル)を中心としたもので、エンジニアリングや BIM のセマンティクスではなく、 レンダリングと可視化を目的としています。 メッシュ、マテリアル、テクスチャ、シーン階層は含まれますが、耐火性能、材料、構造上の役割といった 分類情報や物理的なメタデータは一般に含まれていません。
シミュレーションの目的では、FRI3D はこれらのインポートを汎用的なジオメトリコンテナとして扱い、ユーザーが火災、空間、構造の分類のために手動でタグ付けできるようにします。
⚠️ 重要な注意: FRI3D における GLB および glTF インポート機能は現在限定的です。基本的なジオメトリのインポートはサポートされていますが、アニメーション、複雑なマテリアルプロパティ、一部の glTF 拡張などの高度な機能は完全にはサポートされない場合があります。リッチな 3D アセットを必要とする本番ワークフローでは、OBJ 形式の使用、または glTF/GLB ファイルをインポート前に OBJ へ変換することを検討してください。
形式の概要
| 形式 | 説明 | 主な用途 | 規格 |
|---|---|---|---|
| OBJ (.obj) | 頂点、法線、UV、マテリアル参照(.mtl)を格納するレガシーメッシュ形式。 | 3D モデリングツールやスキャンツールからのジオメトリエクスポート。 | Wavefront OBJ(Alias/Wavefront、1990 年代) |
| glTF (.gltf) | PBR マテリアルとテクスチャを備えた、3D シーンおよびアセットのための JSON ベースのオープン形式。 | リアルタイム可視化と Web 統合。 | Khronos glTF 2.0(2017 年) |
| GLB (.glb) | ジオメトリ、テクスチャ、マテリアルを埋め込んだ glTF のバイナリ版。 | コンパクトな Web/VR ストリーミング。 | Khronos glTF 2.0 |
構造とエンティティ
| 構成要素 | OBJ | glTF / GLB | 説明 |
|---|---|---|---|
| ジオメトリ | v, vn, vt, f | メッシュプリミティブ(POSITION, NORMAL, TEXCOORD) | 頂点ベースのメッシュジオメトリ |
| マテリアル | .mtl ファイル | PBR 属性を持つ materials 配列 | ディフューズ、ラフネス、メタリック、テクスチャ参照 |
| 階層 / ノード | グループ/オブジェクト行(g, o) | nodes, scenes | シーンの構成とトランスフォーム |
| テクスチャ | 外部画像 | 埋め込みまたは外部 | アルベド、法線、ラフネスマップ |
| アニメーション | — | オプション(glTF/GLB のみ) | トランスフォームまたはスケルタルアニメーションデータ |
| メタデータ | — | オプションのカスタム拡張 | 非標準のユーザー属性 |
⚠️ 注意: これらの形式は BIM や CAD 由来のネイティブ形式ではありません。
IfcWallやIfcSpaceのような IFC 的なエンティティクラスやエンジニアリングセマンティクスは含まれていません。 そのため、FRI3D の分類は命名規則またはユーザー定義のタグに依存します。
FRI3D でのインポートワークフロー
-
ファイル検出 FRI3D は
.obj、.stl、.gltf、.glb拡張子を自動的に識別します。 -
解析 OBJ、STL、glTF、GLB のファイルは、STEP と同じ Open Cascade (OCCT) エンジンで読み込まれるため、入れ子の部品、繰り返し配置された部品、名前、位置が 正しく取り込まれます。glTF と GLB は Khronos glTF 2.0 仕様に準拠します。
-
シーンの組み立て ノード階層、トランスフォーム、メッシュインスタンシングが再構築され、統一されたシーン表現が生成されます。
-
タグ付けと分類 スキーマメタデータが存在しないため、FRI3D は命名パターン(グループ/オブジェクト名など)またはユーザーによる手動入力から要素カテゴリを推定します。
-
変換と簡略化 メッシュは FRI3D の内部ジオメトリプリミティブ(三角形メッシュまたはバウンディングボックス)に変換されます。 マテリアルは可視化のために任意で使用されますが、シミュレーション属性(放射率、燃料タイプなど)は別途割り当てる必要があります。
ヒント: OBJ ファイルの場合はグループ名(
g)を使用します。 glTF/GLB の場合は、ノード名またはextrasフィールドのメタデータを使用します。
インポートオプション
File → Import → BIM/CAD でインポートダイアログが開きます。ファイル一覧の下に CAD import options グループがあり、選択したファイル形式に該当するオプションのみが有効になります。
| オプション | 対象 | 既定値 | 内容 |
|---|---|---|---|
| Zone | すべての CAD ファイル | 現在のゾーン | インポートしたジオメトリを受け取るゾーン(区画)。 |
| File unit | OBJ、STL | メートル | OBJ と STL のファイルには単位が記録されていません。エクスポート時の単位(メートル、センチメートル、ミリメートル、インチ、フィート)を選択します。 |
| Up axis | OBJ、STL | 形式の既定(OBJ は Y 軸が上、STL は Z 軸が上) | OBJ と STL のファイルには上方向の軸が記録されていません。OBJ の多くは 3D ツール(Y 軸が上)、STL の多くは CAD ツール(Z 軸が上)から作られます。モデルが横倒しで取り込まれた場合に変更します。 |
| Mesh tolerance | STEP、IGES | 5 mm | 曲面に三角形をどれだけ近づけるか。小さいほど滑らかですが、表示が重くなります。シミュレーションはアイテムのバウンディングボックスを使用するため、影響を受けません。 |
STEP、IGES、glTF/GLB のファイルは単位と向きを記録しているため、FRI3D が自動的にメートルに変換します。取り込んだモデルの大きさが明らかにおかしい場合はインポートログに表示されるので、ファイルの単位を確認してください。
ファイルフィルターには、FRI3D が読み込める形式のみが表示されます: BIM/IFC、3D CAD(STEP/IGES)、3D メッシュ(glTF/GLB/OBJ/STL)。FBX、DAE、USD、PLY、DXF は、変換先の形式を示すメッセージとともに拒否されます。
コマンドライン: Import_CAD
同じオプションをコマンドラインからも指定できます。
Import_CAD.exe <cad file> <project> [zone] [T] [-unit m|cm|mm|in|ft] [-upAxis y|z] [-meshTolerance <metres>]
zoneはジオメトリを受け取るゾーンです。Tを指定すると、先に<project>に新しいプロジェクトを作成します。-unitと-upAxisは OBJ と STL にのみ適用されます。-meshToleranceの単位はメートルです(5 mm なら-meshTolerance 0.005)。STEP と IGES に適用されます。
Import_CAD.exe C:\Models\layout.glb C:\Projects\plant.fri3d Room101
Import_CAD.exe C:\Models\scan.stl C:\Projects\plant.fri3d Room101 -unit mm -upAxis z
信頼性と制限事項
OBJ および glTF/GLB のインポートは可視化用途では十分にサポートされていますが、IFC に比べてセマンティックな忠実度は限定的です。 FRI3D はこれらをジオメトリのみのソースとして扱うため、手動での分類やプロパティ割り当てが必要になることがよくあります。
- 物理特性(密度、放射率、耐火性能など)は保持されません。
- トポロジーや隣接関係の情報(壁、ドア、空間)はエンコードされていません。
- 座標系はソースツールによって異なる場合があります(Y-up と Z-up)。OBJ と STL には単位も上方向の軸も記録されていないため、インポートオプションで指定してください。
- 精度はさまざまです。OBJ はテキストベースの座標を使用するため、大規模なシーンでは丸め誤差が生じます。
- マテリアルデータは可視化向けに最適化されており、シミュレーション向けではありません。
⚠️ 推奨: これらの形式は、コンテキストジオメトリ、可視化、または簡略化された環境に使用し てください。 詳細な建物データと自動分類には、IFC インポートを優先してください。
サポートされるバージョン
| 形式 | サポートされる仕様 | 備考 |
|---|---|---|
| OBJ | Wavefront OBJ + MTL | ASCII のみ(バイナリ形式は非対応) |
| glTF | glTF 2.0 JSON | 外部テクスチャおよび埋め込みテクスチャに対応 |
| GLB | glTF 2.0 バイナリ | シーン全体を埋め込み。コンパクトなアセットに最適 |
| STL | ASCII またはバイナリ STL | ジオメトリのみ。既定では Z 軸が上として読み込み |
例
OBJ の例
o FireDoor_Main
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 2.0 0.0
v 0.0 2.0 0.0
f 1 2 3 4
usemtl DoorMaterial