Link_Constraint - superclass: Matrix3Controller

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