Set Motion as Orbital :: Own Xy ( with Sleep )
モーションを Orbital :: Own Xy で登録 ( Sleep パラメータ付属 )
ASTER::ACTION::ObjectControl
::MOTION:: Orbital :: Own Xy with Sleep ( 12 Params )
自オブジェクトの XY 位置を参照しその位置を周回移動します。
- スタートアップ角度
- 中心点からのオフセット値
- スリープ動作
上記三つのオプション設定を含むモーションテンプレートです。
パラメータ例
e.g.
"125,125, +1, false, 0, 45, 0,0, false, 30, -1, 45"
125 = Radius.1 ( unsigned int ) (pixel)
125 = Radius.2 ( unsigined int ) (pixel)
+1 = Angular Velocity ( Float )
false = Motion Startup Flag :: to stop when to startup ( Boolean ) >. (true) or NOT (false)
0 = Starting Angle ( int )
30 = Step Angle ( int )
0 = offset x value ( int )
0 = offset y value ( int )
false = Start with Sleep (true) or without sleep (false) ( Boolean )
30 = Frame Time of Sleep ( unsigned int )
-1 = Repetition Number ( int ) >> if do not need to sleep, enter this value with 0.
45 = Sleep Trigger Angle ( unsigned int )
Radius 1 & 2 ( unsigned int )
周回動作の半径を符号なし整数で設定します。単位は pixel
です。
縦と横、半径を個別に設定できる仕様は「楕円軌道」に対応するためのもの。
Angular Velocity ( float )
角速度を符号付き浮動小数点数で指定します。マイナス値の場合は右回り、プラス値の場合は左回りです。
角速度は直線運動における移動速度や移動量に相当する値。値が大きいほど素早く動きます。角度は 360
度で一周しますので事実上の最大値は 359
となります。
角速度が同じであっても半径が小さい方が実移動量は小さくなり、結果ゆっくりした動作に見えます。
Motion Startup Flag ( boolean )
動作開始時の挙動を真偽値で指定します。Stop 命令を有効化した状態で動作開始するか否かの設定。
true
の時、周回動作を開始した状態。false
の時、周回動作を停止状態で開始。
Stop 命令を解除する toogle Stop 命令を後から発行すれば動作を再開できます。
Starting Angle ( int )
周回動作開始時の角度を指定します。0
~ 359
の数値、反時計回り、マイナス値も指定可能です。
インスタンスが複数ある場合、後述する Step Angle 値を利用して開始角から一定の角度で円周状にインスタンスを均等配置できます。
上の画像では Starting Angle を 0
指定、Step Angle を 30
とし 7
個のインスタンスを半円状に配置しました。
Step Angle ( int )
前述された Starting Angle と関連が深いパラメータです。ステップ角度を指定しインスタンスの数に応じて円周上に配置するための値。
計算式として Step Angle が 30
、インスタンス数が 7
、StartingAg が 0
で求めると
- instance[
0
] :: ( StartingAG + (30
* 0 ) ) =0
degree - instance[
1
] :: ( StartingAG + (30
* 1 ) ) =30
degree - …
- …
- instance[
6
] :: ( StartingAG + (30
* 6 ) ) =180
degree
このような計算になります。
Offset X & Y ( int )
周回運動の中心点からの距離をオフセット値として設定します。
0
以外の数値だった場合、新たな周回の中心点として現中心点にオフセット値が加算された値で求められます。
Start with Sleep Flag ( boolean )
Start with Sleep Flag の真偽値はモーション開始時に「スリープを適用して動作開始するか、適用せず動作開始するか」を決定するフラグであり、true
でも false
でも Repetition 値がゼロ以外の値だった場合、必ず一回以上はスリープが実行されます。
0
にする。当 Flag を false
にしても Sleep は無効化できません。Frame Time of Sleep ( unsigned int )
アプリケーション設定に依存するパラメータ。一時停止状態を継続する時間を指定、単位はアプリケーション・フレームタイム。
60
回更新される 60
FPS 設定の場合、 60
という値は約一秒に相当。オブジェクトインスタンスも約一秒間、一時停止した状態になります。Repetition Number ( int )
Sleep ( 動作の一時停止 ) 解除後、動作再開し再度スリープに入る回数を指定。値には -1
から 0
以上の符号付整数が利用されます。
Sleep 機能を使わない場合 Repetition Number に 0
を代入してください。Sleep 命令は解除を繰り返す設計になっていて、繰り返し回数を 0
にすると Sleep 命令は無効化されます。
repetition Number はゼロ以上の数値を代入された場合、スリープが解除される毎に 1
減算されます。最終的に repetition Number が 0
になった時点で Sleep は繰り返し命令を終了。
Trigger Angle ( int )
Orbital は回転運動なので他モーションと異なり移動は角速度 ( Angular Velocity ) です。Orbital 専用 Sleep 命令はトリガーも角度 ( Trigger Angle ) 指定になっています。
Trigger Angle は符号無し整数 ( マイナス値は無効 ) 、Angular Velocity の絶対値を使って値 0
になるまで減算を繰り返します。
Stop と Sleep :: 上位下位命令
Sleep は Stop の下位命令に位置付され、Sleep 中に Stop 命令で動作停止できます。
- Stop == 停止 ( 一時停止状態も含めて停止可能 )
- Sleep == 一時停止 ( 動作再開を前提としている )
Stop 命令は Sleep 命令も含めて動作を停止できる上位命令なので Stop は Sleep の影響を受けません。
Sleep 中に Stop 命令を発行されたインスタンスは Stop 命令を解除しない限り動作を再開しません。Stop 中は Sleep 命令の全てが停止し内部カウンターも動いていません。Stop が解除された時点から Sleep も再開されます。
注意点.1
予約変数として
- variable[0] =
Spread ID
- variable[1] =
Motion ID
を利用します.
Alt Variable[0]
Alt Variable[1]
参考 : Reserved Variables
既知の問題点
コントローラ登録時、Action Loop に起因した他命令との実行順に関する問題
Known Issue :: Registration to the Object Motion Controller.
Jump to relative