新聞 > 科教 > 正文

為什麼遊戲裏的人物都沒有「穿衣服」的動作?

當你在遊戲裏給角色換裝備時,新裝備總是「嗖!」地一下瞬間替換掉舊的,你幾乎看不到遊戲人物「穿上裝備」的動作。不過現在,佐治亞理工的研究人員提供的一種模型,可以讓虛擬人物在遊戲裏實現「穿衣服」的動作。

遊戲中那些飆車飛馳,槍火瀰漫,房屋爆破的場景給人感覺真的是High爆了。但你通常不會在遊戲中見到一些平常生活的小細節,比如抽煙、接吻、以及……穿衣服。

如果算上MOD,《上古捲軸》裏你幾乎可以擁有無盡的裝備,但你從來看不到角色「穿上衣服」的動作。圖片來源:《上古捲軸》

「穿衣服」的鏡頭少,因為技術達不到

無論是《暗黑破壞神》、《俠盜獵車手》、《上古捲軸》還是《巫師》,你都很少真的看見遊戲角色們「換衣服」這樣人性化的動作。實際上,當你給遊戲人物換上更好的裝備,穿上更拉風的外裝,或者更換上某些MOD製作的紳士衣服時,那些衣服和褲子都是「嗖!」的一下出現在了遊戲人物的身上,而之前的衣服則以某種不知名的方式,在那一瞬間進入了人物的物品庫。

就算我們已經在3D特技效果和動畫電影的製作里取的了相當的進展,我們也很少能看到一個3D動畫的角色或者某個模擬遊戲的人物「換衣服」的整個動作。你可能完全想像不到,要讓僵硬的角色動態模型和仿真布料進行物理互動,在計算機上是多麼難以實現。

究其原因,要麼是因為技術上太難實現於是放棄了,要麼是由於模型不到位讓效果看起來非常的垃圾(或許兩者都有?)。而目前做不出比較真實的穿衣動作模型,主要是由於3D建模里的「衣服」和「角色」不是同一種類型:「衣服」一般源於物理建模;但「角色」是基於人體建模製作的。兩者的互相作用會使模型變得很複雜。

不過,在最近發佈的研究里1,佐治亞理工的研究員們正在尋求解決這種在電子屏幕上展現「穿衣服過程」的方法,從而在屏幕上展現出更好的互動。他們最近就開發出了一種能夠讓3D動畫角色獨立控制四肢來穿上外套和其他衣服的算法模型。

「在動畫電影裏你看到的最接近穿衣服的事情就是英雄們披着披風了,但這仍然是很簡單的設計,因為穿披風其實並不涉及很多角色和衣服之間的物理接觸,「佐治亞理工研究員,論文的共同作者劉凱倫說道,「這是我們特別想要強調的問題,因為合成這樣的場景需要包含兩種完全不同物理系統的相互作用。」

3D動畫《大聖歸來》裏,孫悟空和他拉風的披風。但披風和人物的身體接觸很少,因而比較容易實現。圖片來源:電影《西遊記之大聖歸來》

「衣服」該怎麼「穿」?

穿衣服是人類社會日常活動中最常見的活動之一,但穿衣服並不簡單。一個孩子得花上三四年才能熟練掌握穿衣服的技巧。在現實生活里,人們學習穿衣服的挑戰主要在於,肢體需要自我協調,來處理柔軟且易變性的物體(衣服)。綜合起來,學習的難度不算低。

在計算機里,也不容易。

你也肯定在動畫裏看到過,當角色的手臂移動時,衣服的袖子和胳膊上許多又小、又奇怪的變化。衣服就像頭髮和水一樣,是很難被動畫實體化的。一般來說,衣服由物理原理來捕捉,這樣布料就會像現實生活里那樣反應和變化。而不同的是,角色人物的運動的和動作一般來說是由人體學模型來創建的。想讓這樣的兩個系統相互反應比較有難度。

研究人員提供了一種解決方法。「最困難的部分在於如何計算出控制角色的算法。」劉說道,「虛擬角色需要根據衣服的反應作出肢體運動的正確決策,這樣才能準確的到達衣服模型的開口位置。」

模型的虛擬角色正在穿褲子。別問我褲子中間的突起是怎麼回事……(算法模型在特定動作下造成的材料形變,才不是裏面有一個隱形的東西呢!)圖片來源:參考資料[1]

這個解決方法是在「衣服」的模型上設計一個「開口」,當通過開口的時候,就讓衣服和衣服包裹下的身體相互作用。研究人員使用了一系列限定的「主要動作」,比如說把手和腳穿過衣服的開口,然後結合當時衣服的狀態,在一些動作比較關鍵的瞬間設置相應的算法路徑。這些「主要動作」可以根據不同風格的衣物來組合成不一樣的運動順序。利用前饋和反饋控制機制,一個「穿衣控制器」被用來處理每個「主要動作」。

這個「穿衣控制器」設置了一項路徑來達到目標動作,同時會在必要的時候基於模擬布料的實時狀態做連續不斷的局部調整。研究人員表示,這個模型能夠使用在不同的服裝類型上,包括外套、短褲、長袍以及背心。並且控制器能很好地分辨不同衣服的網格解像度,這能讓衣物模擬器能夠更有效的整合不同的衣服活動。另外,他們還展示了這個算法能同樣教會一個虛擬角色幫另一個虛擬角色穿衣服。

虛擬角色穿衣服實拍。圖片來源:參考資料[1]

也教機械人「穿衣服」

目前為止,佐治亞理工學院的研究人員正在打算將這項「穿衣技術」用於3D電影和遊戲裏。也許下次換裝備的時候,你能真的看到角色「穿上」新的裝備。雖然有些人可能會覺得這項功能有些雞肋,但這項技術仍然會幫助一些追求代入感的遊戲和模擬遊戲更好地展現遊戲的真實性。

而長遠來看,他們的研究成果也許能教會真實的機械人識別他們周圍世界的微小差別。

現今,無論是自動工廠里的機械人,或者無人駕駛的汽車,機械人會儘量避免和周圍的東西產生衝突。但如果有一天,機械人需要穿上一件T恤,那它總得需要和T恤發生接觸。

「想像你正在穿一件T恤,」劉解釋道,「在某種度上你需要理解你和衣服的這種接觸,並利用從接觸中獲得的信息來正確判斷如何沿着正確的路徑移動手臂。」

「如果我們在做動畫繪製,那麼模型就比較簡單,因為現實中的有些東西可以被簡化。不過如果你想讓真的機械人做一些現實中的事情,」劉說,「那這項任務的性質就更困難了,因為我們將在一個非常有限的現實空間裏處理一個高度可變的物體。」

如果這種方法能幫助一個3D角色穿上一件模擬的T恤,也許未來,機械人也可以運用同樣的方法幫助殘疾人和老年人穿衣。

參考文獻

[1] Alexander Clegg, Jie Tan, Greg Turk, C. Karen Liu, Animating Human Dressing

責任編輯: 王篤若  來源:果殼 轉載請註明作者、出處並保持完整。

本文網址:https://hk.aboluowang.com/2019/0427/1281027.html