CRI ADX  Last Updated: 2024-09-25 17:41 p
Tween

サンプルのディレクトリ

/cri/pc/samples/criatomex/tween

サンプルで使用しているデータ

/cri/common/smpdata/criatomex/
  • SampleProject.acf
  • AtomCueSheet.acb
  • AtomCueSheet.awb

サンプルの解説

Tweenを使ってプレーヤーのボリューム、AISACコントロール値を指定した時間で変更させるサンプルです。
Tweenについて
Tweenは「特定のパラメーター」を「指定した時間」で「目的の値に変化させる」ためのモジュールです。
AtomExプレーヤーに対し「Tween」をアタッチする(取り付ける)ことで、ボリュームやAISACコントロール値などのパラメーターを、指定した時間をかけて徐々に変化させることが可能です。
Tweenのセットアップ
Tweenで操作するパラメーターは、Tweenハンドル作成時に指定します。
パラメーターの指定は、大きく分けて以下の2パターンがあります。
  • CRIATOMEX_PARAMETER_TYPE_BASIC
  • CRIATOMEX_PARAMETER_TYPE_AISAC
ボリュームやパン、ピッチといった一般的なパラメーターを制御する場合、 CriAtomExTweenConfig 構造体の parameter_type に CRIATOMEX_PARAMETER_TYPE_BASIC を設定し、 id.parameter_id に制御したいパラメーターのIDを指定します。
Tweenを使用してAISACコントロール値を制御したい場合、 CriAtomExTweenConfig 構造体の parameter_type に CRIATOMEX_PARAMETER_TYPE_AISAC を設定し、 id.aisac_control_id に制御したいAISACコントロールIDを指定します。
/* ボリューム操作用にTweenを作成 */
tween_config.parameter_type = CRIATOMEX_PARAMETER_TYPE_BASIC;
tween_config.id.parameter_id = CRIATOMEX_PARAMETER_ID_VOLUME;
app_obj->volume_tween = criAtomExTween_Create(&tween_config, NULL, 0);
/* AISAC操作用にTweenを作成 */
tween_config.parameter_type = CRIATOMEX_PARAMETER_TYPE_AISAC;
tween_config.id.aisac_control_id = CRI_ATOMCUESHEET_AISACCONTROL_ANY;
app_obj->aisac_tween = criAtomExTween_Create(&tween_config, NULL, 0);
/* Tweenのアタッチ */
criAtomExPlayer_AttachTween(app_obj->player, app_obj->volume_tween);
criAtomExPlayer_AttachTween(app_obj->player, app_obj->aisac_tween);
void criAtomExPlayer_AttachTween(CriAtomExPlayerHn player, CriAtomExTweenHn tween)
プレーヤーにトゥイーンを取り付ける
@ CRIATOMEX_PARAMETER_ID_VOLUME
Definition: cri_le_atom_ex.h:4013
#define criAtomExTween_SetDefaultConfig(p_config)
トゥイーン作成用コンフィグ構造体にデフォルト値をセット
Definition: cri_le_atom_ex.h:1165
CriAtomExTweenHn criAtomExTween_Create(const CriAtomExTweenConfig *config, void *work, CriSint32 work_size)
トゥイーンの作成
@ CRIATOMEX_PARAMETER_TYPE_BASIC
基本パラメーター
Definition: cri_le_atom_ex.h:5030
@ CRIATOMEX_PARAMETER_TYPE_AISAC
AISACコントロール値
Definition: cri_le_atom_ex.h:5037
備考:
CRIATOMEX_PARAMETER_TYPE_BASIC 指定時に操作可能なパラメーターの一覧については、 リファレンスの CriAtomExParameterId を参照してください。
パラメーターの変更
criAtomExTween_MoveTo 関数に変更時間と目標値を設定することで、 Tween作成時に指定したパラメーターが指定された時間をかけて目標値に変更されます。
/* ボリュームの値を1000ミリ秒かけて0に変更するよう指示 */
criAtomExTween_MoveTo(app_obj->volume_tween, 1000, 0.0f);
/* AISACコントール値を3000ミリ秒かけて1に変更するよう指示 */
criAtomExTween_MoveTo(app_obj->aisac_tween, 3000, 1.0f);
void criAtomExTween_MoveTo(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value)
現在値から指定値に変化
備考:
criAtomExTween_MoveTo 関数を実行してパラメーターの変更を開始した後、 パラメーターが目標値に達する前に再度 criAtomExTween_MoveTo 関数を実行した場合、 その時点の値から新たな目標値への変化がなめらかに開始されます。
例えば、 criAtomExTween_MoveTo(tween, 1000, 1.0f); を実行した後、 パラメーター値が 0.5 に変化した時点で criAtomExTween_MoveTo(tween, 1000, 0.0f); を実行した場合、 1000ミリ秒をかけてパラメーター値が 0.5 から 0.0 へ徐々に変化します。