文章插圖

文章插圖
數字人、虛擬形象的開發逐漸成為了新興的技術議題,除了用于虛擬真人類形象,數字人的開發技術也能讓角色表情更加生動,并且與觀眾互動 。近期,Unity 技術團隊制作了一個數字人Demo,很多業內人士都對此表示很有興趣 。
【unity人物模型導入新場景,會一直下降且穿模 unity怎么導入人物模型】在Unity技術開放日-上海站上,Unity技術美術團隊和技術團隊就為大家介紹了這套基于 Unity的數字人生產流程 。本文截取了其中的重點內容,如果你對數字人感興趣不妨繼續讀下去 。
虛擬人頭發渲染
渲染這里首先要做的第一件事,就是用機器掃描一位真人 。
在設置我們可以將不同的配置進行分組,每個配置文件都可以調細節 。頭發工具共分三個主要區,一個控制頭發生成,一個控制頭發動態,最后一個控制頭發顏色, 美術師可以設計自己的組, 另外發尾部分的寬闊度也是可以動態調整的 。
整個過程很簡單,首先要根據FaceCode標準掃描極限表情,由模特在光場設備里做出那些表情,并被拍攝下來 。剩下的事就是關于模型清理工作了,目前這部分也可以交給AI 算法來做從而實現節省人力的目的 。
當我們清理出模型之后便需要開始做BlendShap(以下簡稱BS)拆分,關于這一部分方法有很多 。FACS 在理論上人支持60個極限表情,從解剖學上講,這60個表情可以非線性地組合出任意表情 。但是我們做表情對話時,沒辦法只用60個表情就做出所需的所有表情 。因此,這就涉及到BS拆解過程了 。拆解的數量,與用戶想追求的精度相關,也跟成本相關 。在此項目中僅僅掃描了45個有代表性的極限表情,并拆分出了300多個BS 。
有些算法有可能會進行重復拆解 。實際上BS和BS不是完全疊加而回歸到極限表情,它可能有些加和減的關系 。如果AI將BS拆解成這樣時就可能需要人為進行修正 。比如一個嘴唇往下的動作是幾個 BS 的組合,但是有一個BS是凹進去的,那么這個凹進去的就需要人為進行修正 。因為這些極限表情和別的表情組合的時候會出問題 。出現這種問題的時候,就需要人為進行修正,因此自動拆的算法還需要演進 。
我們可以把表情貼圖簡單地劃分為表情和微表情 。表情上結構性的變化需要做在模型上,有些因為結構性變化而產生的擠壓的紋理性變化的話,則需要做成貼圖 。貼圖是Winkle Map,它是一 Normal的表情貼圖,在不同表情間可進行切換,一張臉上往往會有五六張Winkle Map 。
流程上還有修貼圖,除了Winkle Map,還有一個Blood Flow Map(血流圖),當你臉皺起來后,因為收擠壓,某個地方的血流圖會發生改變,那么這個地方的顏色會變深,這個表現在微表情中,也算在貼圖中 。所以關于微表情的貼圖有兩套,Winkle和Blood Flow,這是比較常規的操作 。
這里是我們發現可以繼續迭代的地方,修模型的部分,如果有足夠的美術資源,其實是不用考慮算法的問題 。
最后有關數字人的生態流程還有幾個問題,一個是真人掃描數據的處理,就是模型的重建,那就會牽扯到算法的事;一些掃描得不太好的地方要修;還有就是貼圖的重建 。項目中出了剛才提到的兩張貼圖 Winkle Map 和 Blood Flow Map,其實我們還有一張提供顏色的圖,Color Map 。現在的設備都有偏正光,所以它會給你偏正的結果,但是實際上用戶也要去做類似Delighting 的事,才能夠得到一個沒有光照的結果 。
還有就是關于faceCode的掃描數據,目前我們能見到的虛擬人都是這樣做的,就是模特去表演faceCode里的表情 。做完之后進行BlendShap、Winkle Map、Blood Flow Map以及Face Rigiging的制作 。而目前Face Rigiging 沒有一致的標準,基本上是用戶自己定義標準,能實現一個合理的、容易做動畫的搭建就可以了 。如果沒有高質量的模型capture前提下,做動畫很多時候還是需要人工手動修出來的,所以Face Rigiging這一步非常重要 。
表情驅動會有一套控制器,人臉上有很多點,這里是參考 Unity 國外團隊做《異教徒》項目的那一套來做的 。傳統做動畫的方式就是上文中提到的以人工修幀為主的方式,還有面部驅動的方式,下一步Unity還將在這些流程之中試著加入一些AI的算法來優化整體流程 。
下圖是通過掃描得到的模型 。我們可以清晰的看到在圖中有這樣那樣各種問題 。就是說我們雖然也是非常高精度的攝像機,基本攝像機有三套,一個負責顏色,一個負責光學,還有一個負責高速攝像,這三套相機可以提供人臉重建的非常高面素的mesh,但是拿到的 Geometry 也會有這樣的問題,就比如像我們拿到的頭是左邊那樣子的,但是模型的眼睛基本上全部壞掉了,這就需要建模師把它給手工修出來 。還有耳朵也有可能是壞掉的,總之,掃描出來的模型會有很多壞掉的地方,這就是修模型時候后期要處理的事 。
要想制作表情,就需要遵循以下步驟:
第一步,是先Remove掉那些我們不想要的Geometry,這里包含上文中說到的眉毛、眼睫毛這些,還有一些噪點,因為它掃出來的那個面素是一個巨大的開銷,所以我們需要清理掉它 。
第二步,在清理掉它之后,我們需要重拓撲,現在大家重拓撲都會用3D軟件來做 。
這里我們加Subdivide base mesh的原因是因為清理之后有一些地方需要增加細節,比如眼皮的地方,如果是雙眼皮,一定是把它給疊起來的,因為在將來做動畫時一定會有閉眼的時候 。所以在眼皮處的Mesh的段數要加多一些,然后再去掉一些噪聲和進行一些細節處理就可以了 。
- cba賽程 cba
- Unity 手冊 unity3d手冊手機版下載
- 歷史上的侯君集是個怎樣的人物 為什么幫著李承乾謀反
- 陳思進到底是什么人物 陳思進是什么人物
- 多行不義必自斃指的是哪個歷史人物 多行不義必自斃指的是哪個歷史人物
- 歷史人物 負荊請罪的歷史人物是誰
- 皓鑭傳絲蘿結局是什么 歷史上成蟜的生母厲害的人物
- 蕭海升是真實人物嗎 跟杜月笙的人生經歷不謀而合
- 人物描寫 人物的描寫方法有幾種
- 代表人物 戊戌變法代表人物
