Set as Null Motion
モーションを Null で登録
ASTER::ACTION::ObjectControl
::MOTION::Set Null Motion
Null Motion
として登録。モーション・コントローラへの登録にはユーザーが自由に決めた「モーショングループ名」を入力できます。
「動作を持たないモーション」として登録されます。
Null モーション :: 概要
動作が無いため内部的には非常にシンプルな構造体に最低限のパラメータ、Reject 用のフラグおよびカウンタと Destory 用のフラグを持っています。
登録後の動作負荷が少なく小メモリで動かせる低コストなグループとして汎用的利用が可能。
頻繁な登録及び登録解除を繰り返す利用法を想定、インスタンス管理用の C++ STL シーケンスコンテナに std::vector ではなく deque
を採用しました。
パラメータ .1
オブジェクトを選択。
アクティブ以外のオブジェクトタイプを指定した場合、エラーが表示され、以降の処理をすべて中止します。
パラメータ .2
登録用の名前を入力。日本語などマルチバイト文字列も利用可能ですが、実用上アルファベット小文字で短い名前を推奨します。
e.g.
"test"
入力が面倒な場合、あるいはアクティブオブジェクトに予め設定された名前をそのまま利用する場合、空文字列を送信します。
e.g.
""
注意点.1
Null Motion は動作が無く、登録されただけでオブジェクトは動きません。
注意点.2
注意点.3
Per Motion Group に登録可能なインスタンス数は最大 256
個。 モーショングループは 1 モーション・タイプにつき 256
個までグループ登録できる。
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 |
実用的には全登録モーションで 100
インスタンス以下での動作を想定しています。
上記は理論値であり CF25 の処理能力を超えているため常に最大値未満で運用することになります。
注意点.4
予約変数としてオブジェクト・インスタンスの変数から
- Alt Variable[0] =
Spread ID
- 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
] は予約変数扱いのままでお願いします。
既知の問題点
コントローラ登録時、Action Loop に起因した他命令との実行順に関する問題
Known Issue :: Registration to the Object Motion Controller.
Jump to relative