ユーザ データを SI|3D から Autodesk Softimage に読み込むには特定の制限があります。 特に、Softimage では、ユーザ データをモデル、マテリアル、テクスチャ、カメラなどからではなく、コンポーネント(頂点、ポリゴン、およびポリゴン メッシュのエッジに割り当てられたブロブ)から読み込むことができます。このコンポーネントは、SI|3D では「サブエレメント」と呼ばれます。
SI|3D から読み込むときのいくつかの注意点は、SI3D のユーザ データが Softimage のコンポーネント ユーザ データにどのように割り当てられているかに関係しています。
Softimage が SI3D のコンポーネント ユーザ データを解釈する方法
SI|3D シーンを Softimage にロードすると、シーン内のすべてのユーザ データに対して完全なクラスタが作成されます。 古いシーン内のユーザ データが格納されたコンポーネントのタイプによって、作成されるクラスタのタイプが判別されます。 これらのクラスタの名前は、それぞれのタイプに従って付けられます。
データは任意の長さを持つことができ、同じ UserDataMap 内に可変長のデータが含まれています。 実際のユーザ データは、検出されると正確にコピーされます。
Softimage は、コンテンツを解釈しないため、SI|3D シーンから作成されたユーザ データ マップに関連付けられるテンプレートはありません。 このデータの形式は不明であるため、プラグイン開発者は独自の UI を記述する必要があります。
SI3D では、タグの概念を使用してユーザ データの各部分を識別します。 SI3D でユーザ データにアクセスする場合は、タグを使用してユーザ データの一部を指定します。 タグによって、複数のブロブを同じエレメントに割り当てることができます。 SI3D のユーザ データを Softimage にロードすると、これらのタグは関連する UserDataMap オブジェクトの Name プロパティに記述されます。
バイト オーダーが異なるプラットフォーム(MIPS プロセッサ対 x86 プロセッサ)間でバイナリ データを含むシーンを転送する場合、プラグイン開発者は、データのバイト スワップを実行するかどうかを判別する際に役立つ bigendian フラグ(SI3D)と LittleEndian フラグを使用してプラグインを記述できます。
SI3D 内の bigendian パラメータは、BLOB ごとにユーザデータのバイトオーダを指定します(ビッグエンディアンは TRUE、リトルエンディアンは FALSE)。Softimage では、この情報は読み込まれ、UserDataMap.LittleEndian プロパティに保存されます。
Autodesk Softimage では、LittleEndian フラグがユーザ データ マップでのみ設定されるため、ユーザ データ アイテムのバイト オーダー フラグはありません。これは、個々のサブコンポーネントが独自のフラグを持つことができた SI3D での bigendian パラメータの使用方法とは異なります。