Position_Constraint - superclass: PositionController; super-superclass:MAXWrapper - 1:0 - classID: #(8217, 0)
位置コンストレイントを割り当てると、特定のオブジェクトが、特定のオブジェクトの位置または複数のオブジェクトの平均位置をフォローします。
位置コンストレイントをアクティブにするには、割り当てるオブジェクトとターゲット オブジェクトが必要です。位置コンストレイントを割り当てると、オブジェクトの位置はターゲット オブジェクトの位置に制限されます。ターゲットの位置をアニメートすると、制限されたオブジェクトがフォローします。
ターゲットごとに、影響の程度を決める重みの値があります。値が 0 の場合、影響はありません。0 より大きい値の場合、ターゲットはコンストレイントされたオブジェクトに影響を与えます。重み値を指定してアニメートすると、テーブルからボールを拾い上げるような効果が作成されます。
複数のターゲットを使って、コンストレイントされたオブジェクトに影響を与えることができます。複数のターゲットを使うときは、各ターゲットの重み値に対して、コンストレイントされたオブジェクトに与える影響を定義します。たとえば、球の[位置] (Position)が 2 つのターゲットの間に制限され、各ターゲットの重み値が 100 の場合、2 つのターゲットがモーション状態のときでも、球と 2 つのターゲットの距離は一定に保持されます。一方の重み値が 0 で他方の重み値が 50 の場合は、球の位置は、重み値が高いターゲットにのみ影響されます。
コンストラクタ
Position_Constraint...
プロパティ
<Position_Constraint>.relative Boolean default: false -- boolean
Position_Constraint インタフェース:
Interface:constraints
メソッド
<integer>getNumTargets ()
ターゲット リスト内のターゲット ノードの数を返します。
<node>getNode <index>targetNumber
インデックスで指定された ターゲット ノードを返します。
<float>getWeight <index>targetNumber
targetNumber
が適切な場合はインデックスで指定されたターゲットの重みを返し、適切でない場合は 0.0 を返します。
<boolean>setWeight <index>targetNumber <float>weight
targetNumber
が指定されたインデックスで指定されたノードの重みを設定します。成功した場合は True
、成功しなかった場合は False
を返します。
<boolean>appendTarget <node>target<float>weight
指定されたノードをリストに追加し、その重みを指定された値に設定します。成功した場合は True
、成功しなかった場合は False
を返します。
<boolean>deleteTarget <index>targetNumber
インデックスで指定されたターゲットを削除します。成功した場合は True
、成功しなかった場合は False
を返します。
例
s = sphere pos:[20,20,20] b = box pos:[-20,-20,-20] posCtrl =Position_Constraint() s.pos.controller = posCtrl posConstraintInterface = posCtrl.constraints posConstraintInterface.appendTarget $box001 20.0 node1 = posConstraintInterface.getNode 1 weight = posConstraintInterface.getWeight 1 posConstraintInterface.setWeight 1 0.0