生成自然豐富,反應靈敏的動作的“
Motion Matching
”是什么?

Ubisoft在2016年內預定發售的【榮譽戰魂】,是基於MOBA類集團戰斗,並加入了高度緊張的劍斗動作的多人游戲。在繪制非常細致的戰場里,主人公以騎士,武士還有維京勇士形象展現着厚重感和帥氣的動作。是整體散發着次世代感的作品。
特別引人注目的,是角色動畫的自然響應性很高。無論切換到怎樣的瞬間,自然的運動也感覺不像是游戲了,
盡管如此,還是可以靈敏的反映玩家的操作。
GDC 2016上,在
Ubisoft的演講【
Motion Matching and Road To Next-Gen Animation
】中對本作實現的高品質動畫的獨特算法和工作流做了講解。即便稍微聽一下說明,深入到那些游戲動畫技術以外領域的,還真的是非常讓人震驚的內容。
【For Honor Gameplay - Multiplayer Walkthrough】
把角色動作的自然遷移“有力量的”作出的最新技術

Ubisoft的Simon Clavet

本作動畫系統的目標
進行演講的
Simon Clavet,已經在
Ubisoft擔任了10年的動畫程序員。
在【榮耀戰魂】中,除了要真實的描繪戰士們激烈的劍斗之外,還要有在廣闊戰場的戰略移動,移動消耗的時間也很多。而本作動畫系統所提出的目標就是【正確的游戲性】和【有說服力的動畫】。
先從結果來看的話,本作實現的移動動作,在各種情況,各種瞬間,都是以往游戲沒有的自然運動。方向轉換和加速減速動作的關聯,也看不出是多個動畫組合而成的那樣自然。而且對玩家操作可以快速反應,提供了毫無壓力的正確的游戲性。




本作的移動動畫。姿勢變更,方向轉化以及氣勢的變化等都可以完美的對應,完全感覺不到有銜接部分,自然的播放動作。
以前動畫系統的問題

要實現自然的運動,就需要用戶把動畫片段(Animation Clip)之間的銜接可以對應玩家操作靈活的變化,這個具體要怎么實現?

以前的動畫移動系統因為會引起組合數量的爆炸,只能粗略的對應。
這樣,在有說服力的動作,和動作游戲才有的響應性上,【榮耀戰魂】要求實現的等級很高,用以前的方法幾乎是不可能的。
用手工來設定動畫片段的轉移是有限的,走,跑,停止,轉向等各個動作的鏈接部分,只用少數幾個模板怎么也無法實現的。而角色現在的情況是,要正確的再現玩家輸入的變化,動畫轉移的入口和出口變的非常的大,用手工來連接是很勉強的。
因此,以前的游戲,采取的是動畫的銜接部分通過程序在方向和力上做修正,動態的來近似的方法。用這種方法,會出現腳無法很好的貼合地面,以及滑步移動的繪制情況。這也是以往角色動畫看起來像游戲風格的原因。
【榮耀戰魂】中對於這個問題,采用了非常大膽的方法來解決(只有次世代機才能實現)。也就是本次演講公開的“
Motion Matching
”的方法。


走->停止的運動控制,因為要在忠實的反應玩家操作的同時,實現自然的運動,會有很多的問題。
在每幀中對龐大的動作捕捉數據做檢索

非常簡單的算法

為了拍攝一種運動,要持續5分鍾相似的動作。

每30分之1秒1次,檢索下一個動畫片段

對於速度和姿勢,提取幾個代表點進行匹配
Clavet所說的【愚蠢又有力的的動畫系統】的方法,原理上簡單得驚人。在每幀里,檢索全部的動作捕捉數據,發現最適合的一幀動畫時,就進行動畫的轉移。
例如【疲勞狀態的走動】動作。游戲中使用的是,把演員動作的微妙變化全部保存在5分鍾的運動數據里。同樣的動作,手足位置,腰的高低,頭的方向等有微妙的不同,是一連串的運動數據。
然后並不把它分割成多個動畫Clip,而是一個整體就直接在游戲中使用就是重點了。在這5分鍾的動畫數據中,按幀的單位檢索,向最適合需要的動作范圍進行轉移就可以了。不再需要人手工的制作轉移圖了!
候補的動畫幀,以下面的條件為基准進行選擇。
1.玩家輸入預測的移動曲線的適合度
2.對角色現在的姿勢(腳,頭,手的位置的)的適合度
※
為了實現高速化,每幀里都把上面的數據通過預先計算輸入到參數里。
例如【邊跑邊轉90度】的動作,在動作捕捉數據中也有模板的。在這些候補中,選擇最接近現在姿勢的幀。因為這樣幀單位進行反復操作,可以達到玩家輸入那樣的靈敏反映,完全看不到有動畫銜接部分。


只要不斷的拍攝各種姿勢的運動捕捉數據,不需要分割數據就在游戲里使用


為玩家輸入為基准進行方向預測,選擇接近的移動方向,維持將來的位置和姿勢的動畫
成為角色動畫技術的革命者?

用軌跡預測提升動畫匹配的精度

斜面也對應了

這個方法的優點是,可以實現支持靈敏操作的高品質動畫,以及減輕手動工作。
這個方法和以前的動畫系統完全不同,以前那種從一個動畫Clip轉移到另外一個動畫Clip,和現在這種運動匹配方法在結果上就不用說了。即便制作捕捉數據的人,也無法事先預測幀與幀之間的變化。
而且,它與最近的熱門話題-深度學習也有相似之處。這個是通過原始的龐大運動數據,創作出新的連續動作的系統。如果可以【學習】新的運動,這樣對應動畫的精度也會提升。
但這個方法也有弱點。雖然這個系統也能實現類似【蹲下的狀態從朝向右向左做旋轉並后退移動】這樣的復雜組合,因為不是手工制作動畫轉移圖,要確認可以對應游戲玩法需要的全部運動是很難的。特定的操作組合,感覺還是會有動畫模板的盲點產生(捕捉數據的不足)。這種情況因為轉移到了不匹配的幀上,運動的表現程度也就下降了。
這樣的話,【
For Honor
】的開發團隊每次都要進行游戲內運動的不自然情況的檢查,每周都會實施“填坑”的動作捕捉議程。一邊減少盲點,一邊繼續提高游戲的完成度。
當然因為實現這種方法的負荷很高。使用大量運動數據的話,數據容量會變得非常大,為了最佳動畫幀的檢索需要有很強力的CPU,完全是面向次世代機的技術。但這確實是真正革命性的游戲動畫系統。
把動作的流暢和真實性作為生命的游戲【榮耀戰魂】,使用這個技術的游戲究竟是怎么樣的呢,作為動作游戲玩家真的是非常期待。