MoveTowards: RefVec.Cyclic
ASTER::ACTION::MotionControl::MoveTowards:RefVec.Cyclic, The mvt.Target is a Reference Vector.
MoveTowards: RefVec.Cyclic は、シーケンシャルコンテナに格納された XY 座標データを移動目標に利用する動作テンプレートです。
mvt.Pursuer として選択されたオブジェクト・インスタンスは Reference Vector に格納された XY 座標を参照し、目標地点まで移動します。
- Relevant URL : MvtUtil :: Reference Vector
MoveTowards:RefVec.Cyclic について
MoveTowards:RefVec では、オブジェクトインスタンスを目標座標まで移動させ、目標座標に到達した時点で動作は終了します。RefVec.Cyclic はその発展形であり、目標座標を一定の周期で更新し、常に新しいターゲットを与えながら動作を途切れさせない、MoveTowards を周期的な運動として滑らかに制御できます。
目標座標は Reference Vector に格納されており、Reference Vector は C++ のシーケンスコンテナである std::deque を利用しています。Cyclic はシーケンシャルコンテナに適用されるアルゴリズムの一つで、std::rotate に類似したアルゴリズムでデータを処理します。
MoveTowards:Re.:Cyclic demonstrations
Before Use:
Store the target coordinates in the Reference Vector beforehand
Relevant URL
-
ASTER :: Action :: MotionControl :: MvU: Create Reference Vector, Align Hexagonal L2RT2B Format
-
ASTER :: Action :: MotionControl :: MvU: Create Reference Vector, Current coords of obj instances
-
ASTER :: Action :: MotionControl :: MoveTowards: RefVec
-
ASTER :: Action :: MotionControl :: MoveTowards: TgtArr
-
ASTER :: Conditions :: MotionControl :: EvD: MvU: BEGIN moving moment
-
ASTER :: Conditions :: MotionControl :: EvD: MvU: CLOSE moving moment
-
ASTER :: Expressions::MotionControl :: EvD: MvU: Retrieve CF25 animation dir based on movement dirs
-
ASTER :: Action :: JSON :: MvtUtil: Creat a JSON array exported from the Reference Vector
Parameter.1
モーションコントローラへ登録するモーショングループ名を入力します。
異なるオブジェクトから作成されたインスタンスでも同じモーショングループ名でグループ化し、コントローラから管理できます。
すでにコントローラに登録済みのインスタンスを別グループ名から重複登録はできません。
マルチバイト文字列 (日本語など) も利用可能ですが、実用上、アルファベット小文字で短い名前を推奨します。
"test"アクティブオブジェクトに設定された名前をモーショングループ名として登録に利用する場合、空文字列を送信します。
""Parameter.2
10parameters are serialized and transmitted.
"30, false, 0, 40, -1, true, 90, false, +1, -1"| argument | Name | type | descriptions |
|---|---|---|---|
| 60 | timebound | unsigned int | Time until completion of operation, Frame Time |
| false | EvD: Motion Start | Boolean | Event Detection Flag (rev.1.0.5) |
| 0 | motion-type | unsigned int | Only 0 is implemented (rev.1.0.x) |
| 30 | Sleep Time | unsigned int | Time to pause via sleep, Frame Time |
| -1 | Sleep Repetition | int | Number of sleep repetitions; -1 is infinite, 0 disables |
| false | Sleep Begin Flag | boolean | Flag to enable sleep at the start of operation |
| 30 | Sleep Interval Value | unsigned int | Time until next sleep, Frame Time |
| false | EvD: Motion Close | Boolean | Event Detection Flag (rev.1.0.5) |
| +1 | Rotate Behavior | int | c++ Algorithm, std::rotate |
| -1 | repetition | int | Not Yet Implemented :: ASTER rev.1.0.5 |
Time Bound
unsigned int
移動を完了するのに要する時間、アプリケーションフレームタイム。60 FPS 動作設定のアプリケーションの場合、60 は約一秒に相当する。
距離に応じた時間単位の移動量を割り出すための値、与えられた条件に応じて移動速度は速くなり遅くなります。
目標座標までの距離を測り、設定された制限時間を用いて移動量を算出する仕様なので、制限時間にマイナス値を代入できない。
0 を代入した場合、動作をキャンセルする。
EvD Flag: about to start moving
boolean
イベント検出フラグ: true の場合、インスタンスが動き出す直前に条件が一度だけ実行されます。
Motion Type
unsigned int
0 を代入してください。等速直線運動を選択。
MoveTowards のサブモーションタイプ設定。ASTER rev.1.0.x には 0 以外実装が無い。将来的なアップデートで対応。
Sleep Time
unsigned int
動作を一時停止する時間を設定、アプリケーションフレームタイム。60 FPS 動作設定のアプリケーションの場合、60 は約一秒に相当する。
マイナス値を代入できない。
Sleep Repetition
int
スリープが終了後、スリープを再開する回数を設定する。スリープを利用しない場合、0 を代入してください。
-1 の場合、無限ループ。
Sleep Begin Flag
boolean
MoveTowards による移動開始時にスリープ・フラグを有効化して開始するか、否かを決定するフラグ。
true の場合、まず一時停止から始まり、スリープが終了後に移動を開始する。
false の場合、移動を開始し、時間が来たら一時停止する。
Sleep Interval
unsigned int
スリープ終了後、再び一時停止するまでの時間を設定する。アプリケーションフレームタイム。
マイナス値を代入できない。
EvD Flag: The moment after stops moving
boolean
イベント検出フラグ: true の場合、インスタンスの移動が停止した直後に条件が一度だけ実行されます。
Rotate Behavior
int
C++
| Value | Behavior |
|---|---|
| -1 | Shift elements left (if applied with negative index logic) |
| 0 | No rotation (Undefined behavior if misused) |
| +1 | Shift elements right (if applied with positive index logic) |
The definition of value 0 is still undefined. ( ASTER rev.1.0.5 )
C++ の std::rotate は要素の並び替えを実行する関数です。本来、回転の方向を数値 (-1, 0, +1) で決めるものではなく、イテレータを使って開始位置を指定し、指定された範囲の要素を回転移動する関数です。
ASTER rev.1.0.5 では実際の std::rotate を利用していませんが、並び替えの原理はほぼ同じものです。-1 と +1 しか動作テストしていませんが、0 やそれ以外の数値の扱いをどうするかなど、まだ仕様に未確定の部分があります。
Repetition Re.:Cyclic
int
Not yet implemented :: ASTER rev.1.0.5