コンパウンド パラメータは、Softimage のパラメータを 1 つにまとめたものです。 これらのまとまりは、パラメータとプロパティ オーナーの中間ノードのように機能します。 代表的なコンパウンド パラメータは、ローカルまたはグローバル キネマティクス、またはローカルまたはグローバル キネマティクスです。
SDK の場合、コンパウンド パラメータは通常、CompoundParameter と呼ばれる内部クラスから派生する独自のクラス ID を実装します。このクラスは、メソッドやプロパティを実装せず、より限定的なクラスの中間クラスとしてのみ機能するので、実際にこのクラスに遭遇するのは、siCompoundParameterID クラス ID に対して、SIObject.IsClassOf または CBase::IsA を実行する場合のみです。コンパウンド パラメータは、SIObject.Type または SIObject::GetType を実行したときに、自身の型を CompoundParameter と識別します。
VBScript の例:プロパティ、シンプルパラメータ、およびコンパウンドパラメータのテスト
NewScene , false set oTorus = Application.ActiveSceneRoot.AddGeometry( "Torus", "MeshSurface" ) ' Test a property and its simple parameter LogInfo oTorus.Properties( "Visibility" ) LogInfo oTorus.Properties( "Visibility" ).Parameters( "viewvis" ) ' Test property, its compound and simple parameters LogInfo oTorus.Kinematics LogInfo oTorus.Kinematics.Local LogInfo oTorus.Kinematics.Local.Parameters( "PosX" ) ' Ouput: ' INFO : ---------------------- ' INFO : Name: torus.visibility ' INFO : Type: visibility ' INFO : Class: Property ' INFO : IsClassOf(siParameterID): False ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): True ' INFO : ---------------------- ' INFO : Name: torus.visibility.viewvis ' INFO : Type: Parameter ' INFO : Class: Parameter ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): False ' INFO : ---------------------- ' INFO : Name: torus.kine ' INFO : Type: kine ' INFO : Class: Kinematics ' INFO : IsClassOf(siParameterID): False ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): True ' INFO : ---------------------- ' INFO : Name: torus.kine.local ' INFO : Type: CompoundParameter ' INFO : Class: KinematicState ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): True ' INFO : IsClassOf(siPropertyID): False ' INFO : ---------------------- ' INFO : Name: torus.kine.local.posx ' INFO : Type: Parameter ' INFO : Class: Parameter ' INFO : IsClassOf(siParameterID): True ' INFO : IsClassOf(siCompoundParameterID): False ' INFO : IsClassOf(siPropertyID): False ' Convenience method to print info easily sub LogInfo( in_obj ) Application.LogMessage "----------------------" Application.LogMessage "Name: " & in_obj.FullName Application.LogMessage "Type: " & in_obj.Type Application.LogMessage "Class: " & TypeName(in_obj) Application.LogMessage "IsClassOf(siParameterID): " & in_obj.IsClassOf(siParameterID) Application.LogMessage "IsClassOf(siCompoundParameterID): " & in_obj.IsClassOf(siCompoundParameterID) Application.LogMessage "IsClassOf(siPropertyID): " & in_obj.IsClassOf(siPropertyID) end sub