.x

.xファイル（エックス-ファイル）とは、マイクロソフトが開発した汎用のオブジェクトファイルである。DirectXの一部バージョンで標準サポートされ、ポリゴンメッシュデータとして読み込むことができる。

概要 
ファイルフォーマットとして、テキスト形式とバイナリ形式が定義されている。テンプレート駆動型フォーマットを採用しており、オブジェクトのインスタンスと階層もサポートされている。ユーザー（開発者）で拡張することができ、オブジェクトの格納を定義可能である。

ポリゴンメッシュ 
ポリゴンメッシュファイルとして、ポリゴンの頂点データ・マテリアル・テクスチャのパスやUV座標の定義・簡易的なアニメーションを、オブジェクトとして定義できる。

一方で、汎用性を重視したデータ構造（ファイルフォーマット）のため描画処理が遅く、高度なアニメーションの定義にも適さない。

LightWave3D・Maya・Softimage・Cinema 4Dや、フリーウェアでも六角大王といった数々の3DCGソフトウェアが対応している。MetasequoiaはXフォーマットのエクスポートのみに対応しており、またアニメーションはサポートされていない。

歴史 
DirectX 2.0からテキスト形式が導入され、DirectX 3.0でバイナリ形式が、DirectX 6.0で読み書きするためのメソッドが追加された。DirectX SDKでも「June 2008」よりDirectX Viewerというファイルビューアーが標準で用意された。

Xフォーマットの読み書きはというマイクロソフト公式のDirect3D (D3D) 拡張ライブラリにてサポートされている。なお、D3DXはアプリケーションの開発に使用するSDKバージョンごとにDLLが異なり、またD3DXを使用したアプリケーションの実行には「DirectXエンドユーザーランタイム」のインストールが別途必要となる。

しかし、Xフォーマットが標準対応されたのはDirectX 9.0までであり、2006年にリリースされたDirectX 10.0以降ではフォーマットとしてサポートされなくなった。代わりにSDK Mesh File Format (.sdkmesh) という形式がDirectX Utility Toolkit (DXUT) でサポートされるようになったが、これは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) があり、Xフォーマットが標準サポートされていたが、その後MDXは廃止された。MDXの後継として、XNAでもXフォーマットが標準サポートされていたが、XNAも廃止された。

脚注・出典

関連項目 
 Microsoft DirectX
 Direct3D
 dotXSI - Xファイル形式を拡張した形式。

外部リンク 
X ファイル (レガシー) (Direct3D 9)

DirectX
ファイルフォーマット