シーン TOC でシーン データを取得し設定する

 
 
 

シーン TOC(シーンの目次)は XML ベースのファイルで、シーンの情報が格納されています。対応するシーン ファイルと同じ名前(拡張子は.scntoc)で同じフォルダにあります。

シーン ファイルを開くと、対応するシーン TOC ファイルが検索されます。ファイルが検出されると、Softimage は自動的にファイルに含まれている情報を読み込んで適用します。この既定の動作を変更するには、シーン TOC の作成と読み込みのプリファレンスを個別に設定します。詳細については、「シーン TOC ファイルを作成し読み込む」を参照してください。

シーン TOC ファイルの利点は、テキスト エディタまたは XML エディタを使用して以下の操作を実行できる点です。

これらのオプションの詳細については、「シーン TOC を修正する」を参照してください。

注:データを変更するシーン TOC ファイルの使用に代わる方法は、追加データを使用することです。唯一の違いは、シーン TOC データは個々のシーンに固有のものであるのに対し、追加データはすべてのシーンに適用されるという点です。追加データの詳細については、「追加データを使用してシーンを表示する」を参照してください。

シーン TOC ファイルを作成し読み込む

シーン TOC ファイルの作成と読み込みを有効にしておくと、シーンを保存するたびに現在のシーン情報が、対応するシーン TOC ファイルに保存されます。シーン TOC ファイルをテキスト エディタまたは XML エディタで修正した場合は、その修正は次回にシーンを開いたときに自動的に適用されます。

シーン TOC ファイルを自動的に作成し、読み込むには

  1. メインメニューから[ファイル](File) [設定](Preferences)を選択します。

  2. [プリファレンス](Preferences)ウィンドウで、[データ管理](Data Management)を選択します。

  3. [ファイル]タブで、[シーンの TOC(Table of Content)ファイルを作成](Create scene TOC (Table of Contents) file)オプションおよび[シーンの TOC(Table of Content)ファイルがロード時にあれば読み込む](Read scene TOC (Table of Contents) file on load if available)オプションを有効にします(両方のオプションが既定で有効になっています)。

シーン TOC ファイルの作成を無効にするには

シーン TOC ファイルの作成は、[シーンの TOC(Table of Content)ファイルを作成](Create scene TOC (Table of Contents) file)オプションを無効にすることによって、いつでもオフにできます。[シーンのTOC(Table of Content)ファイルがロード時にあれば読み込む](Read scene TOC (Table of Contents) file on load if available)オプションが有効になっている場合は、シーンを次に開いたときに TOC ファイルが読み込まれ、適用されます。ただし、任意のシーンを保存するときに、対応する TOC ファイルの拡張子を .scntoc から .scntoc_Obsolete に変更すると、シーンを再度開いたときに TOC ファイルは無視されます。

シーン TOC ファイルの読み込みを無効にするには

シーン TOC ファイルの読み込みは、[シーンの TOC(Table of Content)ファイルがロード時にあれば読み込む](Read scene TOC (Table of Contents) file on load if available)オプションを無効にすることによって、いつでもオフにできます。シーンを次に開いたときに、TOC ファイルは無視され、そのファイルに含まれる情報は一切シーンに適用されません。[シーンの TOC(Table of Content)ファイルがロード時にあれば読み込む](Create scene TOC (Table of Contents) file)オプションが有効になっている場合は、シーンを保存すると、現在のシーン情報も対応するシーン TOC ファイルに保存されます。

シーン TOC からバージョン情報を取得する

ルート <xsi_file> エレメントには xsi_version というサブエレメントがあります。このサブエレメントは、関連付けられているシーン ファイルを作成するために使用された Softimage のバージョンを示します。

バージョン番号は、Major.Minor.BuildNumber.UpdateNumber という形式で指定されます。

たとえば、次のように記述します。

<xsi_file type="SceneTOC" xsi_version="8.0.114.0" syntax_version="2.0">

Softimage の内部バージョン番号が製品の表示名に使用されている番号と一致しない場合がある点に注意してください。たとえば、8.0 は Autodesk Softimage 2010 の内部バージョン番号です。スプラッシュ画面やインストール パスの製品名には Version 2010 が使用されていますが、シーン情報および Softimage SDK はバージョン番号 8.0 を返します。

シーン TOC を修正する

Softimage の外部から、テキスト エディタや XML エディタを使用してシーン TOC ファイルを編集することができます。行った変更は、次回にシーンを開いたときに自動的に適用されます。

ルート <xsi_file> エレメントは、内容を変更できる 5 つの子エレメントを持ちます。

  • <Models> エレメントは、シーンで使用するリファレンス モデルを指定します。これには、別の解像度、有効解像度、また外部差分を使用している場合は差分ファイルで使用される外部ファイルが含まれます。

  • <Sources> エレメントには、イメージ、外部アクション、オーディオ、およびリファレンス モデルのパスとファイル名を指定します。

  • <Passes> エレメントには、シーン内のすべてのパスのレンダ オプションを指定します。

  • <Parametersvalues> エレメントには、現在使用中のレンダ パスを指定します。

  • <PostLoadScript> エレメントには、シーンを読み込み、シーン TOC ファイル内のすべての修正が適用された後に実行するスクリプトを記述できます。

通常は、シーン TOC の任意のエレメントの内容(開始タグと終了タグの間にあるもの)を変更できます。タグ自体の属性は一切変更しないでください。一部の例外については、別途説明します。

リファレンス モデルを修正する

Scene TOC ファイルの <Models> エレメントには、シーン内のリファレンス モデルごとの <Models> エレメントが含まれます。また、<Model> エレメントには、各解像度に <resolution> エレメントと、外部差分がある場合は <delta> エレメントが含まれます。

