Motion(UE)
最終更新: 2024年9月5日
此页面包含有关Alpha版的描述。
概述
通过使用Motion,您可以从脚本播放动画,而无需使用Unreal Engine的Animation蓝图构建状态机。
动态功能的设置文件以.motion3.json格式输出。
有关动态设置方法等的详细信息,请浏览此处。如要使用 Motion,您需要CubismFadeController组件和Unreal Engine的Animation蓝图。
如果在Animator组件中设置AnimatorController,则不会播放Motion,而是播放AnimatorController的动画。
请参考 此处 查看相关教程文章。
如何处理组件
可以通过将CubismMotionComponent追加到CubismModel Actor的子组件来使用Cubism SDK for Unreal Engine中的Motion。
如果在.model3.json中设置了.motion3.json的路径,载入时CubismMotionComponent会自动作为子组件追加到CubismModel Actor中,所以用户端无需设置。
动态的播放方法
载入模型时,.motion3.json将转变为Unreal Editor的.uasset并追加到CubismMotionComponent的Jsons数组中。
在Unreal Editor中,您可以通过将Jsons中注册的要播放的动态的索引指定为Index来应用动态。如果Index超出数组索引范围,则不应用。
动态的注册顺序可以在Editor上任意变更,尽管通常没有必要,但用户也可以任意追加或删除动态。
要控制动态的播放/停止,请使用CubismMotionComponent中提供的以下函数。
UFUNCTION(BlueprintCallable, Category = "Live2D Cubism") void PlayMotion(const int32 InIndex, const float OffsetTime=0.0f, const ECubismMotionPriority Priority=ECubismMotionPriority::Normal); UFUNCTION(BlueprintCallable, Category = "Live2D Cubism") void StopAllMotions(const bool bForce = false);
- PlayMotion
- InIndex
指定要播放的动态的Jsons索引。
- InIndex
- StopAllMotions
- bForce
如果指定true,则将强制停止而不应用淡变。
如果指定false,则将通过应用淡变的方法进行停止。
- bForce
关于更新顺序
CubismMotionComponent负责更新动态,但更新是在更新CubismParameterStoreComponent之后应用的。
这是为了确保CubismMotionComponent所做的更新不会影响下一帧。
更新CubismMotionComponent后调用CubismParameterStoreComponent::LoadParameters()可能会导致意外动作。