Set Motion of Vertical:Flip


ASTER::ACTION::ObjectControl::MOTION::Set Vertical:Flip

モーションテンプレート Vertical Flip を選択、モーションコントローラにオブジェクト・インスタンスを登録

  • Flip は指定された領域を超えた時、反転して移動を継続する動作です。

モーション::概要

垂直移動 ( Vertical ) の場合、上端と下端の各座標に仮想壁 ( The Virtual Walls ) が設定でき、壁に当たったら移動量の符号を反転し反対方向の壁へ向かって移動する、このルーチンを繰り返します。

仮想壁との衝突 ( 実際には座標通過 ) を検出した場合には即時実行条件が起動し、専用コンディションとエクスプレッションから該当インスタンスの x|y 座標や固定値を得ることができます。

移動量には浮動小数点数が設定可能になり、ASTER ベータ版では移動量の最小単位が 1 フレームタイム = 1 ピクセルでしたが、ASTER 正式版ではより詳細な動作解像度を実現します。

モーション・コントローラへモーショングループを登録する際に、ユーザーが任意で決めた「モーショングループ名」を利用できます。


パラメータ.1

オブジェクト・インスタンスを選択。コントローラにはアクティブ ( スプライト ) のみ登録可能です。

Description of the image

アクティブ以外のオブジェクトタイプを指定した場合、イベントからアクション実行時にエラーが表示され、登録処理を中止します。


パラメータ.2

モーションコントローラへ登録するモーショングループ名を入力します。

異なるオブジェクトから作成されたインスタンスでも同じモーショングループ名でグループ化し、コントローラから管理できます。

すでにコントローラに登録済みのインスタンスを別グループ名から重複登録はできません

マルチバイト文字列 (日本語など) も利用可能ですが、実用上、アルファベット小文字で短い名前を推奨します。

"test"

アクティブオブジェクトに設定された名前をモーショングループ名として登録に利用する場合、空文字列を送信します。

""

パラメータ.3

つのパラメータをシリアライズして 1 つの文字列にまとめ送信します。

" 3.3 ,    false ,   -40 ,    680 "
データ型 説明
3.3 float Y 移動量
false boolean 停止状態で開始 (true, false)
-40 signed int 仮想壁 ( 上端座標 )
680 signed int 仮想壁 ( 下端座標 )

その他、注意点


登録可能上限、予約変数について »

仕様上の登録可能数

1 つのモーショングループに登録可能なインスタンス数は最大 255 個。 モーショングループは 1 モーション・タイプにつき 255 個までグループ登録できる。

type Max Groups Max Instances (Per Group) Total Instances (Per Motion Type)
Null 255 255 255 x 255 = 65,025
Flp | Wrp 255 255 255 x 255 = 65,025
Flp | Wrp::SineWave 255 255 255 x 255 = 65,025
Orbital 255 255 255 x 255 = 65,025
MoveTowards 255 255 255 x 255 = 65,025

上記は理論値であり CF25 の処理能力を超えているため、常に最大値未満で運用することになります。

実用的には、全登録モーションの全インスタンス数が最大 100 以下での動作を想定しています。


予約変数について

予約変数としてオブジェクト・インスタンスの変数から

  1. Alt Variable[0] = Spread ID

  2. Alt Variable[1] = Motion ID

上記を利用します。

Alt Variable[0]

連番、フレームエディタ上で一番最後に作られたオブジェクトインスタンスが 0 を割り当てられ、以降 +1 ずつ増加した値が順番に各インスタンスへ割り振られます。任意の値で上書き変更しても良い、安全。

Alt Variable[1]

モーションタイプ、0 ~ 4 までの数値、登録時のモーションタイプに応じた値が代入されます。データベース検索を高速化するためのマジックナンバー。変更するとコントローラが正常に検索できなくなります、危険。

rev.0.9.x 以降、Alt Variable[1] を利用しない方法が試行されていて、今は使ってないけれど、ただし元に戻すかもしれないので Alt Variable[1] は予約変数扱いのままでお願いします。