Thumbnail image

讓巨大化角色充滿真實感的五大法則

Tue, Aug 30, 2022

透過巨型角色的體型差異創造出視覺上的衝擊,在現在的各種遊戲或是動漫作品當中都是很常見的呈現手法。不過若是用跟一般角色相同的製作方式來創造這些巨大化角色,卻有可能在無意間忽略掉應該注意的真實細節。在 2021 年的 CEDEC 第一天,曾經手過《汪達與巨像》以及《食人巨鷹 TRICO》的遊戲動畫師、現任 gen DESIGN 技術長田中政伸,透過自己過去的開發經驗,從基礎理論到實務上的應用,向大家分享了如何讓創作出來的巨大化角色充滿真實感的五大法則。

TRICO_頁面_001.png

TRICO_頁面_002.png

巨大角色動畫該怎麼做會比較好?

為了方便理解,田中先生先播放了一段巨像與一般人一起奔跑的影片。畫面中巨像輕巧的步伐使得整體感覺有點怪異,像是「感覺重量太輕」、「跳躍力有點過高」,以及「情報量太少」等問題。這些問題主要是因為沒有把該限制住的地方限制起來,這就是今天要談論的重點。

TRICO_頁面_007.png

關於遊戲動畫的特性

遊戲內的動畫製作與一般動畫有著幾點不太相同的地方:

  • 具有互動性 必須考慮被玩家操控或是 AI 運作時的各種狀態,例如巨像在移動中受到攻擊時該如何切換成受傷動作之類的問題。
  • 會從各式各樣的角度被觀察 玩家可能會透過各種視角的攝影機觀察遊戲內的角色,巨大化角色更是可能會填滿整個螢幕,所以得確保每個角度都是沒有空隙的。在這個很容易透過遊戲直播或是截圖分享作品內容的時代更是重要。
  • 必須做即時處理 在遊戲過程中隨時都可能發生變化,比方說在巨大角色緩慢踏出步伐時,依據落地點的狀態也許角色動作也會隨之被影響,為了要應付這些未來可能的變化,遊戲中每個處理都要壓在 1 個 frame 以內完成。

TRICO_頁面_011.png

遊戲特有的限制

遊戲的動畫製作受到許多限制,像是角色可以有什麼動作、移動速度的平衡,或是為了效能得在技術上做妥協之類。雖然過程很辛苦,但當看到角色可以透過手把操控的那一瞬間,會感覺到一切都值得了,這也是遊戲動畫製作比純 CG 行業有趣的地方吧。

將角色動畫做好才算完成角色設計

優秀的角色動畫可以讓玩家沉浸在整個世界觀裡面,就算角色建模的再細緻,失敗的角色動畫所造成的違和感還是能讓玩家感覺出戲。像是動作感覺過於輕快、過於鈍重,或是帶來的情報量不夠多,這些都是所謂的違和感。總而言之,當角色的「動作」跟「外觀」給人感覺並不一致時,看起來就會很奇怪。

物理學與生物構造才是動畫設計的根基

許多人在研究動畫製作相關技術時,很容易將重點放在角色呈現出的演技上。雖然這也是一個不錯的方向,但若是想要排除前述的違和感,我們其實得先學習正確的物理以及生物構造知識。所謂的演技是必須要建立在這兩者之上,有沒有將這基礎打好,所呈現出來的作品差異是非常巨大的。

TRICO_頁面_016.png

接下來,我們會從五個項目來分析動畫製作該注意的細節,分別是「質量」、「重力與重量」、「肌肉」、「動畫解析度」,以及「實裝設計」。

TRICO_頁面_021.png

質量

以動畫師的觀點來說,質量代表的是「維持當前速度的程度」,這邊以卡車與昆蟲來舉例,卡車是屬於質量比較大的物體,沒有那麼容易瞬間改變速度,所以無法做出急加速、急停,以及急轉彎等動作。與其相比,昆蟲就可以飛出相對靈巧的軌跡。

TRICO_頁面_025.png

質量的差異會呈現在運動軌跡的變化上。質量大的物體,運動軌跡會比較平滑;質量小的物體,運動軌跡會比較曲折。反過來說,透過急停、急加速這些動作,可以呈現出小質量物體該有的表現,像是小鳥、昆蟲,以及臉部表情的變化(臉部五官也具有質量所以理所當然可以套用此規則)。若是重型武器、卡車、巨大角色這種高質量物體則可以藉由平滑的運動曲線來展現該有的感覺。

TRICO_頁面_027.png

所以在《食人巨鷹 TRICO》的影片中,同樣是要停在地面,影片中小鳥可以很輕靈的降落,巨鷹則還得經過一段煞停才可以站穩。

TRICO_頁面_029.png

順便做個補充,物體的質量與最高速度之間並沒有相互關係。舉例來說,噴射客機的重量高達 350 頓,卻可以時速 890 公里的速度飛行。能對最高速度造成影響的因素是空氣抵抗力,質量差異並不會影響物體的最高速。

TRICO_頁面_032.png

重力與重量

