レイヤをベースにしたパーティションを持つ新しいパスを作成し、現在のパスに設定します。 シーン内の特定のエレメントを分離するためには、レイヤ内でシーンをレンダリングすると非常に便利です。こうすると、特殊なエフェクトを柔軟に使用できるようになります。
注: パスとレイヤは概念的には類似していますが、大きな違いがあります。
レイヤはシーンのエレメントを分離するために使用するもので、レイヤによってエレメントの外観を編成することもできますし、レンダリングしないようにして処理の応答を最適化することもできます。 レイヤは主にビューポートのビューとレンダ領域に影響します。
パスはシーン エレメントをレンダリング用に分離するもので、パスごとに別々に微調整したり編集したりすることができます。
注: このコマンドは、出力引数を使用します。C# および一部のスクリプト言語(JScript、PerlScript、Python など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。
スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。
C# の場合は、XSIApplication.ExecuteCommand メソッドを使用してこのコマンドを呼び出すことができます。ExecuteCommand は、出力引数を C# の System.Object (出力引数の Array を含む)にパック化します(詳細については、「C# からのコマンドの呼び出し」を参照)。
CreatePassFromLayers( [Name], [Value] ); |
' ' This example creates a cone and a sphere, creates a new layer ' for each, and then creates a new pass based on the layers. ' ' Create a new scene NewScene , false ' Create a cone and make a layer with it Set oCone = GetPrim( "Cone", "MeshSurface" ) CreateLayer , "Wizard_Hat", , oHat ' Do the same with a sphere Set oSphere = GetPrim( "Sphere", "MeshSurface" ) CreateLayer , "Magic_Ball", , oBall ' Create a pass based on these layers CreatePassFromLayers "Wizard", oPass ' Print partition info Application.LogMessage "Info on " & oPass.Name & ":" Application.LogMessage "--------------------------------" ' Create an XSICollection with the partition info set oParts = CreateObject( "XSI.Collection" ) oParts.SetAsText( oPass & ".Partitions.*" ) For Each p In oParts Application.LogMessage p Next ' Output of the above script: 'INFO : "Info on Wizard:" 'INFO : "--------------------------------" 'INFO : "Passes.Wizard.Background_Objects_Partition" 'INFO : "Passes.Wizard.Background_Lights_Partition" 'INFO : "Passes.Wizard.Layer_Default" 'INFO : "Passes.Wizard.Layer_Default1" 'INFO : "Passes.Wizard.Wizard_Hat" 'INFO : "Passes.Wizard.Magic_Ball" |