Horizontal:Wrap:Sinewave
ASTER::ACTION::ObjectControl::MOTION::Set Horizontal:Wrap:Sinewave
モーションテンプレート
Horizontal Wrap :: Sinewaveを選択、モーションコントローラにオブジェクト・インスタンスを登録
- Wrap は指定された領域を超えた時、指定座標へワープして移動を継続する動作です。
モーション::概要
水平移動 ( Horizontal ) の場合、左端と右端の各座標に仮想壁 ( The Virtual Walls ) が設定でき、壁に当たったら進行方向と反対側の壁まで座標をワープさせ、再び進行方向側の壁へ向かって移動する、このルーチンを繰り返します。
仮想壁との衝突 ( 実際には座標通過 ) を検出した場合には即時実行条件が起動し、専用コンディションとエクスプレッションから該当インスタンスの x|y 座標や固定値を得ることができます。
移動量には浮動小数点数が設定可能になり、ASTER ベータ版では移動量の最小単位が
1フレームタイム =1ピクセルでしたが、ASTER 正式版ではより詳細な動作解像度を実現します。
パラメータ.1
パラメータ.2
パラメータ.3
8 つのパラメータをシリアライズして 1 つの文字列にまとめ送信します。
" +1.5 , 300, +1.0, 0, 72, false , -40 , 1000 "| 番号 | 値 | 略名 | データ型 | 説明 |
|---|---|---|---|---|
| 1 | +1.5 | x vel | float | X 移動量 |
| 2 | 300 | amp | int | 振幅幅 (pixel) |
| 3 | +1.0 | ω | float | 角速度 |
| 4 | 0 | setup ∠ | int | 初期設定角度 |
| 5 | 72 | step ∠ | int | ステップ角度 |
| 6 | false | bool | boolean | 停止状態で開始 (true,false) |
| 7 | -40 | wall-A | int | 仮想壁 (左端) 座標 |
| 8 | 1000 | wall-B | int | 仮想壁 (右端) 座標 |
-
Amplitude は単位がピクセルなので整数値。(サブピクセルはサポートせず)
-
Angular Velocity (omega = ω) は浮動小数点数。
-
Setup Angle は移動開始時の角度指定。後述する Step Angle と組み合わせて利用。
-
Step Angle はオブジェクトインスタンス数に応じて初期設定角度を変更するパラメータ。
Set up Angle 値に Step Angle 値をアクションループインデックスで乗算した値を加算して初期設定角度を決定しています。
SetupAngle = SetupAngle + (StepAngle * ActionLoopIndexNumber)
インスタンスが 6 つの場合、初期設定角度 0 、ステップ角度 72 とした場合の計算例。
SetupAngle.1 :: 0 = 0 + ( 72 * 0 );
SetupAngle.2 :: 72 = 0 + ( 72 * 1 );
SetupAngle.3 :: 144 = 0 + ( 72 * 2 );
SetupAngle.4 :: 216 = 0 + ( 72 * 3 );
SetupAngle.5 :: 288 = 0 + ( 72 * 4 );
SetupAngle.6 :: 360 = 0 + ( 72 * 5 ); // 360 は 0 と等しい
その他、注意点
振幅幅を変更する専用命令として、GrowRadius for Sinewave が利用できます。