インタフェース: InstanceMgr
 
 
 

インタフェース > コア インタフェース > InstanceMgr

 

   

コア インタフェース - クイック ナビゲーション

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 を返します。

   

関連事項