Set Motion as Horizontal Wrap, Sinewave
モーションを Horizontal Wrap, Sinewave で登録
ASTER::ACTION::ObjectControl
::MOTION::Set as Horizontal Wrap, Sinewave Motion
Wrap は指定された領域を超えた時、指定された別の領域へワープして移動を継続する動作全般です。
垂直移動 (Horizontal) の場合、領域は上部と下部座標にそれぞれ仮想壁 (ヴァーチャルウォール) という概念で範囲が区切られ、上か下の壁に当たったら反対方向の壁 (座標) から出現するというルーチンを繰り返します。
仮想壁との衝突 (実際には座標通過) を検出した場合には即時実行条件が起動し、専用コンディションとエクスプレッションから該当インスタンスの x|y 座標や固定値などを得ることができます。これにより壁との衝突イベント自作が容易になりました。
移動量には浮動小数点数が利用可能になり、ベータ版では動作の最小単位が 1 フレームタイム = 1 ピクセルでしたが正式版ではより詳細な動作解像度を実現します。
パラメータ .1
オブジェクトを選択.
コントローラにはアクティブ ( スプライト ) のみ登録可能です.
アクティブ以外のオブジェクトタイプを指定した場合、エラーが表示され、以降の処理すべてを中止します.
パラメータ .2
登録用の名前を入力.
名前はグループ名として利用され、異なるオブジェクトでも同じ名前で管理できます.
e.g. “test” » 短い名前を推奨、日本語などマルチバイト文字列も利用可能
入力が面倒な場合、あるいはアクティブに設定された名前をそのまま利用する場合、空文字列を送信します.
e.g. "" » 空文字送信
パラメータ .3
8つのパラメータを文字列として一括送信します。
- X 移動量(float)
- 振幅幅(int)
- 角速度(float)
- 初期設定角度(int)
- ステップ角度(int)
- 停止状態で開始(真|偽)
- 仮想壁(左)位置(int)
- 仮想壁(右)位置(int)
e.g.
" +1.5 , 300, +1.0, 0, 72, false , -40 , 680 "
X velocity, amplitude, omega, set up angle, step angle, stop flag, wall-A wall-B
Amplitude はピクセル単位なので整数値、omega は Angular Velocity なので浮動小数点数を指定。
Set up Angle は移動開始時の角度指定。後述する Step Angle と組み合わせて利用できます。
Step Angle はオブジェクトインスタンス数に応じて初期設定角度を変更するパラメータ。Set up Angle 値に Step Angle 値をアクションループインデックスで乗算した値を加算して初期設定角度を決定しています。
e.g. SetupAngle = SetupAngle + (StepAngle * ActionLoopIndexNumber)
e.g. インスタンスが5つの場合、初期設定角度 0 、ステップ角度 72 とする.
SetupAngle :: 0 = 0 + ( 72 * 0 );
SetupAngle :: 72 = 0 + ( 72 * 1 );
SetupAngle :: 144 = 0 + ( 72 * 2 );
SetupAngle :: 216 = 0 + ( 72 * 3 );
SetupAngle :: 288 = 0 + ( 72 * 4 );
SetupAngle :: 360 = 0 + ( 72 * 5 ); // 360 は 0 と等しい
注意点.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