CreatePassWithPartition

カテゴリ

render

詳細

新しいパスを作成し、ユーザが背景パーティションの表示/非表示を設定できるようにします。 このコマンドは、パーティションに追加するオブジェクトを選択した状態で、メニューから[Render] > [パス] > [パーティション] > [新規パーティション]を選択する操作と同等です。

「パーティション」はパスの一部で、グループと同じように動作します。 パーティションは、パス内でシーン エレメントを編成するために使用します。 パーティションのタイプはオブジェクトおよびライトの 2 つです。 ライト パーティションに含めることができるのはライトのみで、オブジェクト パーティションに含めることができるのはジオメトリ オブジェクトのみです。

作成した各パスには少なくとも 2 つのパーティションがあります。シーンのほとんどまたはすべてのオブジェクトを含む Background Objects Partition と、シーンのほとんどまたはすべてのライトを含む Background Lights Partition です。 背景パーティションに含まれるオブジェクトおよびライトは、パスの作成方法によって異なります。 たとえば空のパスを作成した場合、シーンのすべてのオブジェクトおよびライトは背景パーティションに配置されます。 一方、パス プリセットによっては、パーティションを(背景パーティションとは別に)自動的に作成するものがあります。このパーティションには、パスを作成した際に選択していたオブジェクトが含まれます。

注: このコマンドは、出力引数を使用します。 C# および一部のスクリプト言語(JScript、PerlScript、Python など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。

スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。

C# の場合は、XSIApplication.ExecuteCommand メソッドを使用してこのコマンドを呼び出すことができます。 ExecuteCommand は、出力引数を C# の System.Object (出力引数の配列を含む)にパック化します(詳細については、「C# からのコマンドの呼び出し」を参照)。

スクリプト構文

CreatePassWithPartition( [PresetObj], [Name], [ParamName], [InputObjs], [Value] );

パラメータ

パラメータ タイプ 詳細
PresetObj 文字列 またはプリセット オブジェクト(「SIGetPreset」を参照) 任意のパス プリセット

デフォルト値:"Pass" (デフォルトのパス)

Name 文字列 新しいパスの名前

デフォルト値:指定しない場合は名前が自動的に生成されます。

ParamName 文字列 新しいパーティションの名前

デフォルト値:指定しない場合は名前が自動的に生成されます。

InputObjs 文字列 パーティションに移動するオブジェクトのリスト

デフォルト値: 選択されたオブジェクト

パス 新しいパスを戻します。

VBScript の例

'
'       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"

関連項目

RenderPasses CreateLayer CreatePass SICreatePass SICreatePartition SICreateLayer