live2dmesh渲染优先级_Unity Live2D SDK的使用方法(二)——播放动画

本文详细介绍了在Unity中如何处理和管理Live2D动作动画资源。首先,将.mtn文件导入并改后缀为.bytes,然后在脚本中声明并实例化数组来存储动画资源。接着,通过两种不同的方法设置动画管理器,控制动画的播放和优先级。此外,还讲解了如何设置动画属性,如淡入淡出时间和循环播放等。
摘要由CSDN通过智能技术生成

播放动作动画

Step1 认识动作动画资源

保存模型动作信息的文件的后缀名为.mtn。是motion(动作)的缩写。

将.mtn文件全都导入到工程文件中。

然后如同之前加载贴图资源的操作一样,将所有的.mtn文件修改后缀名改为.bytes。

然后在脚本中获取这些资源。

暴露一个数组用于存储所有的资源

public TextAsset[] motionFiles;

在Unity中,将所有的资源拖入motionFiles下即可。

Step2 载入动画资源

将.mtn文件全都导入到工程文件中。

然后如同之前加载贴图资源的操作一样,将所有的.mtn文件修改后缀名改为.bytes。

然后在脚本中申明一个用于存储所有动画资源的数组变量。

private Live2DMotion[] motions;

在Start方法中将其实例化出来,并加载资源。

motions = new Live2DMotion[motionFiles.Length];

for (int i = 0; i < motions.Length; i++)

{

motions[i] = Live2DMotion.loadMotion(motionFiles[i].bytes);

}

Step3 设置动画管理器

3.1 第一种方法

声明一个动画管理器。

private MotionQueueManager motionQueueManager;

将其实例化。

motionQueueManager = new MotionQueueManager();

然后就可以控制任意动画开始播放。

motionQueueManager.startMotion(motions[0]);

在Update方法中,必须要去更新模型,才能看见效果

motionQueueManager.updateParam(live2DModel);

3.2 第二种方法

同样也是声明一个管理器,但是是另一个管理器。

private L2DMotionManager l2DMotionManager;

该管理器所控制的动画相较于之前一种,还可以控制动画播放的优先级。

同样,将其实例化出来。

l2DMotionManager = new L2DMotionManager();

然后我们可以创建一个私有方法,用于判定动画的优先级。

private void StartMotion(int motionIndex,int priority)

{

//判定想要播放的动画的优先级是否大于正在播放的动画的优先级

if (l2DMotionManager.getCurrentPriority() >= priority)

{

return;

}

l2DMotionManager.startMotion(motions[motionIndex]);

}

之后,调用该方法,并在调用时写入该动画的优先级,即可进行播放。

同样,也需要在Update方法中更新模型。

l2DMotionManager.updateParam(live2DModel);

Step4 动画属性的设置

motions[0].setLoopFadeIn(false);//重复播放时是否淡入,false-不淡入

motions[0].setFadeOut(1000);//设置淡出时间,参数单位为ms,默认为1000

motions[0].setFadeIn(1000);//设置淡入时间,参数单位为ms,默认为1000

motions[0].setLoop(true);//设置动画是否循环播放

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值