コンパウンド パラメータは、Softimage のパラメータを 1 つにまとめたものです。 これらのまとまりは、パラメータとプロパティ オーナーの中間ノードのように機能します。 最も一般的なコンパウンド パラメータは、ローカルまたはグローバル キネマティクスもしくは ローカルまたはグローバル キネマティクスです。
SDK の場合、コンパウンド パラメータは通常、CompoundParameter と呼ばれる内部クラスから派生する独自のクラス ID を実装しています。 このクラスは、メソッドやプロパティを実装せず、より限定的なクラスの中間クラスとしてのみするので、このクラスに遭遇するのはクラスの互換性のテスト(SIObject.IsClassOf または CBase::IsAを、siCompoundParameterID クラス ID に対して行う場合のみです)。また、複合パラメータは、CompoundParameter タイプとして自身を識別します(SIObject.Type または SIObject::GetType の場合)。
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