CRI ADX  Last Updated: 2024-07-17 10:48 p
Tween

示例目录

/cri/pc/samples/criatomex/tween


示例描述

使用Tween在指定时间更改Player的音量、AISAC控制值的示例。
关于Tween
Tween是用于将“特定参数”在“指定时间”“更改为目的值”的模块。
通过为AtomExPlayer附加(安装)“Tween”,可以在指定时间内逐渐更改音量和AISAC控制值等参数。
Tween的设置
在创建Tween句柄时指定用Tween操作的参数。
指定参数大致可分为以下两种模式。
  • CRIATOMEX_PARAMETER_TYPE_BASIC
  • CRIATOMEX_PARAMETER_TYPE_AISAC
要控制音量、Pan、音高等常规参数,请在::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)
Attach a Tween to a player
@ CRIATOMEX_PARAMETER_ID_VOLUME
Definition: cri_le_atom_ex.h:4007
#define criAtomExTween_SetDefaultConfig(p_config)
Assign the default values to the configuration structure used to create a Tween
Definition: cri_le_atom_ex.h:1162
CriAtomExTweenHn criAtomExTween_Create(const CriAtomExTweenConfig *config, void *work, CriSint32 work_size)
Create Tween
@ CRIATOMEX_PARAMETER_TYPE_BASIC
Basic parameters
Definition: cri_le_atom_ex.h:5024
@ CRIATOMEX_PARAMETER_TYPE_AISAC
AISAC control value
Definition: cri_le_atom_ex.h:5031
备注:
关于指定::CRIATOMEX_PARAMETER_TYPE_BASIC时可以操作的参数列表, 请参照::CriAtomExParameterId 。
更改参数
通过为::criAtomExTween_MoveTo函数设置更改时间和目标值, 可以在指定时间内将创建Tween时指定的参数更改为目标值。
/* 指示在1000毫秒内将音量值更改为0 */
criAtomExTween_MoveTo(app_obj->volume_tween, 1000, 0.0f);
/* 指示在3000毫秒内将AISAC控制器值更改为1 */
criAtomExTween_MoveTo(app_obj->aisac_tween, 3000, 1.0f);
void criAtomExTween_MoveTo(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value)
Smoothly change the current value of the parameter to the specified value
备注:
执行::criAtomExTween_MoveTo函数并开始更改参数后, 如果在参数达到目标值之前再次执行::criAtomExTween_MoveTo函数, 将从当时的值朝着新的目标值开始缓慢变化。
例如在执行criAtomExTween_MoveTo(tween, 1000, 1.0f); 后, 如果在参数值变化到0.5时执行criAtomExTween_MoveTo(tween, 1000, 0.0f);, 则参数值将在1000毫秒内从0.5逐渐变为0.0。


示例使用的数据中AtomCraft项目的目录

/cri/tools/criatomex/examples/tutorial_data_for_runtime