遊戲大作中的動畫技巧:抓大放小 合理取捨

2020-10-16 14:00:16

遊戲動畫由於受到遊戲系統的約束,開發時會比影視動畫增加一些額外的要求,本文記錄了老王開發遊戲動畫時遇到的一個小問題,在分析了Capcom的街霸V動畫後借鑑了其中的技巧。

一個反面範例

下圖是昨天為隆做的升龍拳動畫,是不是覺得哪裡有點彆扭?
在這裡插入圖片描述

仔細看看發現,角色起跳後重心發生了「飄移」,當前的角度看:下落時重心向左側「飄移」

從曲線圖上也能證明這一點

在這裡插入圖片描述

物體在空中,忽略水平外力時,應該是垂直自由落體運動或拋物運動。重心水平方向的運動應該和水平初速度相同,而不可能相反。這個動畫,即便有水平初速度,也一定是向右的,而重心下落的軌跡卻是向左偏移。這就是上面的動畫看起來彆扭的原因。

原因分析

這是一個遊戲的迴圈動畫,因此要求首幀和尾幀姿態(大致)相同,並且不能出現位置移動,否則就會出現「滑動」的問題。

但是仔細分析這個動畫的過程,如果「老老實實」做的話不出現位移很難做到。下面我們從下蹲姿勢開始逐關鍵幀看一下:

下蹲姿勢

下蹲時重心軸在兩腳之間

在這裡插入圖片描述

蓄力姿勢

蓄力時重心軸開始向右移動至角色的左腿

在這裡插入圖片描述
最高點

角色轉身180度騰空,這時的理論上重心應該由於慣性以及旋轉繼續向右移動。那麼他落地以後的位置肯定不應該是原來的位置了(必然向右偏移),由於我們的尾幀是從首幀複製過來的(重心在當前重心的左邊),所以下落時就必然發生了前面提到的向左側「飄移」。
在這裡插入圖片描述

於是問題來了,如何同時實現 「首尾幀無位移且重心不飄移」 這兩個要求呢?

注意:不能通過落地以後角色小碎步自己回到初始位置的方法。

Capcom的做法

下面咱們看看街霸V中,Capcom的做法,看看起跳前後的起跳前後的2幀

在這裡插入圖片描述

在這裡插入圖片描述迴圈播放一下這2幀
在這裡插入圖片描述
我們會發現,這2幀中角色的重心並沒有如我們分析的那樣繼續發生偏移,而是「偷偷」將支撐腳(左腳)的位置向左移動了一些。在現實世界這種情況是不合理的,但是由於這個變化發生在相鄰的2幀之間(0.03秒)並且隨後角色又快速上升(失去了參照物),所以視覺效果上,我們並沒有看到什麼不妥。

使用了這樣一個小的「Trick」,使得角色的重心沒有發生大的偏移,自然垂直上升再下落以後,也依然能迴歸到原位。

修改後的效果

在這裡插入圖片描述

小結

所謂 「抓大」,就是一要不能違背遊戲系統的需求,位移,幀數設定等等,二是角色重心軌跡以及關鍵姿態等醒目的效果要合理;所謂 「放小」,就是在時間很短不易察覺的中間畫上可以採取點 「矇混過關」 的小的技巧。遊戲動畫由於受到遊戲系統的約束,有時不如影視動畫那麼自由,因此必須 「合理取捨」 才能達到最好的效果。