據傳伽利略在比薩斜塔進行過一個關於自由落體的著名實驗,將兩個不同重量的球體從同一高度同時落下,結果這兩顆球會同時著地。重力加速度跟物體的質量無關,是一個固定值。所以當我們把一顆球以不同的角度及力道投出時,在拋物線頂端區的弧度都會是相同的。

TRICO_頁面_035.png

TRICO_頁面_043.png

重力也影響著動畫內容,包括跳躍的速度、摔倒的速度、走路的速度,甚至往椅子坐下的速度都跟重力有關聯。以坐下這個動作來說,正常情況下不管我們怎麼努力都不太可能以超越重力加速度的方式坐到椅子上。反過來,在緩緩地坐下時,肌肉必須出力抵抗落下的力道,此時的動作就會轉變成是以肌肉來做支撐的坐下動作。動畫內容其實受重力影響很深,所以動畫師必須培養對於重力加速度的感覺。

TRICO_頁面_044.png

再舉一個例子,我們觀察在跑步動作下,腰部振動的高度變化。會發現其實這就是一個受到重力加速度影響的拋物線,這個拋物線跟上面提到的丟球曲線頂端弧度大致是相同的。但當我們在製作更激烈的衝刺動作時,卻很容易無意間把腰部的變化加劇,使得重力加速增強,形成錯誤的曲線。

TRICO_頁面_045.png

TRICO_頁面_046.png

若我們有重力加速度不變的概念,當衝刺動作每一步的間隔變小時,在拋物線弧度不變的情形下,腰部的上下振動幅度應該是變小才對。

當實際在進行動畫製作時,很容易進入對於重力加速度迷失的狀態。這個時候我們可以添加依照重力落下的粒子特效來進行觀察,或是加入人類角色做對比,以貼近人類的視角來確認動作是否有異。

TRICO_頁面_047.png

接著是重量的部分。每個物體擁有的重量不同,以相同高度木球與鐵球的落下狀況為例子,木球反彈的高度略高,而鐵球可能會在地面撞擊出裂痕。依據重量的不同,物體的反彈力以及影響其他物體的能力也有所差異。

TRICO_頁面_048.png

TRICO_頁面_049.png

不同重量的物體,所呈現出的動畫表現也不一樣。那麼身高高達 27 公尺的巨像該如何測定他的重量呢?我們用體型差不多的恐龍來做比較,可以抓出巨像的重量大概會在 40 公噸左右。以單腳的重量約占全體的 15% 來計算,得到巨像的腳部重量大概會是 6 公噸,約等同於 6 台普通小客車的重量。

這邊的重量計算不用太精確,因為我們只是要呈現物體大致該有的重量感。

TRICO_頁面_051.png

TRICO_頁面_052.png

如果想要尋找一些製作巨大生物角色的參考靈感,很推薦去看一些恐龍化石之類的展覽,從展覽中可以親自感受到這種體型差異帶來的震撼,對於動畫製作來說是無可取代的體驗。或是也可以從類型相似的生物去做比較,例如巨鷹 Trico 的動作我們就可以從貓咪以及老虎之間的動作差異來做觀察,再將這中間的差異放大到 Trico 身上。

TRICO_頁面_053.png

TRICO_頁面_054.png

當生物巨大化之後,本體的質量、骨骼的支撐力,以及整體肌力也都會提升,但提昇的比例各自是不同的。質量的成長是以整體體積去做縮放,但肌肉以及骨骼的強度卻是看切面的面積去做計算的。

TRICO_頁面_055.png

舉例來說,當一個角色的身高被放大 3 倍的話,他的質量會是 3 的 3 次方也就是 27 倍。但他的骨骼與肌肉強度卻只有原來的 3 x 3 也就是 9 倍。所以照這個比例看來,當角色巨大化程度越高,肌肉與骨架應該是越難支撐起身體才對。

TRICO_頁面_056.png

在理解身高與重量間的關係後,再回頭檢視前面製作的巨像走路動作,會發現雖然整體動作曲線運作的很流暢,但是卻有點感受不到身體該有的重量感。應該有 6 公噸重的腳部,移動起來卻讓人覺得毫不費力。所以我們可以再修正一下,讓巨像在抬腳的時候感覺更加運用到全身的肌肉去動作,並且把腳步抬離地面的時間給縮短,讓整體動作看起來更加費力。

TRICO_頁面_058.png

肌肉

肌肉要怎麼呈現?身體沒有用力的部位,看起來會比較柔軟放鬆,身體有在施力的部位則會看起來較為僵硬,這是很簡單的肌肉施力呈現方式。

TRICO_頁面_061.png

人跟其他動物都一樣,會以最省力的方式來執行所有動作。比方說,當我們要拿取放在桌上的一件物品時,我們會很直覺地根據手腕的質量及障礙物的位置以最適合的速度跟軌跡來施力。想像一下,同樣的事情改讓機器人來做,應該就沒有辦法像我們一樣以這麼漂亮的動作執行。

TRICO_頁面_063.png

