新しいパスを作成し、ユーザが背景パーティションの表示/非表示を設定できるようにします。 このコマンドは、パーティションに追加するオブジェクトを選択した状態で、メニューから[Render] > [パス] > [パーティション] > [新規パーティション]を選択する操作と同等です。
「パーティション」はパスの一部で、グループと同じように動作します。 パーティションは、パス内でシーン エレメントを編成するために使用します。 パーティションのタイプはオブジェクトおよびライトの 2 つです。 ライト パーティションに含めることができるのはライトのみで、オブジェクト パーティションに含めることができるのはジオメトリ オブジェクトのみです。
作成した各パスには少なくとも 2 つのパーティションがあります。シーンのほとんどまたはすべてのオブジェクトを含む Background Objects Partition と、シーンのほとんどまたはすべてのライトを含む Background Lights Partition です。 背景パーティションに含まれるオブジェクトおよびライトは、パスの作成方法によって異なります。たとえば空のパスを作成した場合、シーンのすべてのオブジェクトおよびライトは背景パーティションに配置されます。一方、パス プリセットによっては、パーティションを(背景パーティションとは別に)自動的に作成するものがあります。このパーティションには、パスを作成した際に選択していたオブジェクトが含まれます。
注: このコマンドは、出力引数を使用します。C# および一部のスクリプト言語(JScript、PerlScript、Python など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。
スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。
C# の場合は、XSIApplication.ExecuteCommand メソッドを使用してこのコマンドを呼び出すことができます。ExecuteCommand は、出力引数を C# の System.Object (出力引数の Array を含む)にパック化します(詳細については、「C# からのコマンドの呼び出し」を参照)。
CreatePassWithPartition( [PresetObj], [Name], [ParamName], [InputObjs], [Value] ); |
パラメータ | タイプ | 説明 |
---|---|---|
PresetObj | String またはプリセット オブジェクト(「SIGetPreset」を参照) |
任意のパス プリセット デフォルト値:"Pass" (デフォルトのパス) |
Name | 文字列 |
新しいパスの名前 デフォルト値:指定しない場合は名前が自動的に生成されます。 |
ParamName | 文字列 |
新しいパーティションの名前 デフォルト値:指定しない場合は名前が自動的に生成されます。 |
InputObjs | 文字列 |
パーティションに移動するオブジェクトのリスト。 デフォルト値: 選択されたオブジェクト |
Value | パス | 新しいパスを戻します。 |
' ' This example demonstrates how to create a depth pass with ' a partition containing a cone. It also shows how you can ' access partition information from a particular pass. ' ' Create a new scene NewScene , false ' Create a cone to add to one of the partitions Set oCone = GetPrim( "Cone", "MeshSurface" ) ' Create a depth pass with a partition for the cone CreatePassWithPartition InstallationPath( siFactoryPath ) _ & "\Data\DSPresets\Groups\Depth_Pass.Preset", _ "Deep_Pass", "Coney_Island", oCone, oPass ' Print partition info Application.LogMessage "Partitions for " & oPass & ":" Application.LogMessage "--------------------------------" ' Create an XSICollection with the partition info set oParts = CreateObject( "XSI.Collection" ) oParts.SetAsText( "Passes.Deep_Pass.Partitions.*" ) For Each p In oParts Application.LogMessage p Next ' Output of the above script: 'INFO : "Partitions for Passes.Deep_Pass:" 'INFO : "--------------------------------" 'INFO : "Passes.Deep_Pass.Background_Objects_Partition" 'INFO : "Passes.Deep_Pass.Background_Lights_Partition" 'INFO : "Passes.Deep_Pass.Coney_Island" |