.xファイル(エックスファイル)は、
マイクロソフトが開発した汎用的なオブジェクトファイル形式です。主にDirectXの一部バージョンで標準的にサポートされており、3Dグラフィックスの
ポリゴンメッシュデータを格納するために利用されます。
概要
.xファイルフォーマットは、テキスト形式と
バイナリ形式の2種類が定義されています。これはテンプレート駆動型フォーマットを採用しており、オブジェクトのインスタンス化や階層構造をサポートしています。また、ユーザー(開発者)が独自に拡張することが可能で、オブジェクトの格納方法を自由に定義できる柔軟性を持っています。
.xファイルは、
ポリゴンメッシュファイルとして、
ポリゴンの頂点データ、マテリアル情報、テクスチャのパス、UV座標の定義、さらに簡易的なアニメーションデータをオブジェクトとして格納できます。多くの3DCGソフトウェアが対応しており、
LightWave 3D、
Maya、
Softimage、Cinema 4D、そして
フリーウェアの
六角大王などが挙げられます。ただし、汎用性を重視したファイルフォーマットであるため、描画処理が遅く、高度なアニメーションの定義には適していません。
Metasequoiaは.xファイルの出力のみに対応しており、アニメーションはサポートされていません。
歴史
.xファイルのテキスト形式はDirectX 2.0で導入され、DirectX 3.0で
バイナリ形式が追加されました。DirectX 6.0では、ファイルの読み書きを行うためのメソッドが導入されています。DirectX SDKの「June 2008」版からは、DirectX Viewerというファイルビューアが標準で提供されるようになりました。
.xファイルの読み書きは、
マイクロソフト公式の
Direct3D拡張ライブラリであるD3DXによってサポートされていました。ただし、D3DXはSDKバージョンごとにDLLが異なり、また、D3DXを使用したアプリケーションの実行には、別途「DirectXエンドユーザーランタイム」のインストールが必要でした。
しかし、.xファイルが標準サポートされたのはDirectX 9.0までで、2006年にリリースされたDirectX 10.0以降では、ファイルフォーマットとしてのサポートは廃止されました。代わりに、DirectX Utility Toolkit (DXUT) でSDK Mesh File Format (.sdkmesh) という形式がサポートされましたが、これはSDKのサンプル用に設計されたものであり、アプリケーション製品での利用は推奨されていませんでした。2009年にDirectX 11がリリースされ、DXUTもDirectX 11に対応しました。
2012年にリリースされたVisual Studio 2012では、新たにCMO形式 (Compiled Mesh Object; .cmo) が導入されました。D3DX11ライブラリの代替として開発されたDirectXTK (DirectX Tool Kit) では、CMO形式、従来のSDKMESH形式に加え、Windows 8 app samplesで使用されたVBO形式 (.vbo)、SDKMESH形式を物理ベースレンダリング (PBR) のマテリアルに対応させたSDKMESH v2形式 (.sdkmesh2) の読み込みに対応しています。これらの形式の変換は、DirectXMeshに付属するMeshConvertツールで行うことが可能です。
DirectXおよび
Direct3Dは
C++向けのAPIですが、C#や
Visual Basic .NETといった
.NET Framework環境のプログラミング言語向けのバインディングとしてManaged DirectX (MDX) が存在し、MDXでも.xファイルが標準サポートされていましたが、MDXはその後廃止されました。MDXの後継として、XNAでも.xファイルが標準サポートされていましたが、XNAも廃止されています。
脚注・出典
特になし
関連項目
Microsoft DirectX
Direct3D
dotXSI - .xファイル形式を拡張した形式。
外部リンク
X ファイル (レガシー) (Direct3D 9)