我們身體各部位的動作,都會在無意識間按照質量的差異,以不同的加速度來運作。頭部的質量比腕部重,所以它的加減速都比腕部緩慢。這種重視效率的施力方式是每個生物的天性,動畫師必須要能夠掌握住這些特質,經常思考每一個腳步動作是否會太靠前或靠後?什麼角度才是最合適的?這些能力可以透過平時多觀察動物的動作來慢慢養成。

TRICO_頁面_065.png

TRICO_頁面_067.png

肌肉的施力也會造成運動曲線的變化。例如當我們從緩慢步行轉變為快速跑步時,身體的肌肉會因為出力顯得比較僵硬,此時的運動曲線變化幅度也較大。反過來思考的話,當運動曲線比較激烈時,我們要讓角色的動作看起來比較用力;當運動曲線比較和緩時,我們要讓角色的動作看起來比較放鬆。這樣才會讓動作看起來比較自然。

TRICO_頁面_068.png

再補充一點,在動畫技法中有個叫做「残し(Follow Through)」的法則,這個技法會刻意延緩手腕或是尾巴末端的速度,使其跟隨著前半部的運動軌跡擺動。要注意的是這個技法如果用過頭,會讓肌肉看起來像是處在脫力的狀態。所以若是在運動曲線激烈的情況下,可能就需要拿捏一下這個技法的使用程度。

TRICO_頁面_069.png

動畫解析度

這邊的動畫解析度是講者自己使用的詞彙,指的其實就是動畫中情報量的多寡。舉例來說,大家可能看過像是水球炸開或是昆蟲起飛瞬間這種用慢動作鏡頭拍攝的影片,可以清楚的感受到當中許多動態上的細節,這就是一個情報量豐富的片段。

TRICO_頁面_075.png

TRICO_頁面_074.png

以巨像走路的動作來說,我們可以透過幾個地方來增加情報量。像是在行走中腳部踩踏到地面時的震動,或是跳躍動作前蹬地的瞬間,可以加強這些衝擊力傳達到身體上的效果。

TRICO_頁面_077.png

有些震動效果實際發生時間可能非常短,短到低於一個 frame 的時間。像這種狀況我們可以稍微增加特效的長度,雖然與真實情況不符,但有時候刻意放大效果的作法,反而可以讓玩家感受到真實性。但還是要注意拿捏使用程度,使用過頭仍然會造成反效果。

TRICO_頁面_078.png

TRICO_頁面_080.png

實裝設計

最後要來談談,要把製作出來的巨大生物角色實際放到遊戲內時會遇到的問題。首先是「沒有辦法突然改變姿勢」以及「就算是些微的變化,從玩家的角度看來也很明顯」這兩點。特別是受到傷害時的動作演出是最困難、最需要調整的部分。

TRICO_頁面_087.png

由於遊戲中的巨大生物角色,在任何時刻以及各種姿勢下都有可能發生被攻擊的狀況。假設在伸出右腳前踏的狀況下受到傷害,此時的右腳應該要繼續往前踩還是要縮腿?在各種場面以及姿勢下需要調整的內容都不盡相同,要一個一個去調整動作是不太可能的任務。

為此,就只能透過疊加型動畫(Additive Animation)來處理受傷時的動態。透過計算所有關節的位置數據差,來生成要疊上去的動畫層。

TRICO_頁面_089.png

TRICO_頁面_090.png

TRICO_頁面_092.png

但疊加型動畫也是有許多需要修正的地方,仔細看處理過後的受傷動畫,原本踩在地面的腳應該是不會移動的。可是當受到攻擊時地面的腳會產生些許錯位。原本在一般尺寸的角色上這個差異是輕微到可以忽略的,但放到巨大生物角色上這個差異就會很明顯必須修正。

TRICO_頁面_094.png

遊戲動畫會遇到各式各樣的問題要處理,為此必須思考各種解決方案。以《食人巨鷹 TRICO》來說,在腿部的地方套用了反向動力運算(Inverse Kinematics),當腳部踩地時會將腳部固定,並且會修正因腳部固定帶來的重心變化影響等等。這些還只是在傷害動作上要處理的內容而已。

TRICO_頁面_095.png

要做出好的遊戲動畫,程式人員能提供的幫助其實是有限的。比如說你要程式人員去發現重心的偏移是很困難的,遊戲動畫還是得藉由動畫師本身的經驗及知識來提升品質。如果動畫人員在原本自身使用的工具以外,還能多了解一些遊戲引擎的運作,知道角色動畫在引擎內是怎麼處理的話,最後所做出來的成品就會截然不同。

TRICO_頁面_097.png

以上就是這次演講中所介紹的五大法則,演講的最後也播放了透過這些修改之後巨像的走路動作對比。希望這場分享可以帶給大家一些收穫。

TRICO_頁面_106.png

TRICO_頁面_100.png

TRICO_頁面_101.png

TRICO_頁面_102.png

TRICO_頁面_103.png

TRICO_頁面_104.png

TRICO_頁面_105.png

TRICO_頁面_107.png