作捕捉全流程:從方案選型到引擎集成的工業(yè)化管線)
1. 動(dòng)作捕捉在3A游戲里到底解決什么問題很多人第一次聽到“動(dòng)作捕捉”這四個(gè)字腦子里浮現(xiàn)的畫面大概是演員穿著帶圓點(diǎn)的緊身衣在布滿攝像頭的棚里比劃幾下然后電腦里就自動(dòng)生成了一個(gè)栩栩如生的角色。這個(gè)印象不算錯(cuò)但只看到了冰山一角。真正讓動(dòng)作捕捉成為3A游戲“必備工藝”的原因是它解決了一個(gè)純手工動(dòng)畫幾乎無法逾越的鴻溝——人體運(yùn)動(dòng)的真實(shí)感與信息密度。你可以這樣理解一個(gè)動(dòng)畫師手動(dòng)K幀哪怕技術(shù)再頂尖他本質(zhì)上是在用關(guān)鍵幀去“描述”運(yùn)動(dòng)。而動(dòng)作捕捉是直接“記錄”運(yùn)動(dòng)。這兩者的差別就像你憑記憶畫一幅人像和用相機(jī)拍一張照片的區(qū)別。手繪可以很傳神但照片里那些無意識(shí)的肌肉顫動(dòng)、重心微調(diào)、衣物隨動(dòng)的細(xì)節(jié)是手繪極難復(fù)現(xiàn)的。3A游戲追求的就是這種“照片級(jí)”的運(yùn)動(dòng)質(zhì)感尤其是在寫實(shí)風(fēng)格的動(dòng)作、體育、格斗類項(xiàng)目里玩家對(duì)“假”的容忍度極低——一個(gè)轉(zhuǎn)身如果重心不對(duì)立刻就會(huì)覺得“飄”。從制作效率上講動(dòng)作捕捉也是降本增效的利器。一個(gè)復(fù)雜的連招或者跑酷動(dòng)作純手工制作可能需要?jiǎng)赢嫀熁ㄉ弦粌芍芊磸?fù)調(diào)整曲線而通過動(dòng)捕演員在棚里幾分鐘就能產(chǎn)出多條可用素材。當(dāng)然這并不意味著動(dòng)畫師的工作被取代了他們的角色從“創(chuàng)造運(yùn)動(dòng)”變成了“編輯和優(yōu)化運(yùn)動(dòng)”工作重心轉(zhuǎn)移到了清理數(shù)據(jù)、匹配角色體型、處理穿模和風(fēng)格化調(diào)整上。這個(gè)轉(zhuǎn)變本身就是現(xiàn)代游戲工業(yè)化分工的一個(gè)縮影。再往深一層說動(dòng)作捕捉承載的不僅是物理運(yùn)動(dòng)還有表演。一個(gè)優(yōu)秀的動(dòng)捕演員能通過肢體語言傳遞角色的情緒、性格甚至敘事信息。比如一個(gè)疲憊的戰(zhàn)士拖著劍走和一個(gè)警惕的刺客貓著腰潛行這兩種狀態(tài)下的步態(tài)、呼吸節(jié)奏、頭部朝向都是完全不同的。這些微妙的表演細(xì)節(jié)如果全靠動(dòng)畫師去想象和實(shí)現(xiàn)不僅耗時(shí)而且很容易陷入“形似神不似”的尷尬。動(dòng)捕把演員的表演直接轉(zhuǎn)化為數(shù)據(jù)讓角色的“靈魂”有了更扎實(shí)的物理載體。所以當(dāng)我們討論“天美是如何將動(dòng)作捕捉運(yùn)用到游戲中”時(shí)我們真正要拆解的是一整套從需求定義、方案選型、現(xiàn)場(chǎng)拍攝、數(shù)據(jù)處理到引擎集成的工業(yè)化管線。這套管線里的每一個(gè)環(huán)節(jié)都藏著大量不為人知的取舍和技巧。下面我就按實(shí)際項(xiàng)目推進(jìn)的順序把這套流程掰開揉碎了講。2. 動(dòng)捕方案選型光學(xué)、慣性還是視覺在動(dòng)手搭建任何東西之前第一個(gè)要拍板的問題就是用哪種動(dòng)捕技術(shù)市面上主流方案大致分三類各有各的脾氣。選錯(cuò)了方案后面全是坑。2.1 光學(xué)式動(dòng)捕精度王者但嬌氣光學(xué)式是目前3A游戲動(dòng)捕的主流選擇尤其是需要高精度手指和面部捕捉的項(xiàng)目。它的原理不復(fù)雜在演員身上貼滿反光標(biāo)記點(diǎn)周圍架設(shè)多臺(tái)紅外攝像機(jī)攝像機(jī)發(fā)出紅外光照射標(biāo)記點(diǎn)再通過多機(jī)位三角測(cè)量算出每個(gè)點(diǎn)在三維空間中的精確坐標(biāo)。這套方案最大的優(yōu)點(diǎn)是精度極高位置誤差可以控制在亞毫米級(jí)而且標(biāo)記點(diǎn)數(shù)量可以很多能同時(shí)捕捉全身加手指的細(xì)微動(dòng)作。但它的“嬌氣”也出了名標(biāo)記點(diǎn)一旦被遮擋比如演員轉(zhuǎn)身時(shí)手臂擋住了胸口的點(diǎn)那個(gè)點(diǎn)的數(shù)據(jù)就會(huì)丟失需要后期靠算法去補(bǔ)。如果遮擋時(shí)間過長(zhǎng)補(bǔ)出來的數(shù)據(jù)就會(huì)失真。另外場(chǎng)地里任何反光物體——金屬支架、亮面地板、甚至演員衣服上的反光條——都可能造成誤識(shí)別產(chǎn)生“鬼影”點(diǎn)。我印象很深的一次是拍攝一個(gè)持盾防御的動(dòng)作。演員左手持盾盾牌邊緣的反光條在特定角度下被攝像機(jī)捕捉到系統(tǒng)誤以為那是演員身上的標(biāo)記點(diǎn)結(jié)果生成的數(shù)據(jù)里多出了一條詭異的“第三只手”。排查了半天才發(fā)現(xiàn)是盾牌的問題。后來我們用啞光布把盾牌整個(gè)包起來才解決。這個(gè)坑告訴我光學(xué)動(dòng)捕的現(xiàn)場(chǎng)任何反光物都是敵人。2.2 慣性式動(dòng)捕自由度高但會(huì)漂移慣性式方案是讓演員穿戴內(nèi)置陀螺儀和加速度計(jì)的傳感器套裝通過積分運(yùn)算推算每個(gè)關(guān)節(jié)的旋轉(zhuǎn)角度。它最大的好處是沒有遮擋問題也不需要龐大的攝像機(jī)陣列場(chǎng)地要求低甚至可以在戶外使用。對(duì)于需要大范圍跑動(dòng)、翻滾、攀爬的動(dòng)作慣性式往往比光學(xué)式更省心。但慣性式的硬傷在于位置漂移。因?yàn)樗强糠e分算位置時(shí)間一長(zhǎng)誤差就會(huì)累積演員跑出去十幾米再跑回來系統(tǒng)可能認(rèn)為他停在了偏離原點(diǎn)半米的地方。所以慣性式通常需要配合一個(gè)全局定位手段比如在鞋底加裝壓力傳感器做步態(tài)相位校正或者用光學(xué)系統(tǒng)做混合定位。純慣性方案在3A游戲里很少單獨(dú)用于全身捕捉更多是用在手指或面部這種局部、小范圍、對(duì)絕對(duì)位置不敏感的場(chǎng)景。2.3 視覺式動(dòng)捕無標(biāo)記但吃算力視覺式是近幾年興起的方向核心思路是用普通RGB攝像頭加深度學(xué)習(xí)算法直接從圖像里估計(jì)人體姿態(tài)不需要演員穿標(biāo)記點(diǎn)或傳感器。它的誘惑力在于對(duì)演員零干擾演員可以穿正常服裝表演甚至可以用現(xiàn)成的視頻素材做動(dòng)捕。但現(xiàn)階段的視覺式方案在精度和穩(wěn)定性上還達(dá)不到3A游戲的要求。它的關(guān)節(jié)位置誤差通常在厘米級(jí)而且對(duì)光照、服裝、背景非常敏感。一個(gè)穿寬松衣服的演員算法可能完全找不到他的肘部在哪。所以視覺式目前更多用在預(yù)演、動(dòng)畫參考或者對(duì)精度要求不高的NPC動(dòng)作上。真正要用于主角的精細(xì)表演還是得靠光學(xué)或慣性方案。2.4 混合方案成年人的選擇實(shí)際項(xiàng)目里最常見的做法是混合方案。比如全身用光學(xué)式保證精度手指用慣性手套避免遮擋面部用頭戴式攝像頭做表情捕捉。這三套系統(tǒng)的時(shí)間碼必須嚴(yán)格同步否則后期對(duì)數(shù)據(jù)的時(shí)候會(huì)發(fā)現(xiàn)身體在動(dòng)、手指沒動(dòng)、表情滯后整個(gè)表演就散了。選型的時(shí)候我一般會(huì)問三個(gè)問題第一這個(gè)動(dòng)作的精度要求有多高如果是寫實(shí)格斗光學(xué)式?jīng)]得跑。第二演員的活動(dòng)范圍有多大如果要跑酷、翻滾光學(xué)式的攝像機(jī)覆蓋范圍可能不夠得考慮慣性式或者混合。第三預(yù)算是多少光學(xué)式棚的搭建和維護(hù)成本遠(yuǎn)高于慣性式小團(tuán)隊(duì)往往先從慣性式起步。3. 拍攝前的準(zhǔn)備標(biāo)定、演員與數(shù)據(jù)規(guī)范方案定了接下來就是拍攝。很多人以為動(dòng)捕就是演員來了直接開拍其實(shí)真正決定數(shù)據(jù)質(zhì)量的是拍攝前那幾十分鐘到幾個(gè)小時(shí)的準(zhǔn)備工作。這部分做扎實(shí)了后期能省下一大半的返工時(shí)間。3.1 空間標(biāo)定讓虛擬世界和現(xiàn)實(shí)對(duì)齊光學(xué)動(dòng)捕的第一步是標(biāo)定。簡(jiǎn)單說就是讓系統(tǒng)知道每臺(tái)攝像機(jī)在空間中的精確位置和朝向以及地面在哪里。標(biāo)定通常用一個(gè)叫“標(biāo)定桿”的工具上面有幾個(gè)已知間距的標(biāo)記點(diǎn)操作人員在攝像機(jī)覆蓋區(qū)域內(nèi)揮舞標(biāo)定桿系統(tǒng)根據(jù)多臺(tái)攝像機(jī)同時(shí)看到的標(biāo)記點(diǎn)位置反推出每臺(tái)攝像機(jī)的參數(shù)。標(biāo)定質(zhì)量直接決定數(shù)據(jù)精度。我見過因?yàn)闃?biāo)定不充分導(dǎo)致演員走到場(chǎng)地邊緣時(shí)數(shù)據(jù)開始扭曲的情況。所以標(biāo)定一定要覆蓋演員所有可能到達(dá)的區(qū)域尤其是邊緣和角落。標(biāo)定完成后還要用一根已知長(zhǎng)度的標(biāo)定尺在場(chǎng)地里隨機(jī)放置幾個(gè)位置驗(yàn)證系統(tǒng)測(cè)出來的長(zhǎng)度和實(shí)際長(zhǎng)度是否一致。如果誤差超過兩毫米就得重新標(biāo)定。注意標(biāo)定完成后場(chǎng)地里的攝像機(jī)、支架、地面標(biāo)記都不能再移動(dòng)。哪怕只是碰歪了一臺(tái)攝像機(jī)整個(gè)標(biāo)定就廢了必須重來。所以拍攝期間場(chǎng)地要拉警戒線無關(guān)人員禁止入內(nèi)。3.2 演員準(zhǔn)備貼點(diǎn)、服裝與熱身演員身上的標(biāo)記點(diǎn)怎么貼是一門學(xué)問。貼點(diǎn)的原則是盡量貼在骨骼端點(diǎn)附近、肌肉形變小、不易被遮擋的位置。比如肘關(guān)節(jié)通常貼在鷹嘴突外側(cè)而不是正后方因?yàn)檎蠓皆谑直蹚澢鷷r(shí)容易被遮擋。膝關(guān)節(jié)貼在髕骨外側(cè)髖關(guān)節(jié)貼在髂前上棘附近。貼點(diǎn)數(shù)量也有講究。全身基礎(chǔ)捕捉通常需要40到60個(gè)點(diǎn)如果要捕捉手指每只手再加20個(gè)左右。點(diǎn)不是越多越好太多會(huì)增加遮擋概率和后期清理工作量。關(guān)鍵是覆蓋所有需要驅(qū)動(dòng)的骨骼同時(shí)留出足夠的冗余點(diǎn)用于數(shù)據(jù)修復(fù)。服裝方面演員要穿緊身衣把標(biāo)記點(diǎn)貼在衣服上比貼在皮膚上更穩(wěn)定因?yàn)槠つw會(huì)滑動(dòng)。緊身衣的顏色最好是深色啞光避免反光。鞋子要合腳鞋底不能太軟否則做急停、起跳動(dòng)作時(shí)腳部數(shù)據(jù)會(huì)失真。開拍前演員必須做充分熱身。這不是為了禮貌而是為了安全和數(shù)據(jù)質(zhì)量。一個(gè)沒熱身的演員做大幅度動(dòng)作時(shí)肌肉僵硬動(dòng)作會(huì)變形而且容易受傷。熱身之后還要讓演員在場(chǎng)地里走幾圈、做幾個(gè)代表性動(dòng)作讓系統(tǒng)“認(rèn)識(shí)”他的運(yùn)動(dòng)范圍同時(shí)也讓演員熟悉場(chǎng)地邊界避免拍攝時(shí)撞到攝像機(jī)。3.3 數(shù)據(jù)規(guī)范命名、分段與元數(shù)據(jù)拍攝現(xiàn)場(chǎng)最容易忽略的是數(shù)據(jù)管理。一場(chǎng)戲拍下來可能產(chǎn)生幾十上百條take如果命名混亂后期找素材就是災(zāi)難。我的習(xí)慣是每條take的命名包含項(xiàng)目代號(hào)、日期、場(chǎng)次、動(dòng)作描述、演員代號(hào)、版本號(hào)。比如“PRJ-A_20240612_S03_沖刺跳躍_ActorB_v02”。這樣后期在數(shù)據(jù)庫(kù)里一搜就能定位。另外每條take開拍前讓演員在起始位置站定做一個(gè)T-pose或A-pose保持兩秒。這個(gè)姿勢(shì)是后期綁定和重定向的參考基準(zhǔn)沒有它數(shù)據(jù)導(dǎo)入引擎后可能對(duì)不上角色的骨骼。同時(shí)現(xiàn)場(chǎng)要記錄元數(shù)據(jù)這條take的動(dòng)作意圖是什么、有沒有特殊要求、演員有沒有即興發(fā)揮。這些信息在后期編輯時(shí)非常關(guān)鍵因?yàn)閯?dòng)畫師不可能記住每一條take的上下文。4. 現(xiàn)場(chǎng)拍攝導(dǎo)演、反饋與意外處理拍攝現(xiàn)場(chǎng)是動(dòng)捕管線里最像“拍電影”的環(huán)節(jié)。導(dǎo)演要給演員說戲要判斷表演是否到位還要實(shí)時(shí)關(guān)注數(shù)據(jù)質(zhì)量。這個(gè)環(huán)節(jié)的決策效率直接決定了整個(gè)動(dòng)捕階段的產(chǎn)出。4.1 實(shí)時(shí)預(yù)覽讓演員看到自己的虛擬化身現(xiàn)代動(dòng)捕系統(tǒng)都支持實(shí)時(shí)預(yù)覽演員的動(dòng)作會(huì)即時(shí)驅(qū)動(dòng)一個(gè)虛擬角色顯示在大屏幕上。這個(gè)功能對(duì)表演的幫助極大。演員可以看到自己的虛擬化身是否做出了預(yù)期的動(dòng)作重心對(duì)不對(duì)節(jié)奏對(duì)不對(duì)。沒有實(shí)時(shí)預(yù)覽演員就像在盲演只能靠想象效率會(huì)低很多。但實(shí)時(shí)預(yù)覽也有副作用。有些演員會(huì)過度關(guān)注屏幕上的虛擬形象反而忽略了身體的本體感覺。我的經(jīng)驗(yàn)是讓演員先憑感覺演一遍再看回放調(diào)整。第一遍往往是最自然的因?yàn)檠輪T的注意力在動(dòng)作本身而不是在“演得像不像”?;胤诺臅r(shí)候再針對(duì)具體問題微調(diào)比如“手再抬高一點(diǎn)”“轉(zhuǎn)身再快半拍”。4.2 導(dǎo)演與動(dòng)畫師的現(xiàn)場(chǎng)配合動(dòng)捕現(xiàn)場(chǎng)通常有三方人員動(dòng)捕導(dǎo)演、動(dòng)畫師、技術(shù)工程師。導(dǎo)演負(fù)責(zé)表演和動(dòng)作設(shè)計(jì)動(dòng)畫師負(fù)責(zé)判斷數(shù)據(jù)是否滿足后期需求技術(shù)工程師負(fù)責(zé)系統(tǒng)運(yùn)行和數(shù)據(jù)質(zhì)量監(jiān)控。這三方的溝通必須順暢。一個(gè)常見的矛盾是導(dǎo)演覺得表演很到位但動(dòng)畫師發(fā)現(xiàn)某個(gè)關(guān)鍵部位的數(shù)據(jù)被遮擋了后期修起來很麻煩。這時(shí)候就需要現(xiàn)場(chǎng)決策是重拍一條還是接受這個(gè)瑕疵后期修我的原則是如果遮擋發(fā)生在核心動(dòng)作的關(guān)鍵幀上必須重拍。因?yàn)楹笃谛迯?fù)遮擋數(shù)據(jù)本質(zhì)上是在“猜”運(yùn)動(dòng)猜出來的東西很難自然。如果遮擋發(fā)生在動(dòng)作的過渡幀或者非關(guān)鍵部位可以考慮后期處理。4.3 常見意外與應(yīng)對(duì)動(dòng)捕現(xiàn)場(chǎng)最常見的意外是標(biāo)記點(diǎn)脫落。演員動(dòng)作一大汗一多貼在皮膚上的點(diǎn)就可能掉。所以現(xiàn)場(chǎng)要安排專人盯著監(jiān)視器一旦發(fā)現(xiàn)某個(gè)點(diǎn)消失或者位置異常立刻喊停。備用的標(biāo)記點(diǎn)和膠帶要隨手可及。另一個(gè)常見問題是電磁干擾。慣性式傳感器對(duì)磁場(chǎng)敏感如果場(chǎng)地附近有大功率電機(jī)、金屬結(jié)構(gòu)或者無線設(shè)備數(shù)據(jù)可能會(huì)跳。光學(xué)式雖然不怕磁場(chǎng)但怕強(qiáng)光尤其是陽光直射因?yàn)殛柟饫锏募t外成分會(huì)淹沒攝像機(jī)的紅外光。所以光學(xué)棚通常沒有窗戶或者用遮光簾把窗戶封死。還有一種情況是演員受傷。動(dòng)捕動(dòng)作往往比日常動(dòng)作劇烈急停、跳躍、翻滾都有風(fēng)險(xiǎn)?,F(xiàn)場(chǎng)必須配備急救包演員一旦感覺不適立刻停止。我見過因?yàn)檫B續(xù)拍攝高強(qiáng)度的打斗動(dòng)作演員膝蓋舊傷復(fù)發(fā)的情況。所以拍攝計(jì)劃要合理分配體力高強(qiáng)度動(dòng)作和文戲交替進(jìn)行給演員恢復(fù)時(shí)間。5. 數(shù)據(jù)后期從原始點(diǎn)到可用動(dòng)畫拍攝結(jié)束只是拿到了原材料真正讓數(shù)據(jù)變成游戲里能用的動(dòng)畫還要經(jīng)過一整套后期處理。這個(gè)階段的工作量往往被低估實(shí)際上它可能占整個(gè)動(dòng)捕流程一半以上的時(shí)間。5.1 數(shù)據(jù)清理補(bǔ)點(diǎn)、去噪與平滑原始動(dòng)捕數(shù)據(jù)里充滿了各種問題標(biāo)記點(diǎn)丟失、誤識(shí)別產(chǎn)生的鬼影點(diǎn)、電磁干擾造成的跳變、地面反光造成的虛假點(diǎn)。數(shù)據(jù)清理的第一步是識(shí)別并剔除這些壞點(diǎn)。大多數(shù)動(dòng)捕軟件都有自動(dòng)清理功能但自動(dòng)清理往往會(huì)誤殺好點(diǎn)所以關(guān)鍵鏡頭還是得手動(dòng)逐幀檢查。補(bǔ)點(diǎn)是清理的核心。當(dāng)一個(gè)標(biāo)記點(diǎn)被遮擋時(shí)軟件會(huì)根據(jù)前后幀的運(yùn)動(dòng)趨勢(shì)和相鄰點(diǎn)的空間關(guān)系推算出一個(gè)合理的位置。但補(bǔ)出來的點(diǎn)只能保證“看起來不突?!辈荒鼙WC“物理正確”。所以補(bǔ)點(diǎn)之后通常還要做一次運(yùn)動(dòng)學(xué)約束檢查比如肘關(guān)節(jié)不能反向彎曲、膝蓋不能超過一定角度用這些約束去修正補(bǔ)出來的數(shù)據(jù)。平滑處理要適度。過度平滑會(huì)讓動(dòng)作變得“軟綿綿”失去力量感。我的經(jīng)驗(yàn)是保留高頻的沖擊感只平滑低頻的抖動(dòng)。比如落地時(shí)的震動(dòng)是真實(shí)感的一部分不應(yīng)該被抹掉而傳感器漂移造成的緩慢偏移才需要平滑。5.2 重定向讓動(dòng)作適配不同體型的角色動(dòng)捕演員的體型和游戲角色的體型往往不一樣。一個(gè)一米八的演員捕捉的動(dòng)作要套到一個(gè)兩米高的Boss角色上直接套用會(huì)導(dǎo)致腳陷進(jìn)地里或者手夠不到目標(biāo)。重定向就是解決這個(gè)問題的技術(shù)。重定向的核心是保持運(yùn)動(dòng)的相對(duì)關(guān)系而不是絕對(duì)位置。比如演員抬手到肩膀高度重定向到長(zhǎng)臂角色上手也應(yīng)該抬到肩膀高度而不是保持絕對(duì)的世界坐標(biāo)。這需要根據(jù)角色的骨骼比例對(duì)每個(gè)關(guān)節(jié)的旋轉(zhuǎn)和位移做縮放和偏移。好的重定向算法能保留動(dòng)作的力度和節(jié)奏同時(shí)讓角色看起來是在用自己的身體做這個(gè)動(dòng)作。重定向之后還要做腳部鎖定。如果角色在行走或奔跑腳底和地面的接觸點(diǎn)必須穩(wěn)定不能滑動(dòng)。這通常需要結(jié)合角色的移動(dòng)速度對(duì)腳部IK做反向調(diào)整。腳滑是3A游戲里最容易被玩家發(fā)現(xiàn)的瑕疵之一必須仔細(xì)處理。5.3 風(fēng)格化調(diào)整從“像人”到“像角色”寫實(shí)動(dòng)捕數(shù)據(jù)直接用在游戲里有時(shí)候會(huì)顯得“太普通”。因?yàn)檎嫒藙?dòng)作是日常的、隨意的而游戲角色往往需要更夸張、更有辨識(shí)度的運(yùn)動(dòng)風(fēng)格。比如一個(gè)重裝戰(zhàn)士他的步伐應(yīng)該更沉重、更有壓迫感一個(gè)敏捷刺客動(dòng)作應(yīng)該更輕盈、更連貫。風(fēng)格化調(diào)整通常從幾個(gè)維度入手節(jié)奏加快或放慢關(guān)鍵動(dòng)作的速率、幅度放大或縮小關(guān)節(jié)活動(dòng)范圍、重心調(diào)整角色的重心高度和移動(dòng)軌跡、跟隨增加或減少肢體末端的延遲和慣性。這些調(diào)整需要?jiǎng)赢嫀煂?duì)角色性格有深刻理解不能為了夸張而夸張否則會(huì)失去真實(shí)感的基礎(chǔ)。我個(gè)人的經(jīng)驗(yàn)是先讓動(dòng)捕數(shù)據(jù)“成立”再做風(fēng)格化。如果原始數(shù)據(jù)本身就有問題比如重心不穩(wěn)、節(jié)奏混亂風(fēng)格化只會(huì)放大這些問題。所以清理和重定向階段一定要把基礎(chǔ)打牢風(fēng)格化是錦上添花不是雪中送炭。6. 引擎集成讓動(dòng)畫在游戲里跑起來數(shù)據(jù)處理好之后最后一步是導(dǎo)入游戲引擎和角色的骨骼、物理、狀態(tài)機(jī)對(duì)接。這個(gè)階段的問題往往不是動(dòng)畫本身而是動(dòng)畫和游戲邏輯的配合。6.1 骨骼匹配與動(dòng)畫藍(lán)圖每個(gè)游戲角色的骨骼結(jié)構(gòu)可能都不一樣動(dòng)捕數(shù)據(jù)導(dǎo)入引擎后第一件事是骨骼匹配。把動(dòng)捕數(shù)據(jù)的骨骼層級(jí)映射到游戲角色的骨骼上確保每個(gè)關(guān)節(jié)的旋轉(zhuǎn)軸和父子關(guān)系一致。如果骨骼命名規(guī)范統(tǒng)一這個(gè)過程可以自動(dòng)化如果命名混亂就得手動(dòng)一個(gè)個(gè)對(duì)非常耗時(shí)。匹配完成后要在動(dòng)畫藍(lán)圖里設(shè)置狀態(tài)機(jī)。角色的移動(dòng)、攻擊、受擊、死亡等狀態(tài)分別對(duì)應(yīng)哪些動(dòng)畫片段狀態(tài)之間怎么過渡過渡時(shí)間多長(zhǎng)這些都需要仔細(xì)配置。動(dòng)捕數(shù)據(jù)通常是一個(gè)個(gè)獨(dú)立的片段狀態(tài)機(jī)負(fù)責(zé)把它們串成流暢的表演。6.2 動(dòng)畫混合與IK修正游戲角色很少只播放一個(gè)動(dòng)畫。跑步的時(shí)候上半身可能在瞄準(zhǔn)下半身在做跑步循環(huán)這兩個(gè)動(dòng)畫需要混合?;旌系臅r(shí)候如果兩個(gè)動(dòng)畫的節(jié)奏不一致就會(huì)出現(xiàn)“上半身和下半身打架”的情況。所以混合空間的設(shè)計(jì)很關(guān)鍵要根據(jù)角色的移動(dòng)速度和方向動(dòng)態(tài)調(diào)整兩個(gè)動(dòng)畫的權(quán)重。IK修正是另一個(gè)重點(diǎn)。比如角色站在斜坡上腳部動(dòng)畫是平地的直接播放腳就會(huì)懸空或陷地。這時(shí)候需要用IK把腳“拉”到斜坡表面上。手部抓握物體、角色看向目標(biāo)也都需要IK輔助。IK修正做得好動(dòng)畫和環(huán)境的貼合度會(huì)大幅提升做得不好就會(huì)出現(xiàn)關(guān)節(jié)扭曲、拉伸過度等詭異現(xiàn)象。6.3 性能優(yōu)化讓動(dòng)捕動(dòng)畫不拖垮幀率動(dòng)捕動(dòng)畫的數(shù)據(jù)量通常很大尤其是高精度的面部和手指動(dòng)畫。如果每個(gè)角色都播放全精度動(dòng)畫同屏角色一多幀率就會(huì)崩。所以需要做動(dòng)畫壓縮和LOD。壓縮的思路是去掉冗余的關(guān)鍵幀用曲線擬合代替逐幀數(shù)據(jù)對(duì)不重要的骨骼降低采樣率。LOD則是根據(jù)角色離攝像機(jī)的距離動(dòng)態(tài)切換動(dòng)畫精度。遠(yuǎn)處的角色用低精度動(dòng)畫近處的用高精度。這些優(yōu)化手段能在幾乎不損失觀感的前提下大幅降低性能開銷。提示動(dòng)畫壓縮是有損的壓縮過度會(huì)導(dǎo)致動(dòng)作變形。所以壓縮之后一定要做對(duì)比測(cè)試確保關(guān)鍵動(dòng)作的力度和節(jié)奏沒有丟失。我一般會(huì)保留一套未壓縮的源數(shù)據(jù)方便隨時(shí)回退。7. 一些踩過坑才明白的經(jīng)驗(yàn)聊完流程最后分享幾個(gè)我在實(shí)際項(xiàng)目里踩過坑才總結(jié)出來的經(jīng)驗(yàn)都是文檔里不會(huì)寫的。第一動(dòng)捕不是萬能藥。有些動(dòng)作就是不適合動(dòng)捕比如極度夸張的卡通風(fēng)格、違反物理規(guī)律的特技、需要精確到幀的格斗判定。這些場(chǎng)景下手工動(dòng)畫或者程序化動(dòng)畫可能更合適。動(dòng)捕最適合的是寫實(shí)風(fēng)格、物理合理、依賴演員表演的動(dòng)作。第二演員的選擇比技術(shù)更重要。一個(gè)懂表演、懂游戲、身體控制力強(qiáng)的動(dòng)捕演員能產(chǎn)出高質(zhì)量的數(shù)據(jù)讓后期省心一半。技術(shù)可以調(diào)但表演的靈氣是調(diào)不出來的。如果預(yù)算允許盡量找有武術(shù)、舞蹈或戲劇背景的演員。第三現(xiàn)場(chǎng)記錄比事后回憶靠譜。拍攝時(shí)覺得“這條肯定記得住”過兩天就全忘了。所以每條take的意圖、問題、備注當(dāng)場(chǎng)就要記下來最好錄音。后期編輯的時(shí)候這些記錄就是導(dǎo)航圖。第四給后期留足時(shí)間。很多項(xiàng)目把動(dòng)捕拍攝安排在臨近里程碑的時(shí)候結(jié)果后期清理和集成的時(shí)間被嚴(yán)重壓縮最后只能草草了事。動(dòng)捕的后期工作量至少是拍攝時(shí)間的兩到三倍排期的時(shí)候一定要把這個(gè)算進(jìn)去。第五多和動(dòng)畫師溝通。動(dòng)捕工程師和動(dòng)畫師之間容易有隔閡工程師覺得動(dòng)畫師不懂?dāng)?shù)據(jù)動(dòng)畫師覺得工程師不懂表演。其實(shí)雙方的目標(biāo)是一致的——讓角色動(dòng)起來好看。所以從項(xiàng)目初期就讓動(dòng)畫師參與動(dòng)捕方案的討論讓他們了解數(shù)據(jù)的特性和局限后期配合會(huì)順暢很多。這套流程走下來一個(gè)完整的動(dòng)捕管線才算跑通。每個(gè)環(huán)節(jié)都有優(yōu)化的空間每個(gè)項(xiàng)目都會(huì)遇到新的問題。但只要你理解了每個(gè)決策背后的“為什么”就能根據(jù)實(shí)際情況靈活調(diào)整而不是死守一套固定流程。動(dòng)作捕捉說到底是一種工具工具的價(jià)值在于用的人怎么用它。