第一步踏出去要有個性!

人物第一步踏出去的動作, 是給玩家的第一印象, 要令玩家覺得人物有自己的性格, 這部分要處理得很仔細(廢話)

在程序上的難度

如何界定當下的移動需要播放有個性的動畫 – 步調
目前想到的方法, 如果人物已經靜止.

  1. 決定中斷狀態 Idle
  2. 取下一個輸入方向, 作角度運算(與模型前方)
  3. 把角度資料 Mapping 到需要 crossfade 的動畫state.缺點, 是必須等待玩家停止一下方向輸入 >= 1 frame

另一個方式是不用等待 Idle

  1. 紀錄玩家的移動 vector, 用 Vector3.Lerp 作一個特定的時間緩衝 e.g. 3sec
  2. 設定一個特殊角度值, 如果玩家當下的輸入與 (1) 的角度超出時以該角度進行判斷
  3. 播放相關的動畫.

缺點, 是角度有偏差

Animator 設定

由於這層Graph 的接入點由程序直接呼叫 CrossFade() API, 所以無需任何連接線. 只需要決定如何 Blend out 即可.
圖中有多重 Blending 的原因是考慮到位移有機會在世界中 “踏空”
所以當人物失足時需要立即中止及回到 Air state.
話說這顆衛星佈陣式的 blending transition 要設定真的很累人.

碎碎唸

當初這部分卡了幾天, 一直糾結在如何用 Animator 的 Blending 來達成這效果, 結果其實只需要用程序來解決 CrossFade() 即可.
算是提醒自己有點殭化的思維, 別硬是鑽研 Animator 的 Editor UI 自找煩惱.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料