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索引。
  • StopAllMotions
    • bForce
      如果指定true,则将强制停止而不应用淡变。
      如果指定false,则将通过应用淡变的方法进行停止。

关于更新顺序

CubismMotionComponent负责更新动态,但更新是在更新CubismParameterStoreComponent之后应用的。
这是为了确保CubismMotionComponent所做的更新不会影响下一帧。
更新CubismMotionComponent后调用CubismParameterStoreComponent::LoadParameters()可能会导致意外动作。

请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。