Grow Radius for Orbital: ByName


ASTER::ACTION::MotionControl::Grow Radius for Orbital; ByName

コントローラに登録済みのモーショングループに対して、Orbital Motion 用の GrowRad パラメータを設定。

周回動作には下記四つのオプション設定があります。

  1. スタートアップ角度

  2. 中心点からのオフセット値

  3. スリープ動作 ( Dedicated for Orbital )

  4. 半径の動的変更命令 ( Grow Radius )

Grow Radius for Orbital は半径の最大値と最小値を往復する機能などを備えています。

周回動作の半径を動的に変更することで周期的動作にランダム性を加えた動きなどが作成可能になります。


動作サンプル

"true,    200, 100, +.5, 60, -1,      200, 100, +.5, 10, -1"

Minion Minion



"true,    200, 100, +.8, 60, -1,      200, 150, +.5, 10, -1"

Minion Minion



"16,16, +4,   false, 120, 40, 0,0, false, 10, 0, 10"
"true,    32, 16, +.5, 60, -1,      32, 16, +.5, 10, -1"

Minion Minion



" 650,  300,  -4.5,  false,    0, 72,   0, -200,   false, 30,  0, 45"
"true,  162, 162,  -4,  40,  1,   60, 60, -2, 40, 1"

Minion Minion


Parameter.1

モーショングループ名の指定

登録されているモーショングループが二つ以上ある場合、グループ名を指定すると該当グループにパラメータを設定できます。

Parameter Exsample Description
"ExMotion1" グループ名を指定したパラメータの設定
"" 空文字列を送信、登録されている全モーショングループが対象

グループ名を指定せず空文字を送信すると、現在登録されている全モーショングループが対象となります。


Parameter.2

GrowRad パラメータの送信

Grow Radius パラメータ ( 11 Params ) をシリアライズして送信します。

  • 構文チェックがあり、不正な構文は実行時エラーとなります。

  • 数値の型指定は厳密に行われます。

"true,    200, 100, +.5, 360, -1,    200, 100, +.5, 360, -1"

Orbitalでは(楕円軌道を作成するために必要な)垂直方向と水平方向の半径値を個別に定義できます。 Grow Radius 命令も二つの半径に対するパラメータ設定が必要です。

value Type Description
true boolean Grow Radius Flag; true or false
200 unsigned int Max Radius.1
100 unsigned int Minimum Radius.1
+.5 float Delta.1; Increase or Decrease with value to the current Radius.
360 unsigned int Frame time interval.1; When arrive at the Max or Minumum Radius.
-1 int Repetition value.1; -1 iz the infinite loop.
200 unsigned int Max Radius.2
100 unsigned int Minimum Radius.2
+.5 float Delta.2; Increase or Decrease with value to the current Radius.
360 unsigned int Frame time interval.2; When arrive at the Max or Minumum Radius.
-1 int Repetition value.2; -1 iz the infinite loop.

以下に個別パラメータの詳細を記述。


Show Grow radius flag
Grow Radius Flag; Boolean

Grow Radius 機能を有効化するための真偽値。truefalse で記述。

  • true の場合、機能を有効化する。

  • false の場合、機能を停止する。

二つある repetition 値を共に 0 にした場合、自動的に GrowRad flag が false と設定されます。


Show Max radius
Max Radius; unsigned int

半径 の最大値を設定。

  • 値は符号無し整数、符号を使った記述は全て構文エラーとします。マイナス値だけでなくプラス値にも符号は使えません。
status value
Error -100
Error +100
No error 100

マイナス値を受け付けないパラメータにマイナス符号の利用を禁止するため unsigned int を指定するケースは多いのですが、プラス符号の利用も併せて禁じている理由として、このパラメータは絶対値なので符号の記述は無意味であることを示しています。


Show Minumum radius
Minimum Radius; unsigned int

最小の半径を符号なし整数で指定。0 以上の数値、最大値 ( Max Radius ) よりも小さい値が必要。


Show Delta
Delta; float

現半径値に対して加算減算する数値、符号付の浮動小数点数 ( float ) で値を記述。

半径の初期設定値が時間経過と共に指定された最大半径もしく最小半径値と等しくなるまで加算減算されます。Delta の絶対値が大きくなるほど短時間で目標値に到達します。

値の書き方について

float は先頭のゼロを省略して小数点以下の数値を表現する暗黙の小数表現、.1 という書き方をサポートしています。

status value
No error +0.1
No error -.1

符号の利用について、プラス値は任意ですが、パラメータの可読性を高めるため符号の利用を推奨します。

Delta 値がプラス値の場合は最大半径を目指し、マイナス値の場合は最小半径を目指します。


Show Interval frame time
Interval Frame Time; unsigned int

インターバルタイムの指定を符号なし整数で指定。1 以上の数値が必要。

設定された目標値 ( 最大・最小半径 ) に到達した時点で Repetition 値が 0 ではない場合、インターバルを挟んで次の目標値まで半径が再度変更されます。

時間の単位はアプリケーションのフレーム設定に応じて変化するフレームタイム。一秒間に 60 回画面更新される設定のアプリケーションの場合、インターバルに 60 を指定された場合約一秒間、半径は変化せず同じ値を維持します。


Show Repetition numbers
Repetition Numbers; int

最大・最小半径を往復する繰り返し動作回数を符号付き整数で指定。

  • repetition.1repetition.20 を代入した場合、Grow Radius Flagfalse と設定されます。

“repetition Numbers” は 1 以上の数値を代入された場合、半径が最大もしく最小半径値に到達する毎に 1 減算されます。最終的に repetition が 0 になった時点で GrowRad は動作を終了します。

マイナス値を代入した場合、永久ループ指定となり、インターバルを挟んだ最大 ~ 最小半径内での往復を繰り返します。