Instance Manager インタフェース によって、インスタンス化されたノードに関連するプロパティとメソッドにアクセスできます。ここでは、インスタンスを収集したり、マテリアルのインスタンスへの伝播を管理したり、インスタンス化されたモディファイヤ、コントローラ、およびノードを一意にするための方法などが提供されています。
プロパティ:
InstanceMgr.autoMtlPropagation : boolean : Read|Write
True
に設定した場合、オブジェクトに割り当てられたマテリアルが自動的にすべてのインスタンスに伝播します。
メソッド:
<DWORD>InstanceMgr.GetInstances <node>source <&node array>instances
instances is Out parameter
指定したソース ノードのインスタンスの数と、参照出力パラメータ内のすべてのインスタンスのリストを返します。
例:
|
tp = Teapot() --ティーポットを作成します。
--> $Teapot:Teapot01 @ [0.000000,0.000000,0.000000]
tp1 = instance tp --ティーポットをインスタンス化します。
--> $Teapot:Teapot02 @ [0.000000,0.000000,0.000000]
tp2 = instance tp --もう一度インスタンス化します。
--> $Teapot:Teapot03 @ [0.000000,0.000000,0.000000]
tp3 = copy tp --ティーポットをコピーします。
--> $Teapot:Teapot04 @ [0.000000,0.000000,0.000000]
InstanceMgr.GetInstances tp &instances -- 元のティーポットのインスタンスを取得します。
--> 3
instances --返された配列を表示します。はすべて表示されていますが、コピーは存在しません。
--> #($Teapot:Teapot03 @ [0.000000,0.000000,0.000000], $Teapot:Teapot02 @ [0.000000,0.000000,0.000000], $Teapot:Teapot01 @ [0.000000,0.000000,0.000000])
InstanceMgr.GetInstances tp3 &instances --コピーのインスタンスを取得します。
--> 1
instances -- 返された配列を表示します。ここではコピーだけが唯一のオブジェクトです。
--> #($Teapot:Teapot04 @ [0.000000,0.000000,0.000000])
|
<DWORD> InstanceMgr.SetMtlOnInstances <node>source <material>newMtl
指定した新しいマテリアルを、指定したソース ノードのインスタンスに伝播します。通常、インスタンスは独立したマテリアルを持つことができます。このメソッドを使用すれば、同じマテリアルを使用するためにすべてのインスタンスを更新できます。インスタンスの数を返します。
例:
|
tp = Teapot() --ティーポットを作成します。
--> $Teapot:Teapot01 @ [0.000000,0.000000,0.000000]
tp.material = standard diffuse:(color 255 0 0) --赤いマテリアルを割り当てます。
--> Standardmaterial:Standard
tp1 = instance tp --インスタンスを作成します。
--> $Teapot:Teapot02 @ [0.000000,0.000000,0.000000]
tp1.pos = [100,0,0] --インスタンスを移動します。
--> [100,0,0]
tp1.material = standard diffuse:(color 0 255 0) --緑のマテリアルを割り当てます。
--> Standardmaterial:Standard
tp2 = instance tp --別のインスタンスを作成します。
--> $Teapot:Teapot03 @ [0.000000,0.000000,0.000000]
tp2.pos = [200,0,0] --インスタンスを移動します。
--> [200,0,0]
tp2.material = standard diffuse:(color 0 0 255) --青いマテリアルを割り当てます。
--> Standardmaterial:Standard
newMaterial = standard diffuse:(color 250 255 255) --白いマテリアルを作成します。
--> Standardmaterial:Standard
InstanceMgr.SetMtlOnInstances tp newMaterial --すべてのインスタンスに割り当てます。 3 --3 つのオブジェクトが影響を受けました。
|
<bool>InstanceMgr.MakeObjectsUnique <&node array>nodes <enum>multiNodeOption
nodes is In parameter
multiNodeOption enums: {#prompt | #individual | #group}
参照渡しのオブジェクトを一意にします。成功した場合は
True
を返します。
例:
|
tp = Teapot() --ティーポットを作成します。
--> $Teapot:Teapot01 @ [0.000000,0.000000,0.000000]
tp1 = instance tp --ティーポットをインスタンス化します。
--> $Teapot:Teapot02 @ [0.000000,0.000000,0.000000]
tp2 = instance tp --もう一度インスタンス化します。
--> $Teapot:Teapot03 @ [0.000000,0.000000,0.000000]
InstanceMgr.GetInstances tp &instances --すべてのインスタンスを取得します。
--> 3
--インスタンスを一意にします。操作を確認するためのプロンプト画面を表示します。
InstanceMgr.MakeObjectsUnique &instances #prompt
--> true
--オブジェクトがすべて、それ自身のインスタンスのみであることを確認します。
InstanceMgr.GetInstances tp &instances
--> 1
InstanceMgr.GetInstances tp1 &instances
--> 1
InstanceMgr.GetInstances tp2 &instances
--> 1
|
<bool>CanMakeObjectsUnique <&node array>nodes
nodes is In parameter
指定されたノードを一意にできる場合は
True
を、それ以外の場合は
False
を返します。
例:
|
tp = Teapot() --ティーポットを作成します。
--> $Teapot:Teapot01 @ [0.000000,0.000000,0.000000]
tp1 = instance tp --ティーポットをインスタンス化します。
--> $Teapot:Teapot02 @ [0.000000,0.000000,0.000000]
tp2 = copy tp --ティーポットをコピーします。
--> $Teapot:Teapot03 @ [0.000000,0.000000,0.000000]
--2 つのインスタンスを一意にできるかどうかをチェックします。ここでは一意にできます。
InstanceMgr.CanMakeObjectsUnique #(tp,tp1)
--> True
--元のティーポットとコピー(インスタンスではない)が一意にできないことを確認します。
InstanceMgr.CanMakeObjectsUnique #(tp,tp2)
--> False
|
<bool>InstanceMgr.MakeModifiersUnique <&node array>nodes <&maxObject array>modifiers <enum>multiNodeOption
nodes is In parameter
modifiers is In parameter
multiNodeOption enums: {#prompt | #individual | #group}
与えられたノードの指定したモディファイヤを一意にします。 成功した場合は
True
を返します。
<bool>InstanceMgr.CanMakeModifiersUnique <&node array>nodes <&maxObject array>modifiers
nodes is In parameter
modifiers is In parameter
与えられたノードの指定のモディファイヤを一意にできる場合は
True
を、それ以外の場合は
False
を返します。
<bool>MakeControllersUnique <&node array>nodes <&maxObject array>controllers <enum>multiNodeOption
nodes is In parameter
controllers is In parameter
multiNodeOption enums: {#prompt | #individual | #group}
与えられたノードの指定したコントローラを一意にします。正常に終了した場合は 成功した場合は
True
を返します。
<bool>InstanceMgr.CanMakeControllersUnique <&node array>nodes <&maxObject array>controllers
nodes is In parameter
controllers is In parameter
与えられたノードの指定のコントローラを一意にできる場合は
True
を、それ以外の場合は
False
を返します。