話說,自從上周被Reddit上的Houdini模擬給驚艷到,最近幾天小編就一直混跡在Reddit各大子版塊,想著還能不能挖到別的“寶貝”~
不得不說,Reddit不愧是覆蓋全球的大型興趣社交論壇,優質帖子一翻一大堆,一看一個不吱聲,高手云集,堪比華山論劍現場。
小編隨手一撈,就“撿”到了一位大神的成果分享帖。游戲開發者Waabs,幾天前在自己的Reddit主頁上,展示了一個游戲開發的實際案例:如何僅用一個月的時間,就讓最初的低配版方塊蜘蛛,搖身一變進化成動作自然的風格化蜥蜴。
完美詮釋了游戲開發,從“辣眼睛”到“猴賽雷”的蛻變過程。
這大概就是程序化動畫的神奇之處,盡管前期的設置很燒腦,但一旦成功,就能批量生成逼真動作;只要新模型的骨骼結構相似,系統就能自動匹配,原先設定的物理參數可批量集成,只需要進行少量的細微調整。
據說這只小蜥蜴,是Waabs正在開發的益智游戲中的一個角色,后續應該還會有更多的開發秘辛。
如果寶子們好奇Waabs是如何玩轉程序化動畫的,那接下來登場的這個蜘蛛行走循環動畫的教程,或許可以為大家解惑。雖然教程的主角不是蜥蜴,但萬變不離其宗;雖然教程基于UE5,但核心概念同樣適用于Unity和任何自定義引擎。
程序化動畫與傳統關鍵幀動畫的區別在于,它是通過算法和變量驅動動畫,而非手動逐幀制作;可以動態適應如臺階高度這樣的環境變化和步幅長度等參數調整。這也意味著,一套系統可以應對多種場景,而無需為每種情況單獨制作動畫。
由于視頻過長,小編這里就給大家簡單概述下過程,感興趣的小伙伴可以慢慢研究視頻。
PART 01
ENJOY LIFE
基礎骨骼綁定
在UE5中創建一個Control Rig藍圖,并將其設置為蜘蛛骨架網格的父級綁定,這樣就可以在不直接修改原始骨架網格的情況下控制和調整動畫。
之后將蜘蛛模型的骨架導入到Control Rig中,確保可以看到所有骨骼并在圖表中進行操作;使用球體追蹤技術來確定盆骨與地面的最佳接觸點,讓蜘蛛看起來像是自然地貼在地面上。
開啟調試模式,繪制追蹤線( Raycast ),利用可視化工具來確認球體追蹤路徑是否正確。
PART 02
ENJOY LIFE
逆向運動學(IK)實現
接下來就是為蜘蛛的每條腿創建一個從髖部到小腿再到足部的基礎逆向運動學(IK)鏈。通過IK鏈,可以精確控制蜘蛛的腳部位置,同時讓如膝關節等中間關節自動調整適應這一位置。
為了確保足部準確地放置在最合適的位置上,這里可以再次使用球體追蹤技術來尋找最佳落腳點。同時,考慮到蜘蛛可能會遇到各種不同的地形,還需要設計一套能夠自適應這些變化的足部抬升邏輯,這樣當蜘蛛在不平坦的地面上行走時,腿部會響應地抬高或降低,以保持身體的平衡和穩定性。
當然,想讓腿部動作看起來更加自然,還可以使用所謂的“極向量”來控制膝關節的方向。
PART 03
ENJOY LIFE
運動預測系統
如果想要這只蜘蛛角色跑的又快又穩且步態自然,這里需要結合計算出的蜘蛛角色速度向量,推測蜘蛛在未來某個時刻的具體位置,并依據此來調整蜘蛛每只腳的目標落點。
為了精準確定蜘蛛的腳步落點,還需要靈活調整球體追蹤的起點:當蜘蛛快速前進時,把追蹤起點稍微向前移,以更好地預測下一個合適的落腳點,避免出現腳步跟不上身體的情況。
就像是給動畫角色裝上了“智能導航”,讓它能夠根據自己的速度和方向自動規劃出最佳的腳步路徑,從而實現流暢且自然的移動效果。
PART 04
ENJOY LIFE
時序與插值控制
為了確保蜘蛛的每只腳的動作都獨立自然,避免所有腳同步運動帶來的機械感,作者這里為每只腳創建了獨立的“足部計時器”,來管理其運動周期。
同時為了讓蜘蛛的腳部抬起和放下的動作看起來更真實,作者使用了“重映射曲線”,就像是給腳步繪制了一條理想路徑,通過調整這條曲線,可以精確控制腳步抬起的高度和時間,模擬出真實的行走姿態。一旦蜘蛛開始移動,腳步的抬起高度和頻率就會根據當前的速度自動調整。
為了讓蜘蛛 的 骨盆隨著腿部的移動而自然擺動, 作者使用 “彈簧插值 ” 技術, 根據腿部的支撐情況和整體移動方向進行自然的上下擺動 ,不僅 增加了動畫的真實感,還幫助維持了蜘蛛在各個地形上的平衡。
PART 05
ENJOY LIFE
高級優化技巧
1.局部空間與全局空間位置轉換
通過合理使用全局坐標系(身體整體的移動方向)和局部坐標系(獨立調整自身動作以適應地形變化),來確保蜘蛛的腿部動作既能配合整體移動,又能靈活應對不同的地面狀況。
2.腿部最大伸展限制
為了防止腿部過度拉伸造成不自然效果,這里給蜘蛛的腿設定一個合理的伸展距離。
3.基于平均足部位置的骨盆動態調整
為了增強蜘蛛在行走過程中的穩定性,可以根據所有蜘蛛腳的平均位置實時調整骨盆位置。這意味著,如果幾只腳都在努力維持平衡,骨盆也會相應地調整位置來幫助蜘蛛保持平穩。
4.異步計數器重置防止“八腿同步”
為了避免蜘蛛所有腿同時開始/停止動作,造成機械感,作者在這里引入了隨機性來打破同步,即為每只腳設置了稍微不同的計時器,讓它們的動作不完全一致。這樣設置后的蜘蛛步態更加自然和接近真實生物行為。
在這些工作和技術的共同作用下,一個復雜又搞笑的程序化動畫系統就誕生了。掌握了這些基礎原理,是不是迫不及待想要自己試一試啦~
THE END
“肝”一把!萬一成了呢,名利雙收!
《流浪地球3》官宣定檔!視效水準升級
啥?這么好看的三渲二,居然是廚師做的?!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.