看板 GameDesign 關於我們 聯絡資訊
※ [本文轉錄自 PlayStation 看板 #1TkBbFmr ] 作者: cjcat2266 (CJ Cat) 看板: PlayStation 標題: Re: [情報] CAPCOM將舉辦RE ENGINE研究會 時間: Wed Oct 30 06:12:28 2019 : 簡單說,就是捨棄以往類似state machine,1對1的motion resource製作, : 而是讓演員錄製一支5分鐘的影片, : 影片內容有規定必須遵照特定路線與動作來拍攝,以確保motion data的完整性。 : 然後在角色當下的動作完成時,會回去找該5分鐘影片一禎一禎搜尋, : 搭配玩家的指令輸入,去找出最合適的那一禎動作,並遷移過去。 : 這是非常高價且奢侈的方式,基本上現世代主機遊戲難以實現該作法, : 但是榮耀戰魂剛好是肢體表現為主的格鬥遊戲,有辦法將所有資源通通拿來算motion, : 因此非常可能是本世代唯一一片有辦法使用該技術的作品。 : 推 lanstype: motion macthong有什麼優點啊(門外漢看不懂 10/28 22:37 TLoU2也有用motion matching唷! 剛好敝人也有稍微涉獵MM,來獻醜分享一下我的理解 將動畫師做好的角色動作,讓角色播放來符合移動路徑,這個技術領域叫做locomotion 傳統的作法是讓動畫師分別做好各個方向的行進動作 然後挑選方向符合移動路徑的動作依序播放 例如一個角色要前進2公尺然後轉身45度再前進1公尺,然後往左平移1公尺 傳統的狀態機式系統就會分析這個路徑 然後讓角色播放前進動作直到行進2公尺、接著播放轉身動作直到旋轉45度 最後再播放向左平移的動作直到移動1公尺 這其中牽涉的素材,就包括需要動畫師製作前進、轉身、和平移的動作 MM的做法則比較聰明 讓動作擷取演員一次錄取一段很長的動作,包含各種移動方式(前進、旋轉、平移等) 然後MM系統則是從個數少、但單體資料量巨大的動作資料池中 尋找能夠符合欲移動路徑的動作片段 同時盡量減少角色當下動作與新動作片段的銜接斷層 把這些片段串連起來播放,讓角色用自然的動作依循理想路徑移動 如此一來,動畫師的工作便剩下協助動作擷取 然後再把動作素材的雜訊清理一下,並將動作做一些微調以符合遊戲視覺風格 程式設計師也不需要維護複雜的locomotion狀態機 不過也如原文所說,這個"在巨大動作素材資料池中搜尋理想動作片段"是個效能瓶頸 約10年前Bungie雇用了原始MM paper作者要把MM用在Halo Reach上 結果因為當時硬體性能與優化技術不足而作罷 現在硬體性能與當時相比進步很多 開發者對動作資料的分析和優化技術也有了成長 所以MM不再是遙不可及的夢想,而是可以即時執行的技術了 接下來比較偏技術面 在巨大動作資料池中搜尋理想動作片段,有什麼優化技術可以增加搜尋效率? 暴力解法就是每次需要新動作的時候,把整個資料池讀一遍 找出符合理想移動路徑、又與角色當下動作差異不會太大的片段挑出來 但是資料池非常大,這個暴力解是不切實際的,會花太多時間 其中一個優化方法,是把資料池切成很多小片段 然後把每一個片段的初始動作與移動路徑擷取出來 動作可以預先編碼成容易與其他動作辨識相似程度的格式 通常是把重要的關節位置座標和旋轉角度編成多維向量 如雙腳、骨盆三個關節位置和旋轉總共有18或21個數字(看旋轉是存成3個角度還是四元數) 這樣就可以把動作編碼成一個18維或21維的向量 兩個動作的向量做內積,就可以得到一個能夠與其他內積互相比較的"相似度"分數 同樣的,也可以用類似方法把動作片段的行進路徑進行編碼 與理想路徑比較,也可以得到相似度分數 所以現在尋找理想片段的工作,便成為經過編碼後的動作與路徑相似度的比較 但還是存在著被編碼的動作片段過多的問題 對所有編碼過後的動作和路徑片段比較仍然會花太多時間 於是得借用遊戲物理常用的空間加速資料結構技巧,快速選出少量比較理想的動作片段 然後只從這些少量片段中與角色當下動作和理想路徑做評分比較,最後選出理想動作片段 簡單來說,就是以角色當下動作編碼向量為出發點 若一個動作片段的初始動作向量與角色當下動作向量"距離"差太多,就直接忽略這個片段 像是兩個向量A與B的差A-B的長度太大,就直接忽略而省去取A和B的內積這個步驟 空間資料結構能夠協助快速且大量篩選掉距離太遠的向量 最後便只需要比較非常少數的動作向量與路徑的相似度 然後最近MM延伸出了一個搭配機器學習(ML, machine learning)的變體 原理是透過ML預先分析動作資料池 生出能從角色當下動作與理想路徑得出理想動作片段的類神經網路權重 如此得到的動作片段,完全是程序生成的結果,與ML分析的動作資料池已沒有關係 也就是最終遊戲所需要包含的素材,就只是類神經網路權重(量級大概就幾MB) 大量的動作資料池已經不需要了 如此可以省去大量的動作資料空間(量級可以從幾百MB高到甚至到幾GB) 然而ML作法有個缺點,就是開發者在除錯時 若發現角色的動作看起來怪怪的,唯一的線索就是人類無法解讀的類神經網路權重 沒辦法直接得知會產生動作怪異的原因,是原本的動作資料池的哪個片段 或是在哪個ML環節中出錯 以上! -- Web http://AllenChou.net Twitter http://twitter.com/TheAllenChou LinkedIn http://linkedin.com/in/MingLunChou -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.33.168.6 (美國) ※ 文章網址: https://www.ptt.cc/bbs/PlayStation/M.1572387151.A.C35.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: cjcat2266 (160.33.168.6 美國), 10/30/2019 06:13:37 ※ 編輯: cjcat2266 (160.33.168.6 美國), 10/30/2019 06:15:07
zxc9764315: 怎麼覺得這技術的運算成本高到不行啊XD 10/30 08:25
cjcat2266: 有空間加速結構就能把成本壓到可接受範圍 10/30 08:27
cjcat2266: ML版本則是與神經網路大小成正比,不會很貴,就只是一 10/30 08:28
cjcat2266: 堆加權和而已 10/30 08:28
zxc9764315: ML會不會…不太好維護或是控制? 10/30 08:55
zxc9764315: 對ML不太熟,我的既有印象要訓練出一個合用的網路本 10/30 08:59
zxc9764315: 身就是不太可控的成本 10/30 08:59
cjcat2266: ML的確不確定性很大,目前看到的應用都還是在研究階段 10/30 09:02
ddavid: 不知道如果採用非黑盒子的ML技術,正確率會掉多少 10/30 19:20
coolrobin: 只能推了... 10/30 20:36
coolrobin: 想請問MM是否只適用在一般基礎移動的動作,如果是複雜 10/30 23:10
coolrobin: 一點的運動方式像蹲下移動、跳躍、翻滾甚至是戰鬥這種 10/30 23:12
coolrobin: 是不是就不適合用MM的方式來做了呢? 另外非人型的是否 10/30 23:12
coolrobin: 也適用MM? 10/30 23:13
kuku321: 複雜動作一樣可以 當然你說戰鬥要像DMC那種完全風格差異 10/31 00:03
kuku321: 極大的特定動作的話 拍額外的影片也不是不行 不過成本上 10/31 00:04
kuku321: 直接刻應該比較快 非人形比起收錄 應該還是手作快吧XD 10/31 00:06
kuku321: 不過以後training base夠豐富的話 應該也不是不行 10/31 00:07
cjcat2266: 特殊動作還是用狀態機比較合適,MM可以是在"一般移動" 10/31 01:52
cjcat2266: 狀態下使用的動作系統 10/31 01:53
cjcat2266: 非人形的確動作擷取有難度,四足動物也有其特有難度 10/31 01:54
cjcat2266: 今年GDC有個講座就是在講要如何處理四足動物的MM系統 10/31 01:54
cjcat2266: 直接把人形的MM系統套用在四足動物的動作資料上 10/31 01:54
cjcat2266: 會有預想不到的滑步瑕疵,要另外處理 10/31 01:55
metallican: 太強啦!! 10/31 01:59
dklassic: 滿期待明年 GDC 能不能聽到更多尤其是錄製動畫的見解,T 10/31 02:19
dklassic: LOU2 的 MM 的確看起來很精彩,應該在動作捕捉的規劃上 10/31 02:19
dklassic: 有很多額外的巧思? 10/31 02:19
artpoet: 推 @_@ 10/31 10:32
coolrobin: 感謝回答 m(_"_)m 10/31 22:26
osanaosana: 推 11/03 09:43
heavendemon: push 12/16 05:09