What About Object Motion And Control
Object Motion Control とは
インスタンスの自動移動機能
CF25 公式の登録モーションを使えばオブジェクトを簡単に自動移動させることができます。
しかしオブジェクトに対して一括して同じパラメータを送信するため、インスタンス毎に異なったパラメータや動きを付けるためには CF25 公式の「モーションコントローラ」を拡張機能としてインポートする必要があり、実行中アプリケーションからパラメータを細かく指定するためにはイベント作成で手間が多くかかります。
ASTER ではオブジェクトに対して、独自にモーション登録して管理する仕組みを作りました。これが Object Motion And Control
です。Motion
( 動作 ) と Control
( 制御 ) が ASTER で完結し、JSON からパラメータを受信・送信するなど既存機能との連携も可能。
Motion 登録と制御
Motion の登録と制御には名前 ( Motion Group Name
) を利用します。
命令系統は ByName Motion Registration
と ByName Motion Control
の二つ、モーションをコントローラへ登録し、登録されたグループ名に対して制御を行うのが通常のワークフローとなります。
以下はコントローラにオブジェクトインスタンスを登録する手順を図示しています。
flowchart LR MOT(Select the Motion Template) --> A{Object} A{Object} --> NAME(Set Motion Group Name) NAME(Set Motion Group Name) --> PARAM(Motion Param) PARAM(Motion Param) --> B{Motion Controller}
グループ管理
異なるオブジェクトでも登録名を共通化したグループ管理が可能で、CF25 標準機能ではフレームエディタ上で登録して使うオブジェクトグループという機能が類似。
ASTER の Object Control
はモーション単位でグループ化し登録できる仕組みを持つのが特徴で、アプリケーション実行中にグループの登録や解除ができます。
Active Object
= アニメーション機能を持つスプライトのみをコントロール対象としています。予約変数
オブジェクト・インスタンスの持つインスタンス変数の一部を「予約変数」として拡張機能から活用しています。
詳しい仕様については 「 Reserved Variables 」にて説明があります。
利用目的は
- 連番を自動割り振り
- 拡張機能内のデータベース検索を効率化
の二つ。
ベータ版と比較して予約変数は可能な限り減らす方向性ですが、上記二つは現在も利用しています。
テンプレートモーション
- Null
- Horizontal Wrap|Flip
- Horizontal Wrap|Flip :: Sinewave
- Vertical Wrap|Flip
- Vertical Wrap|Flip :: Sinewave
- Orbital :: OwnXy
- Orbital :: TargetXy
- Movetowards
- Movetowards :: Swap