コントローラ時間関数

時間範囲の操作:

getTimeRange <controller> [#selOnly] [#allKeys] [#children]         

コントローラ内でキーによりカバーされる時間範囲を指定する時間間隔を返します。以下のシンボリック引数を使ってオプションを指定できます。

selOnly : (トラック ビューで)現在選択されているキーがカバーする時間範囲を返します。

allKeys (既定値): コントローラ内のすべてのキーに対する時間範囲です。

children : サブ コントローラに一階層降りてから、全サブ コントローラ内のすべてのキーをカバーする総時間間隔を返します。

setTimeRange <controller> [<interval>] [#linkToKeys]     

時間範囲を既存のキーでカバーされていない間隔に設定します。範囲外メソッドが支配する場合は特に影響します。オプションの #linkToKeys 引数が指定されると、指定間隔の開始と終了時点のキーが時間範囲のアンカーとなり、それを移動するとコントローラの時間範囲が変更されます。

setTimeRange() に引数 #linkToKeys を 1 つだけ付けて呼び出すと、影響を受ける全コントローラ内の現在の開始および終了キーに時間範囲を設定します。

    setTimeRange $box* #linkToKeys

これは、トラック ビューの[位置範囲](Position Ranges)モードの[範囲を再組み合わせ](Recouple Ranges)関数と同じです。

注: #linkToKeys 引数が指定されていない場合、影響を受けるのは指定されたコントローラだけです。#linkToKeys 引数が指定されている場合、関数はすべてのサブコントローラにも再帰的に影響します。

時間の操作:

supportsTimeOperations <ctrl>   

コントローラが次の時間演算をサポートしているかどうかによって、true または false を返します。

deleteTime <controller> <interval> [#incLeft] [#incRight] [#noSlide]

指定された時間間隔をコントローラから削除します。その間隔内のすべてのキーを削除し、キーをその間隔の右にスライドし、その間隔の幅だけ左にスライドします (既定値)。オプションのシンボル引数により、次からオプションを 1 つ選択できます。

incLeft : 間隔の開始時間にあるすべてのキーが含まれます。

incRight : 間隔の終了時間にあるすべてのキーが含まれます。

noSlide : キーを削除したギャップを埋めるために後のキーを移動しません。間隔にあるすべてのキーの削除のみを行います。

<interval> 引数は、Interval 値として、または開始時間と終了時間を定義する 2 つの数値または時間値として指定できます。数値はフレーム番号として考えられます。

reverseTime <controller> <interval> [#incLeft] [#incRight]

指定した間隔内で時間を逆転します。つまり、間隔内でキーの時間的配置が逆転するように、キーを配置し直します。deleteTime() の inclusion および interval 引数に関する注意事項がここでもあてはまります。

scaleTime <controller> <interval> <float_scale>

指定した間隔の中にあるキーの時間をスケールします。ここでも、<interval> 引数は、Interval 値として、または開始時間と終了時間を定義する 2 つの数値または時間値として指定できます。数値はフレームカウントとみなされます。

insertTime <controller> <at_time> <amount_time>

指定した時間に時間ブロックを挿入します。後にあるキーは、挿入した時間分だけ移動されます。時間は数値または Time 値として指定できます。数値はフレーム カウントとして考えられます。

次のスクリプトは、上記メソッドの例を示しています。

    -- controller test bed 1
    b=box height:10
    at time 5 animate on b.height=50
    at time 10 animate on b.height=100
    bhc=b.height.controller
    bhk=bhc.keys
    supportstimeoperations bhc
    deletetime bhc 4 5
    bhk
    deletetime bhc 4 5 #incLeft
    bhk
    deletetime bhc 1 4 #noslide
    bhk
    at time 5 animate on b.height=50
    deletetime bhc (interval 5 8) #incLeft
    bhk
    at time 10 animate on b.height=150
    for k in bhk do format "%:%\n"k.time k.value
    reversetime bhc 5 15 #incLeft #incRight
    for k in bhk do format "%:%\n"k.time k.value
    insertTime bhc 12 5
    bhk
    getTimeRange bhc