幀同步中使技能動畫表現平滑的方案

情景

一個技能會以旋轉的形式掃過一個區域,技能持續時間內,掃過的區域的敵人受到技能傷害

方案1

  • 服務器每幀給出命令設置技能表現的旋轉角度,讓客戶端技能的表現物體進行旋轉或者移動

缺點:

假如服務器是30幀或者更低,那麼動畫會出現明顯的卡頓現象,但是卻不是卡頓,只是幀率不夠
如果幀率不穩定,會出現真正的卡頓

優點:

簡單好做

方案2

  • 服務器只在技能釋放時給出旋轉的起始角度和動畫信息,後續的動畫由客戶端自行播放

案例:

初始時設置一個起始值initVal,變化速度speed,目標值targetVal
在本地更新函數中改變數據
onLocalUpdate(deltaTime)
curVal += (deltaTime * speed)
if curVal > targetVal
curVal = targetVal
setAnimationWith(currentVal)

缺點:

  • 工作量大

優點:

  • 動畫和技能表現平滑,視覺效果好
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章