ASTER::ACTION::ObjectControl:: Grow Radius for SineWave

SineWave :: Target XY with Sleep ( 6 Params )

SineWave 動作には

  1. スタートアップ角度
  2. スリープ動作
  3. 振幅の動的変更命令 ( Grow Radius for SineWave )

上記三つのオプション設定があります。

Grow Radius は単純に振幅を変える単機能な命令ではなく、タイムインターバルやリピート機能を使った最大値から最小値への往復など多機能を備えています。

振幅に関する値を細かくカスタムできます。


動作サンプル ( 画像 )

最初に通常の SineWave 動作パラメータを入力します。

e.g.

  "+1.2,    80,   +2.2,      0,     0, false,  -40,  1000"
  

通常の SineWave 動作

次に SineWave 動作を拡張する GrowRad パラメータを送信。

e.g.

  "true,  150,  0,  -.5,  60,  -1"
  

拡張パラメータ適用結果


パラメータ 1 ( ByName )

グループ名を指定します。


パラメータ 2

Grow Radius パラメータを文字列で一括送信します。構文チェックがあり数値の型指定は厳密に行われます。不正な構文はエラーとなります。

e.g.

  "true,  150,  0,  -.5,  60,  -1"
  
  true  = grow Radius Flag ( Boolean >> true | false )

150   = Max Amplitude : ( unsigned int )
  0   = Minimum Amplitude : ( unsigned int )
-.5   = Omega ( ω ) : ( float ) >> increase | decrease with value to the Current Amplitude.
 60   = frame time Interval : ( unsigned int ) when arrive at the Max|Minimun Amplitude.
 -1   = repetition value : ( int ) -1 iz the infinite loop.
  

以下に個別パラメータの説明を記述します。


Grow Radius Flag ( Boolean )

Grow Radius 命令実行を決定する真偽値。truefalse で記述してください。

  • true の場合、実行する。

  • false の場合、実行しない ( 停止する ) 。

repetition 値を 0 にした場合、自動的に flag は false 判定となります。


Max Amplitude ( unsigned int )

振幅 ( Amplitude ) の最大値を設定します。値は符号無し整数、マイナス値もダメですがプラス値を符号使って明示的に記述することも構文エラーとします。符号の利用を禁じている理由として、このパラメータはマイナス値を受け付けない、絶対値なので符号の利用自体が意味を成さないため。

  1. 駄目な例 » “-100
  2. 駄目な例 » “+100
  3. 良き » “100

Minimum Amplitude ( unsigned int )

最小の振幅を符号なし整数で指定します。0 以上の数値、最大値 ( Max Amplitude ) よりも小さい値が必要。


Omega ( float )

現在の振幅に対して加算減算する数値、符号付の浮動小数点数 ( float ) で値を記述してください。振幅の初期設定値が時間経過と共に指定された最大振幅もしく最小と等しくなるまで加算減算されます。Omega の絶対値が大きくなるほど短時間で目標値に到達します。

値の書き方として

  1. 良き » “+0.1
  2. 良き » “-.1

float は 0.1 の場合 .1 という書き方をサポートしています。

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

設定がプラス値の場合は最大振幅を目指し、マイナス値の場合は最小を目指します。


Interval Frame Time ( unsigned int )

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

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

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


Repetition Numbers (int)

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

仕様上 repetition .1.20 を代入した場合 Grow Radius Flagfalse に変更されます。

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

マイナス値を代入した場合、永久ループ指定となり最大 ~ 最小振幅内で往復を繰り返します。