在 2024 年 9 月,Unity 的 Demo 團隊展示了一個全新的實時電影級 demo 《Time Ghost》。這個 demo 是基于Unity 6引擎制作的,采用了 Unity 6 中的一些新功能和技術能力,讓我們能夠實現前所未有的視覺品質和復雜程度。
在制作《Time Ghost》的過程中,我們意識到需要解決的一個問題是如何創建具有可信度的角色。這些角色需要穿著真實感很強的服裝進行激烈的動畫動作,因此布料材質的衣物要能夠根據角色的動作正確地變形和產生褶皺。
這并不是一個容易解決的問題,因為布料在 3D 中通常很難處理,常常成為破壞沉浸感和現實感的主要因素。為了避免傳統游戲中布料制作方法的局限性,我們需要采取一種不同的方案。
與此同時,我們知道 Unity 的工程團隊一直在開發一個實時推理引擎,可以在 Unity 運行時跨平臺運行,能夠充分發揮機器學習模型的潛力。
在這篇文章中,我們將分享 demo 的制作過程,解釋如何將傳統動畫工作流程與前沿的機器學習技術結合起來,從而提升實時角色動畫的品質和真實感,特別是在布料變形方面。
標準角色設置
由于我們的角色建模和骨骼綁定遵循了行業標準,因此可以將常規的動作捕捉數據應用到完成了骨骼綁定和蒙皮的角色模型上,并進行關鍵幀動畫。但為了讓主角的服裝動畫看起來更加真實,我們找到了一種更高級的解決方案,不是單純使用蒙皮網格和額外的 blendshapes。
基于機器學習的布料動力學
Sentis是 Unity 對神經網絡交換(Neural Network Exchange,NNX)框架的實現,是我們角色管線的核心。通過使用 Sentis,我們能夠利用自己的高質量離線布料模擬數據集訓練機器學習模型,并在運行時部署該模型。
數據集的構建
首先,我們為每個角色模型的動作表現創建了 70 個姿勢,可在 30 幀中從中性姿勢平滑過渡到最終的極限姿勢。
在Marvelous Designer中,我們模擬了基于圖案的布料,并能夠捕捉到這70個動作中的布料變形行為。
數據提取
接下來的步驟是提取偏差值(delta值),即皮膚網格和模擬網格之間的差異。這個計算可以在 Maya 或任何其他支持模型頂點數據的數字內容創作( DCC )軟件中完成。這個過程涉及到反轉蒙皮變形,同時要保持模擬變形的數據。
AI模型的設計與訓練
訓練運行時模型可以使用任何機器學習框架,只要它能夠轉換為ONNX格式(開放神經網絡交換格式)。最常用的框架有TensorFlow和PyTorch。在《Time Ghost》項目中,我們使用了TensorFlow 基于提取數據設計并訓練了一個自定義模型。
提取的數據被輸入到前饋神經網絡 (feedforward neural network,FNN) 中,以角色的關節方向作為輸入,然后基于偏差值 (delta值) 計算并輸出相應的頂點位置。
高效的數據管理和實時變形
在 Unity 中,變形數據被應用到蒙皮角色網格上,并通過分塊處理來維持一個小巧的運行時模型。
總的來說 ,我們可以在幾小時內將現有的布料模擬(在我們的案例中是 Marvelous Designer 中的模擬)轉化為 Unity 中的實時變形。對于《Time Ghost》,我們能夠將 2.5GB 的離線變形數據壓縮成一個47MB的模型。此外,由于 Sentis 在 GPU 上本地運行該模型,而且 GPU 上已存在蒙皮數據,因此我們可以在 GPU 上以0.8毫秒的速度變形12萬個頂點。
接下來的計劃
通過集成 Sentis,我們不僅提升了視覺真實感,達到了高度逼真和動態的變形效果,還提供了一種高效且能適應高質量游戲開發需求的工作流程。我們相信,類似的基于機器學習的工作流程將能夠解決一系列不同的制作問題,尤其是高質量輸出所需的數據量和實時處理預算之間的艱難平衡已經達到極限的情況。我們也在繼續實驗類似的工作流程,并計劃將其應用于未來其他領域。
此外,我們在使用 Sentis 時獲得的性能結果也蘊藏巨大潛力,因此我們已經開始研究是否可以將相同的流程應用于移動端開發。Unity 的工程師已經完成了一些初步驗證,確認 Sentis 可以在移動設備上運行我們的角色模型,并實現逼真的布料變形效果。雖然移動端游戲開發通常不會追求高保真度,但能夠將基于機器學習的方法應用到移動目標平臺,表示風格化動畫中的變形也能變得比以往更精細和美麗。
我們已經在Unity Asset Store中發布了《Time Ghost》demo 的兩個 Unity 項目,一個是環境場景,另一個是角色。如果你想親自體驗上述流程的效果,可以從 Unity Asset Store 下載《Time Ghost:Character》項目。
它包括一個 Unity 6 的示例場景,內有角色和基于頂點的變形模型。我們還提供了文檔,介紹了模型和訓練過程。你可以嘗試使用自己的角色模擬數據進行訓練,看看這種方法是否對你的項目有所幫助。
角色示例中還包含了我們開發的毛發系統(Hair System),這個系統是Unity Originals在過去幾個demo(《異教徒》、《Enemies》和《Time Ghost》)中逐步開發完成的。
Sentis 現已隨 Unity 6 發布,點擊回顧。Sentis 可以導入、優化和運行 AI 模型,具有真實世界交互、更智能的游戲玩法構建與出色游戲特效三大核心功能。歡迎下載體驗 Unity 6,體驗更快的渲染速度、更先進的光照選項、無縫的多人游戲工作流、增強的 AI 功能,以及對移動端 Web 運行時的改進支持。
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.