【ゲーム業界用語集】OBJファイルとは|意味や解説
ゲーム業界用語の中で意味が分からない専門用語はありませんか?
この記事では、ゲーム開発などの3Dモデリングの際に使われることの多い「OBJファイル」について、詳しく解説します。
3Dモデリング初心者の方におすすめの記事です。
OBJファイルとは|定義
「OBJファイル」は「Wavefront Technologies」社が開発した、3Dグラフィックス情報を持つファイル形式です。
3Dモデルのデータを保存し共有するためのファイルで、テキスト形式になっています。
OBJファイルは分かりやすい構造になっており、異なるソフトウェアでも3Dモデルのやり取りを行うことができるので、様々なゲーム開発エンジンやモデリングソフトで使用されています。
OBJファイルとは|解説
OBJファイルは3Dモデル構造の情報を含んでいます。
また、比較的単純なテキストファイルになっているので、開発者の目から見ても読み書きしやすくなっています。
OBJファイルを構成する具体的な要素や構造を下記で詳しく解説します。
データ要素
OBJファイルは、以下の主要なデータ要素を含みます。
- 頂点情報(Vertices): 3Dモデルの各ポイントの座標情報
- 法線情報(Normals): 面の法線ベクトル情報
- テクスチャ座標(Texture Coordinates): テクスチャを適用するためのUV座標
- 面情報(Faces): 頂点と法線を結びつけてポリゴンを定義するための情報
ファイル構造
OBJファイルは、ヘッダー行で始まり、各データ要素が後続して記入されています。
実際の構造例を下記に表示します。
#コメント行
v 1.0 2.0 3.0
vn 0.0 0.0 1.0
vt 0.0 0.0
f 1/1/1 2/2/2 3/3/3
構造式の上から順に解説します。
- コメント行:ファイルの内容に説明やメモを追加するのに使用されます。ファイルの解析時には無視されます。
- 頂点 (v):vの後に続く数値は、3D空間内の頂点座標を表します。例では(1.0, 2.0, 3.0)が1つの頂点を表しています。
- 法線 (vn):vnの後に続く数値は法線ベクトルの座標を表します。法線ベクトルは3Dモデルの面の向きを示し、照明の計算に使用されます。
- テクスチャ座標 (vt):vtの後に続く数値は、テクスチャのUV座標を表します。テクスチャ座標はテクスチャを3Dモデルに適用する際に使用されます。
- 面 (f):面は通常3つ以上の頂点から構成され、ポリゴンを形成します。fの後に続く数字とスラッシュは、頂点、テクスチャ座標、法線ベクトルのインデックスを指定します。例では、3つの頂点が1/1/1, 2/2/2, 3/3/3の形式で指定されています。
各ソフトウェアで読み込むだけでなく、開発者が目視で確認しやすい構造となっています。
注意事項
3Dモデルデータを共有するために便利なOBJファイルですが、注意すべき点もいくつかあります。
思わぬところで行き詰まらないよう、注意点も確認します。
OBJファイルとMTLファイルの違い
OBJ形式では、「OBJファイル(.obj)」の他に「MTLファイル(.mtl)」を含めることができます。
構造情報のみが記されたOBJファイルでもモデル形状の描画は可能ですが、OBJファイルには色、反射率、テクスチャ画像などのマテリアル情報が含まれていません。
マテリアル情報も含めて描写するにはMTLファイルが必要となるので、その違いには注意する必要があります。
※テクスチャ座標とテクスチャ画像の違い
テクスチャ座標は、3Dモデル表面にテクスチャを配置する方法を指定するものです。
テクスチャ自体を決定するのは画像ファイルなので、MTLファイルが必要となります。
アニメーションやスケルトン情報は扱えない
OBJファイルは基本的に静的な3Dモデル形状を表現するためのものなので、アニメーションやスケルトン情報はサポートしていません。
アニメーションやスケルトン情報を扱う必要がある場合は、一般的にFBX(Filmbox)ファイルが使われます。
FBX(Filmbox)ファイル
- 3Dモデルのジオメトリ情報だけでなく、アニメーション、スケルトン、マテリアル、テクスチャ情報などを包括的にサポートするファイル形式
3Dモデルのやり取りには全てOBJファイルを用いれば良いというわけではなく、開発目的や作業目的に応じて、ファイル形式を適宜選択する必要があります。