Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability

今天检索Opsive的时候,无意间看到有人把我的文章转到腾讯的文章版面去了,虽然没有注明原文地址,不过看到自己的文章被转载,还是有点小激动的,于是决定今天在写一篇:)

为了文章观感,图片就不加水印了,希望转载的人自觉填上原文地址,WangHaoDiablo原创文章:)

实战:使用UCC做一个跳舞的逻辑

  1. 需求:玩家按下逗号,开始跳舞,再按下一次逗号,停止跳舞。

  2. 创建一个类

 

 

using UnityEngine;
using Opsive.UltimateCharacterController.Character.Abilities;

public class DancingAbility : Ability
{
    
}

 

空类即可,不需要任何代码,如果判定,当玩家试图移动时停止跳舞,则需要填写代码,暂时,只完成上面需求就好,这个主要是用来,理解UCC复杂的动系统,是如何运作的,知道这个原理,我就可以很轻易的去搞道具,武器什么的了。

  1. 填写Inspector

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第1张图片

  1. 我吧Dancing Ability配置到优先级比较高的位置。

  2. 触发类型我设置为按下一个按钮

  3. 停止类型我设置为再次按下一个按钮

  4. 输入行为我设置为Action。

  5. 最为重要的,Ability Index 要设置为 102,这个值不可以和其他值重合。

  1. 获取免费动画

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第2张图片

Maxamo上面有很多免费动画,大多只是Humanoid动画,非常便利

我选了这个跳舞的动画

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第3张图片

  1. 编辑Animator

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第4张图片

先看看UCC的分层规则。

它使用了多个Avatar Mask,Avatar Mask是Unity用来做动作融合的遮罩功能。这里比较常用的是上下身的区分,比如你想要一个移动射击功能,完全可以把射击瞄准的上半身,和全局播放上半身的移动动作合成一个移动射击。上半身的瞄准动作覆盖下半身的移动动作即可。

然后跳舞是一个全身动作。

我们需要在Full Body Layer增加一个子状态机。

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第5张图片

进入到Dancing子状态

首先将Dancing动画放进去,并按下图连线,在这之前记得把他换恒Humanoid,并设置好avatar,这里就不赘述了。

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第6张图片

设置AnyState 到Dancing State的Transition

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第7张图片

两个重要的条件

1-AbilityIndex 等于 102,我们刚刚填到Inspector里面的值

2-一个Trigger AbilityChange。这个是必填项。不用多问了。

结束跳舞,要配置Dancing到Exit的transition

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第8张图片

这里,要控制AbilityIndex 不等于102。当Ability结束的时候

  1. 添加Input配置文件

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第9张图片

这样按下逗号的时候,就会触发Dance了。

 

最终效果:

Opsive Ultimate Character Controller 使用经验(一)添加一个跳舞的Ability_第10张图片

按下逗号之后,这个傻不拉几的假人就开始跳舞了。

你可能感兴趣的:(Unity,Opsive)