[程式] 程序性動畫實作雜談

看板GameDesign (遊戲設計)作者 (DK)時間3年前 (2021/09/10 19:18), 3年前編輯推噓5(500)
留言5則, 5人參與, 3年前最新討論串1/1
程序性動畫(Procedural Animation),廣義來說只要有用到程式控制而不是單純播放動 畫的情境應該都可以稱為程序性動畫。 而這篇主要要提的是跟角色移動有關的程序性動畫。 例如說最常見的就是所謂的 IK(Inverse Kinematic),會拿來呈現: -根據地形調整出正確的腳落點 -固定大部分動畫的同時,調整局部區域 -線材的模擬 我想要利用的是完全只使用程式控制的動畫表現,對我來說程序性動畫展現了幾種價值: -根據物理性質模擬的高品質動畫 -根據位置資訊自動化表現 -可擴充性廣 雖然長年熟練動畫十二法則的動畫師肯定能做出更有魅力的動畫,但是根據物理性質產生 的高品質動畫實作時間短暫且品質優異;自動根據位置調整的動畫,代表說遊戲系統的判 定不會反過來受到動畫系統的限制;而可擴充性廣主要想提的情境,大概就是能用多種參 數調整物理性質,或更直接的:做了一隻腳後,要做一百隻也沒問題。 https://twitter.com/RandomDevDK/status/1436186119666692124?s=20 ↑使用了四足配置、拖行(上半身被腳拖著走)動態傾斜 完全沒有使用任何預先製作的動畫 另一方面,我正在製作的遊戲,在視覺設計上非常簡化。偏真實的素材做出稍微不符合真 實的動作結果就會很礙眼,但是如果視覺上很簡化的話,就可以相對無視這點。 但這個主題畢竟沒有真的很泛用的方式討論,所以在這邊針對所有我嘗試實作的程序性動 畫都做一些流水帳式的說明,提供點參考。 多足步行 多足步行設計大概是我最早看到,也最讓我感到震撼的程序性動畫類型。最震撼的地方就 是製作的難度有多低。 基本上就是以角色為中心,設定幾個方向做為腳延伸出去的方向後往地板打射線找到落點 。每當腳踩的位置遠離判定位置超過指定距離時,就讓那隻腳移動去指定位置。 其他可以提的要點大概有: -製造隨機錯位的情境(例如純粹的初始位置隨機),避免動起來的結果太固定 -根據角色位移速度改變移動速度,就可以避免敵人移動速度很慢時會看起來很奇怪 -移動到目標地點的速度在水平跟垂直方向上有一些變化,例如說舉起很慢但是放下 雙足 雙足跟多足設計上需要的方針比較不太一樣。三足以上的系統視覺上比較不容易感受到重 心不穩的問題,而且腳的平均分散也代表說腳隨時都在前導狀態。 由於這套系統是根據位移變化去移動,可以說是導因為果的狀態(本來應該是先移動腳再 移動重心,程序性動畫變成先移動),所以判斷腳落點的時候必須往移動方向做點預判看 起來才不會像是拖著腳移動,但是現實世界的雙足生物移動時,結束移動的同時腳必然都 會收在目標要移動到的位置。也就變成我在程序性雙足實作上很容易做成多跨出一步要再 收回的狀態,並不是做得很好。 這部分還有待再研究清楚,但當然可以藉由設定目標不是生物來繞過問題 XD 不過如果總 有一天可以成功研究出高品質的程序性雙足,就代表說可以輕易處理出低成本的大量路人 角色。 旋翼 根據移動速度改變旋翼旋轉的速度,根據旋轉速度來改變對應旋轉方向的旋翼轉速。 可以說是最簡單的形式。 車輛 基本上跟上面的旋翼一樣,移動速度拿來轉動輪胎。如果是兩輪或者廣義兩輪(履帶)的 坦克,可以讓角色在原地旋轉時展現出一輪順轉、一輪逆轉。 如果是超過兩輪的車輛則必須要考慮前導輪轉軸的問題,前軸導引方向的輪子(無論是單 輪或雙輪)要隨著轉彎而改變轉軸角度。 前傾(Lead)與拖行(Drag) 這部分可以有兩種實作方向:位移與旋轉。 位移的部分,可以讓角色的角度相對於移動方向地前傾或後仰,呈現出主動前進跟被腳拖 著走的感受。 旋轉的部分則可以考慮區分角色上下部份。例如說一般生物都會先轉頭再往目標方向前進 ,所以可以讓頭轉到目標位置的速度快、而下半身轉到的速度比較慢;反之則可能可以營 造出愚笨的行動感,例如說史萊姆式的生物。 第二點我沒有實作所以這裡借 Jakob Wahlberg 兩個都有實作的示範: https://twitter.com/Jakob_Wahlberg/status/1399100594288218112?s=20 雜項討論點 首先最值得一提的就是程序性動畫,畢竟各個分項都是對一種物理性質、情境的模擬,也 因此彼此之間都可以再做排列組合。 最簡單的就是前面的前傾拖行可以配合前面任何一個行動動畫,又可以組合出完全不同的 花樣。 整體來說這類型的動畫如果實作起來,除了單純可以提供一定水準的高品質動畫以外,還 可以提供很多自訂版本擴充多樣性。 而至少對於人力極少甚至是一人團隊來說,這樣做既可以提供足夠的水準的動畫又可以不 用花太多勞力。 流水帳大概寫到這邊,提供參考。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.78.133 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1631272727.A.EEC.html

09/10 22:32, 3年前 , 1F
未看先推
09/10 22:32, 1F

09/11 06:11, 3年前 , 2F
謝分享。程序性與動畫師應該是相輔相成
09/11 06:11, 2F
沒錯,迪士尼現在也花很多時間在準備可以再由動畫師微調的工具。 最理想的情境就應該是動畫師去實作程序性動畫,能夠更加自動化呈現原本要有動畫師專 業知識才能作出的表現,就能正式把程序性動畫推到更實用的位置,也允許動畫師更進一 步思考比現在動畫知識範疇更廣的表現能力。

09/11 12:05, 3年前 , 3F
09/11 12:05, 3F
※ 編輯: dklassic (111.240.180.175 臺灣), 09/11/2021 12:22:28

09/12 11:43, 3年前 , 4F
09/12 11:43, 4F

09/12 13:18, 3年前 , 5F
09/12 13:18, 5F
文章代碼(AID): #1XEpyNxi (GameDesign)
文章代碼(AID): #1XEpyNxi (GameDesign)