Opsive Ultimate Character Controller 使用經驗(一)添加一個跳舞的Ability

今天檢錯Opsive的時候,無意間看到有人把我的文章轉到騰訊的文章版面去了,雖然沒有註明原文地址,不過看到自己的文章被轉載,還是有點小激動的,於是決定今天在寫一篇:)

爲了文章觀感,圖片就不加水印了,希望轉載的人自覺填上原文地址,WangHaoDiablo原創文章:)

實戰:使用UCC做一個跳舞的邏輯

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

  2. 創建一個類

 

 

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

public class DancingAbility : Ability
{
    
}

 

空類即可,不需要任何代碼,如果判定,當玩家試圖移動時停止跳舞,則需要填寫代碼,暫時,只完成上面需求就好,這個主要是用來,理解UCC複雜的動系統,是如何運作的,知道這個原理,我就可以很輕易的去搞道具,武器什麼的了。

  1. 填寫Inspector

  1. 我吧Dancing Ability配置到優先級比較高的位置。

  2. 觸發類型我設置爲按下一個按鈕

  3. 停止類型我設置爲再次按下一個按鈕

  4. 輸入行爲我設置爲Action。

  5. 最爲重要的,Ability Index 要設置爲 102,這個值不可以和其他值重合。

  1. 獲取免費動畫

Maxamo上面有很多免費動畫,大多隻是Humanoid動畫,非常便利

我選了這個跳舞的動畫

  1. 編輯Animator

先看看UCC的分層規則。

它使用了多個Avatar Mask,Avatar Mask是Unity用來做動作融合的遮罩功能。這裏比較常用的是上下身的區分,比如你想要一個移動射擊功能,完全可以把射擊瞄準的上半身,和全局播放上半身的移動動作合成一個移動射擊。上半身的瞄準動作覆蓋下半身的移動動作即可。

然後跳舞是一個全身動作。

我們需要在Full Body Layer增加一個子狀態機。

進入到Dancing子狀態

首先將Dancing動畫放進去,並按下圖連線,在這之前記得把他換恆Humanoid,並設置好avatar,這裏就不贅述了。

設置AnyState 到Dancing State的Transition

兩個重要的條件

1-AbilityIndex 等於 102,我們剛剛填到Inspector裏面的值

2-一個Trigger AbilityChange。這個是必填項。不用多問了。

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

這裏,要控制AbilityIndex 不等於102。當Ability結束的時候

  1. 添加Input配置文件

這樣按下逗號的時候,就會觸發Dance了。

 

最終效果:

按下逗號之後,這個傻不拉幾的假人就開始跳舞了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章