Unity-Live2d(多个动作的同时播放,动作的优先级播放)

Unity-Live2d

概述:这是我学习Unity中Live2d的相关操作的一个笔记,欢迎各位同好和大牛的指点。(参考siki学院出的视频学的)
多个动作的同时播放

  • 有关这个多个动作同时播放的操作,首先我们需要知道单个动作如何播放,这里参考上一篇笔记( https://blog.csdn.net/weixin_44579240/article/details/92619449
  • 然后是多个动作同时播放的限定条件,比如说动作A的播放涉及到的人物的身体和头,但是没有涉及到其手臂和嘴,那么我们就可以再加上涉及嘴的动作B和涉及手臂的动作C,如果多个动作同时涉及到了一个组件,那么它的播放会遵循最后覆盖的动作参数来播放(也许~会达到抽搐的效果,让人物螺旋升天【手动滑稽】);
  • 接着来说说这个代码要怎么码,如果我们要同时播放多个动作的话,我们就需要定义多个动作管理,代码如下
private MotionQueueManager motionQueueManager2;      //代码最前面的定义
motionQueueManager2 = new MotionQueueManager();     // start方法里的实例化

然后还有给他绑定对应的动作和给动作设置属性,这里就不详细说了,参照上一篇笔记就好

  • 接着就是再update方法里进行动作播放了,当在多个动作的播放有重叠的组件时,动作的播放似乎是遵从最后更新的一个动作来播放的,写入播放代码也就是在update中写入多个动作播放的代码,这里参照上一篇笔记。

动作的优先级播放

  • 这里来介绍一个新的操作,就是动作的优先级播放,给与动作一定优先级,优先播放优先级大的动作,而如果一个动作播放完后,我们让人物回到一个待机动作状态。

  • 这里需要一个新的类————L2DMotionManager,其实这就是在之前的动作管理类之上的一个封装体,加入了很多比较方便的方法功能,比如动作的优先级管理。使用这个的话,就不需要之前用的动作管理了,另外,这个新的类需要引用一个新的命名空间————live2d.framework;

  • 然后来说说这个动作播放的优先级设置标准(仅供参考)
    1.没有动作的状态优先级为0,也就是最低,
    2.待机的动作状态优先级为1;
    3.其他的动作状态优先级为2;
    4.强制类型动作状态优先级为3;

  • 接着来说一下基础待机状态的设置,这里需要用到L2DMotionManager里的一个方法,isFinished();这个方法是一个判断当前动作是否播放完的方法,若其返回true,则表示当前动作播放完毕,也就是说我们可以使用它来作为if的判断条件,让判断为true时执行待机动作。

  • 然是动作播放,这里我们需要封装一个新的方法来播放动作,
    这里需要俩个参数,一个是动作的索引(动作数组的下标),一个是该动作的优先级,然后在方法体里写入一个if,其条件为比较当前播放动画和想要播放的动画的优先级,然后播放优先级高的动画,需要用到一个新的方法,来读取到当前播放的动作的优先级,l2DMotionManager.gercurentPriority(),范例代码如下

if(l2DMotionManager.isFinished())
//写入update中来实时检索是否无动作
{
	StartMotion(0,1);                  //这里调用了下面封装的新方法
}
private void StartMotion(int motionIndex,int priority)
//新封装的动作播放方法
{
	if(l2DMotionManager.getCurrentPriority()>= priority)
	{
	 return;
	}
	l2DMotionManager.startMotion(motions[motionIndex]);
}
  • 然后不要忘记在update中实时更新模型参数:l2DMotionManager.updateParam(live2DModel);
  • 以及按照自己的意愿加入一些按键触发动作的改变。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值