Link_Constraint - superclass: Matrix3Controller; super-superclass:MAXWrapper - 2:1 - classID: #(-2025855132, -1430354431)
リンク コンストレイントは、あるターゲット オブジェクトから別のオブジェクトにリンクするオブジェクトのアニメートに使用されます。
リンク コンストレイントでは、オブジェクトにターゲット オブジェクトの位置、回転、スケールを伝えることができます。
コンストラクタ
Link_Constraint...
Link ...
プロパティ
<Link_Constraint>.key_mode Integer default: 0 -- integer; Link_KeyMode
3 つのキー モードのいずれかを選択して、リンクされたオブジェクトにリンク コンストレイントの一部としてキーフレームを記述する方法を決定します。これらのオプションは次のとおりです。
0: キーなし: 関係するどのオブジェクトにおいてもキーは作成されません。
1: キー ノード: いくつかのオブジェクトにキーを設定します。
2: 子: 子オブジェクトのみにキーを適用します。
3: 親: 親と子の両方のオブジェクトにキーを適用します。
4: キー全体の階層: 選択したノードとその階層全体にキーフレームを適用します。
5: 子: 選択されたオブジェクトとワールドまでの階層内のノードにキーを設定します。
6: 親: 親と子、およびワールドまでの 3 つの階層すべてにキーを設定します。
<Link_Constraint>.link_params SubAnim default: SubAnim:Link_Params -- transform
リンク パラメータのサブアニメーションが含まれます。このアニメーションには、.Position
、.Rotation
、.Scale
の 3 つのプロパティがあります。親スペースにはオフセット変換があります。このコントローラには、上記の .key_mode
設定に応じたキーが含まれます。
Link_Constraint インタフェース:
Interface: constraints
メソッド:
<node><Link_Constraint>.getNode <index>nodeNumber
インデックスで指定されたターゲットを返します。
<float><Link_Constraint>.getFrameNo <index>targetNumber
インデックスで指定されたターゲットにリンクされた開始フレーム番号を返します。
<boolean><Link_Constraint>.setFrameNo <index>targetNumber <integer>frameNo
インデックスで指定されたターゲットにリンクする開始フレーム番号を設定します。成功時に true
を返します。
<integer><Link_Constraint>.getNumTargets()
ターゲットの数を返します。
<boolean><Link_Constraint>.addTarget <node>target <integer>frameNo
指定されたノードを指定したフレームでターゲット リストに追加します。成功時に true
を返します。
<boolean><Link_Constraint>.DeleteTarget <integer>targetNumber
インデックスで指定されたノードをターゲット リストから削除します。成功時に true
を返します。
<integer><Link_Constraint>.addWorld frameNo:<integer>
frameNo
既定値: -99999。
このメソッドは、指定されたフレームのターゲットとして「ワールド」を設定します。
例:
s = sphere() --create a sphere at time 100 with animate on s.pos = [200,0,0] --animate sphere 200 units along X over 100 frames b = box() --create a box at time 100 with animate on b.pos = [0,500,0] --animate box 500 units along Y over 100 frames t = teapot() --create a teapot lc = link_constraint() --create a Link Constraint instance t.transform.controller = lc --assign the constraint to the transform controller of the teapot lc.key_mode = 0 --set the key mode to 0 (it is the default anyway) lc.addWorld frameNo:29 --add a World key on frame 29 lc.addTarget s 30 --add the sphere as link target on frame 30 lc.addWorld frameNo:60 --add a World key on frame 60 lc.addTarget b 70 --add the box as link target on frame 70 lc.addWorld frameNo:80 --add a World key on frame 80 lc.setFrameNo 5 90 --changed my mind, move the last (fifth) world key to frame 90! for i = 1 to lc.getNumTargets() do --print all keys' index, time and target format "%: Frame:% - Target:% \n" i (lc.getFrameNo i) (lc.getNode i)
結果
$Sphere:Sphere001 @ [0.000000,0.000000,0.000000] [200,0,0] $Box:Box001 @ [0.000000,0.000000,0.000000] [0,500,0] $Teapot:Teapot001 @ [0.000000,0.000000,0.000000] Controller:Link_Constraint Controller:Link_Constraint 0 1 true 1 true 1 true 1: Frame:29 - Target:undefined 2: Frame:30 - Target:$Sphere:Sphere001 @ [0.000000,0.000000,0.000000] 3: Frame:60 - Target:undefined 4: Frame:70 - Target:$Box:Box001 @ [0.000000,0.000000,0.000000] 5: Frame:90 - Target:undefined OK