<Models>
  <Model name="RefModel" active_resolution="2">
   <resolution name="Offloaded" id="0" href=""></resolution>
   <resolution name="res1" id="1" href="file://Models\lo-res.emdl"></resolution>
   <resolution name="res2" id="2" href="file://Models\md-res.emdl"></resolution>
   <resolution name="res3" id="3" href="file://Models\hi-res.emdl"></resolution>
   <delta name="Delta" href="file://Deltas\RefModel_Delta.delta"></delta>
  </Model>
 </Models>

該当する属性を変更して、代用のファイルを使用したり、有効解像度を変更することができます。エレメントの名前の属性は変更できません。また、モデル、解像度、または差分を追加できません。

ソースを修正する

Scene TOC ファイルの <Source> エレメントには、シーンで使用されるイメージなど外部ファイルのエレメントが含まれます。シーン TOC ファイルの <Sources> セクションにあるすべてのソースの内容を変更できます。これにより、たとえば、テクスチャ ファイルのパスを変更できるほか、テクスチャの置き換えも可能です。ソース名属性は変更しないでください。

たとえば、次のような変更が可能です。

<Image name="metal">¥slowserver¥myTexLib¥dull.pic</Image>

上記の内容を次のように変更します。

<Image name="metal">¥fastserver¥myTexLib¥shiny.pic</Image>

<Sources> 内のエレメントの順序は重要ではありません。特定のソースを修正対象から除外する場合は、対応するエレメントを削除できます。ただし、そのエレメントはシーン TOC の次回保存時に再び表示されます。

レンダ オプションを修正する

Scene TOC ファイルの <Passes> エレメントには、すべてのパスのレンダリング オプションが含まれています。シーン グローバルおよびレンダ固有のオプションには、「RenderOptions」、「HardwareRenderer」、および「mentalray」という名前の 3 つの <RenderOption> エレメントが存在します。

また、シーン内の各レンダ パスには、<Pass> エレメントが存在します。それぞれの <Pass> エレメントには、対応するパスのレンダ オプションが含まれます。

対応するエレメントの内容を変更することで、特定のパスのレンダ オプションを修正できます。たとえば、次のような変更が可能です。

<StartFrame>1</StartFrame>

上記の内容を次のように変更します。

<StartFrame>24</StartFrame>

オプションのなかには相互依存のものがあることに注意してください。たとえば、<PictureRatio> は、<CameraXRes> および <CameraYRes> と関連しています。このような場合は、設定される最後の値が優先値になるよう順番に値が適用され、再計算が行われます。<RenderOptions> でエレメントの順序を変更することで優先順位を変えられます。

レンダ オプションを変更したくない場合は、対応するエレメントを削除できます。ただし、そのエレメントはシーン TOC の次回保存時に再び表示されます。

パスの追加や、既存のパスの名前変更はできません。

その他のパラメータを変更する

シーン TOC ファイルの <Parametersvalues> エレメントでは、現在のレンダ パスおよびフレーム レートの 2 つのパラメータを設定できます。

以下は、現在のレンダ パスを変更する例です。

<Param name="Passes.current">Passes.Default_Pass</Param>

上記の内容を次のように変更します。

<Param name="Passes.current">Passes.Diffuse</Param>

シーン内の既存のパス名を指定してください。

続いて、フレーム レートの変更方法です。

<Param name="PlayControl.Rate">29.970030</Param>

上記の内容を次のように変更します。

<Param name="PlayControl.Rate">25.0</Param>

ロード後処理スクリプトを実行する

シーン TOC ファイルの <PostLoadScript> エレメントを使用して、シーンがロードされ、その他のすべての修正(TOC ファイルと追加データの両方)が適用された後に、スクリプト プロシージャが実行されるようにすることができます。これは、<Language><Function>、および <Script_Content> の 3 つの子から構成されます。

<Language> エレメントは、使用するスクリプト言語を指定します。お使いのコンピュータで使用可能な言語に応じて、以下のいずれかを指定します。

  • VBScript

  • JScript

  • PerlScript

  • Python

たとえば、次のように記述します。

<Language>VBScript</Language>

<Function> エレメントは、実行するプロシージャを指定します。たとえば、次のように記述します。

<Function>myPostLoadProc</Function>

指定したプロシージャは、<Script_Content> エレメントで宣言されている必要があります。<Script_Content> エレメントには複数のプロシージャを含めることができ、<Function> を変更することでプロシージャを容易に切り替えることができます。

<Script_Content> エレメントにグローバル コードがある場合(つまり、サブルーチンにも関数にも含まれないコードがある場合)、グローバル コードは指定したプロシージャの前に実行されます。これはスクリプトの解析による影響です。

また、グローバル コードは実行するプロシージャを指定していない場合にも実行されます。

<Script_Content> エレメントには、実際に実行するコードを含めます。スクリプトは 1 つの CDATA セクションに入れます。こうすることで、XML 構文において特別な意味を持つ文字(<>& など)も使用できます。次に、VBScript の例を示します。

<Script_Content>
  <![CDATA[
    sub myPostLoadProc
      LogMessage "Running scene TOC postload script"
    end sub
  ]]>
</Script_Content>
注:シーン TOC ファイルでスクリプトを使用して値を修正する代わりに、追加データを使用する方法もあります。唯一の違いは、シーン TOC データは個々のシーンに固有のものであるのに対し、追加データはすべてのシーンに適用されるという点です。追加データの詳細については、「追加データを使用してシーンを表示する」を参照してください。