パーティクル インスタンスをレンダリングする

 
 
 

パーティクル インスタンスのレンダリングに使用する mental ray レンダラ アセンブリに関して、いくつかの問題があります。このセクションでは、これらのさまざまな問題への対策をご紹介します。

ShapeInstanceTime 属性

[ShapeInstanceTime]属性は、[Set Instance Geometry]、[Set Particle Instance Animation Time]、[Control Instance Animation]、および[Control Displacement Instance Animation]コンパウンドで使用されます。この属性はアニメートされたパーティクル インスタンスの「ローカル」時間を定義し、パーティクル インスタンスのシェイプ アニメーションをコントロールするために使用されます。

[ShapeInstanceTime]属性は、mental ray のレンダリング時にアセンブリを使用してインスタンスを実行します。インスタンス化されたジオメトリがアセンブリによってディスクに書き込まれ、レンダリング用にロードされます。このプロセスではメモリが多く使用されるため、アニメートされたパーティクル インスタンスを数多くレンダリングする場合は、メモリに関する問題が発生する可能性があります。

また、アセンブリがレンダリングできるのはジオメトリだけで、ライトやカメラはレンダリングできません。

この場合の対策は、 各状況で[Instance Shape]ノードを使用することです。

アニメートされたインスタンスをレンダリングするためにスタンドインを使用する

スタンドインは、アセットのオフロード方法の 1 つで、レンダ時に必要に応じてロードまたはアンロードできます(「miアーカイブおよびスタンドイン」(「レンダリング」)を参照)。

スタンドインを使用してアニメートされたインスタンス オブジェクトをレンダリングすると、レンダリングの効率が著しく高まります。この場合、mental ray アセンブリは基本的にスタンドインのファイル名を検出し、それを直接使用します。これによって、インスタンス化された元のオブジェクトをシーンに含める必要がなくなるため、インスタンスのコンテンツとアセンブリのライフサイクルを完全にコントロールできます。インスタンス化されたオブジェクトに必要なアニメーションの全フレームを書き出すことができるため、再生成が発生することはありません。

スタンドインをインスタンス オブジェクトとして使用する場合の唯一の制限は、スタンドイン オブジェクトの子がレンダリングされない点です。ただし、すべてのオブジェクトを単一の親やモデルの下に置き、 書き出しの最上部にあるノードを選択すると(必ずブランチ選択すること)、そのオブジェクトのすべての子もスタンドインに含まれるようになります。

アニメートされた Club Bot モデルがスタンドインとしてアーカイブされ、インスタンス化されたオブジェクトとして読み込まれて、使用されているところ。

スタンドインを使用するには、まずインスタンスで使用するアニメートされたジオメトリのスタンドインを作成する必要があります。[レンダ](Render) [書き出し](Export) [選択されたオブジェクト](Selected Object)で書き出すことができるオブジェクトはすべてサポートされています(ライトとカメラを除く)。続けて、スタンドインをシーンに読み込み、使用するインスタンス オブジェクトとして指定します。

アニメートされたインスタンスをレンダリングするためにスタンドインを使用するには

  1. パーティクル インスタンスに使用するアニメート化されたオブジェクトを使用してスタンドインを作成し、それをシーンに読み込みます。手順の詳細については、「 オブジェクトをオブジェクト レンダ アーカイブにスタンドインとして書き出す」(「レンダリング」)を参照してください。

  2. [Instance Shape]ノードを使用して、パーティクル インスタンスを作成するためのポイント クラウドの ICE ツリーをセットアップします。「パーティクル インスタンスを作成する」を参照してください。[Control Instance Animation]コンパウンドを接続して、インスタンスのアニメーション オフセットをコントロールすることもできます。

  3. [Instance Shape]ノードのプロパティ エディタで、使用するインスタンス化されたオブジェクトとしてスタンドインを選択します。

  4. [階層モード](Hierarchy Mode)リストで[オブジェクトのみ](Object Only)を選択します。

    [Object+Children]を選択し、スタンドインに子がある場合、入れ子のアセンブリはレンダ時に無視されるので、スタンドインは無視されます。この場合、スタンドインのスタンドインでない子だけがレンダリングされます。

グループの複製によりアニメートされたインスタンスをレンダリングする

大量のアニメート化されたインスタンスがある場合は、スタンドインを使用してアニメートされたインスタンスをレンダリングできます。ただし、アニメートされたインスタンスをオフセットする際のレンダリングに関する問題は、もっと簡単に回避できます。アニメートされ、インスタンス化されたオブジェクトを必要な数だけ複製し、それらのオブジェクトをインスタンスとして使用するグループに配置します。[Instance Shape]ノードを使用している場合でも、mental ray はアセンブリを使用してオフセット アニメーションをレンダリングするため、この作業が必要になります。

[Instance Shape]ノードを使用してインスタンス アニメーションをオフセットするには

  1. アニメートされ、インスタンス化されたジオメトリを必要なだけ複製します。

  2. 複製した各ジオメトリをタイムラインでオフセットし、アニメーション シーケンスでそれぞれに個別の開始点を設定します。

  3. インスタンス化されたジオメトリの全バージョンを含むグループを作成します。

  4. [Instance Shape]ノードと ICE パーティクル ツリーを接続します。

  5. [Instance Shape]ノードのプロパティ エディタで、使用するインスタンス化されたオブジェクトとしてグループを選択します。

  6. [階層モード](Hierarchy Mode)リストで[オブジェクトのみ](Object Only)を選択します。

  7. グループのオブジェクトは、Explorer に表示されている生成順に従って選択されます。詳細については、「マスター オブジェクトのグループを使用する」を参照してください。

インスタンス化されたオブジェクトとしてライトとカメラを使用する

[Set Instance Geometry]コンパウンドによるライトとカメラのレンダリングは、前述したように mental ray アセンブリでサポートされていないため、不可能です。

ただし、[Instance Shape]ノードでライトとカメラをインスタンス化されたジオメトリとして使用できます。[ShapeInstanceTime]属性を使用しているコンパウンドが ICE ツリーに存在しないよう、十分に確認してください(「ShapeInstanceTime 属性」を参照)。

色の属性とレンダリングの属性は、パーティクルのシェーダではなくインスタンス マスタのシェーダのものであることを忘れないでください。ただし、インスタンスの位置、速度、向き、サイズはパーティクルのものであるため、これらの属性は適切に設定するようにしてください。

ライトのグループを作成してから、[階層モード](Hierarchy Mode)[オブジェクトのみ](Object Only)を選択することによって、[Instance Shape]ノードでそのグループをマスタ オブジェクトとして参照することができます。

3 つの色付きライトがグループに配置され、グループが[Instance Shape]ノードから参照されているところ。[Randomize]ノードをノードの[Index]ポートに接続することによって、各ライトをランダムに参照できます。