CreatePassWithPartition

詳細

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

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