杜昊昊 韓菲琳
1.北京電影學院中國電影高新技術研究院,北京 100088
2.北京電影學院影視技術系,北京 100088
虛擬角色運動控制在動畫、電影、電視劇、舞臺表演等方面發揮著重要作用。近年來,虛擬角色在演唱會、直播、社交媒體等領域的廣泛應用,也為其創造了移動互聯網等眾多新的應用場景和需求。后疫情時代線上社交、XR 演唱會、VR、AR、元宇宙等產業飛速發展,虛擬人的應用場景日益豐富。虛擬角色運動控制涉及虛擬角色建模、動作捕捉、三維掃描、計算機視覺等,服務于展現流暢、自然的虛擬人動作,制作豐富、多樣的虛擬人動畫,具有十分重要的研究意義。
傳統的動作捕捉系統在電影、游戲、舞臺直播等各方面均有較為成熟的運用,適合動作精度要求高、表演細節豐富的應用場景。圖1 (1)為2009年上映的電影《阿凡達》,通過在演員、馬匹及道具上粘貼標記點,實現虛擬角色的動作捕捉,并結合虛擬拍攝系統實現虛擬角色的實時監看;圖1 (2)為游戲《英雄聯盟》的衍生虛擬女團K/DA,在英雄聯盟2018 年賽季全球總決賽開幕式舞臺上,以AR 形式與真人歌手同場登臺演唱歌曲POP STAR,圖1 (3)為真人替身演員為POP STAR 的現場表演進行動作捕捉數據采集;圖1 (4)為游戲《生化危機·村莊》,借助真人表演捕捉來制作游戲過場動畫,以期達到恐怖逼真的視覺效果。當虛擬角色造型或表演需要夸張時,也常由動畫師在三維軟件中制作動畫,如游戲 《馬里奧的折紙王國》中玩家控制的虛擬角色,其動作來自動畫師制作的角色動作庫,再借助引擎實現玩家交互式運動控制等。

圖1 動作捕捉在影視制作中的應用示例
影視級動作捕捉系統通常需要演員在動作捕捉攝影棚中表演并穿戴專業設備,價格十分昂貴,而且空間受限。當影視作品涉及大量虛擬角色群戲場景時,如動作相似且規模龐大的戰斗場面,其群演群體動作的獲取,若采用動作捕捉方案,耗費人力物力;若由動畫師制作,則需較長工期;若采用程序化動作生成,其生成結果往往不夠真實自然。隨著元宇宙產業的發展,虛擬角色動作驅動的需求也下沉到更多移動端用戶,常可見于QQ 秀、淘寶虛擬客服等功能,在移動端開放用戶可自選的動作庫。因此提出成本更為低廉、數據獲得更為便捷但同樣可以達到效果需求的動作捕捉方案具有廣闊的應用空間。
隨著計算機圖形學、深度學習的發展,從圖像或視頻中獲取能夠驅動虛擬角色數據信息的技術方法越來越豐富,三維姿態估計作為一種更為高效、易操作、成本低廉的動作捕捉方案,使得上述設想成為可能。本文基于上述的行業需求以及目前虛擬人建模、動作捕捉的技術現狀提出了一種基于三維姿態估計的虛擬角色運動控制方法。
虛擬角色的驅動實驗首先需要獲取虛擬角色模型,目前對于虛擬人的建模制作有多種方式,較為常用的建模類型有:基于三維軟件的創作型建模;基于三維掃描設備的捕獲型建模;基于二維圖像的擬合型建模;基于數據庫及數字人編輯器的參數化建模。[1]
本實驗中采用的虛擬角色建模方式,是基于數據庫和數字編輯器的參數化建模。此方法需建立一個包含各個人體部位的數據庫,包含不同形體的人體模型和各類人體部位。通過查找最近似的人體模型預設,編輯、調整和修改各部位參數,從而得到一個定制化三維人體模型。目前此類方法最常用的工具有Meta Human Creator、Character Creator 3、Daz 3D 等。此類方法依賴于用戶的觀察力和經驗,以及工具的參數化程度,參數化程度低會影響用戶修改人體模型的自由度,參數化程度高會需要大量時間修改參數且依賴用戶的制作經驗。
Meta Human Creator為目前較為廣泛使用的工具之一。首先通過掃描得到大量的真實人類面部信息,通過人工智能和機器學習處理數據,提取出每個角色的特征點信息,以DNA 數據格式存儲,用于描述角色的外觀、骨骼綁定。借助Unreal Engine(UE)的GenePool數據庫,將用戶的捏臉交互操作,轉換為在GenePool數據庫中進行檢索與混合,避免了傳統捏臉算法的幾何約束計算,能夠在較短的時間內制作出更真實自然的人臉模型,大大降低用戶操作門檻。基于用戶捏好的數字角色,也會生成一份獨一無二的DNA 數據。該工具采用像素流送(Pixel Streaming)技術在云端服務器上運行UE應用程序,通過WebRTC將渲染的幀和音頻流送到瀏覽器和移動設備,在云端UE 中制作的數字人也能夠導出到本地UE 中使用,大大降低了用戶的硬件門檻,真正實現所見即所得[2]。
動作捕捉技術最早起源于動畫領域,隨著科技的發展,動作捕捉的技術手段越來越豐富且在電影、游戲、VR 等各行各業均有十分廣泛的應用。目前已發展出多種多樣動作捕捉解決方案,根據輸入方式的不同,可以分為基于外設捕獲運動數據的方式,如使用視覺傳感器和慣性傳感器的方法,以及基于內在生理視覺數據的時序性識別方案。在使用外設的動作捕捉技術中,根據設備檢測方式的不同,可以分為光學式和慣性式;在可穿戴式人體動作捕捉方法中,根據傳感器的不同,可以分為基于IMU(Inertial Measurement Unit)慣性傳感器、RGB攝像頭、深度攝像頭或紅外傳感器等[3]的動作捕捉方法。
本實驗中使用的虛擬角色三維姿態估計的方法則是基于計算機視覺的動作捕捉方法。根據數據來源不同可分為:基于深度圖像的方法、基于紅外圖像的方法、基于RGB彩色圖像的方法以及基于多模態數據融合的方法。根據圖像采集方式可分為:基于單目視覺、基于雙目視覺和基于多視圖融合。對于單目視覺人體動作數據獲取方法,按照算法處理過程可分為:二步法、直接法、端到端等[4]。隨著移動端的發展和短視頻時代的到來,實現了不受場地和設備限制的動作捕捉方式。基于單目圖像的二維姿態估計技術相對成熟,對于三維姿態估計而言,缺少深度信息,從單目視覺信息恢復人體三維姿態具有不確定性和任意性,較難直接得到關節之間的轉換矩陣等運動信息,人體骨骼關節點解算需進行一定的假設和逆向運動學求解。同時對于動作數據的提取,需要完成動作的時序性建模與識別,才能提取出連貫的動作信息。本文選取Deep Motion 方法參與三維人體姿態估計,用于從視頻數據中獲取三維動作數據。
該實驗流程主要包括:二維動作視頻篩選、三維動作數據提取、虛擬角色制作、虛擬角色驅動,如圖2所示。首先篩選視頻源,選取清晰且包含人體運動的片段,用于三維動作數據提取,然后借助三維姿態估計工具進行分析解算,將得到的三維動作數據映射到目標虛擬角色已綁定的骨骼結構,以實現虛擬角色的動作驅動。在此實踐方案中我們采取Deep Motion作為三維姿態估計工具,采用Meta Human Creator生成目標虛擬角色,最后在UE5中完成動作的重定向實現虛擬角色的動作驅動。

圖2 基于視頻的虛擬角色動作驅動方法
目前,基于視頻的動作提取工具主要有Deep-Motion 的Animate 3D、PixCap、Plask、RADICA、ThreeDPoseUnity Barracuda、CMU Open-Pose、Vibe等,本文獲取三維動作數據主要采用Deep Motion的Animate 3D 功能。Deep Motion基于AI技術,實現從二維視頻獲取BVH/FBX 格式的三維動作數據,可用于虛擬角色模型運動重定向并生成三維虛擬角色動畫,能夠實現物理模擬、足部固定、變速控制、全身動作及面部手部動作追蹤等功能。Deep Motion提出了一種基于軌跡優化、深度增強學習的高效處理流程,能夠對包括胯下運球、交叉運球等各類運球方式進行魯棒性較高的學習和動作控制[5]。目前在Deep Motion 平臺上也開放了手部動作數據的檢測提取功能。
對于Deep Motion 而言,想要得到最優的動作質量,對人體動作視頻源素材有以下幾點要求:(1)視頻拍攝機位需固定且平行于拍攝人物;(2)全身或從頭部至腰部的上半身應清晰可見,在距攝影機2~6米的距離最佳;(3)與背景有強對比的中性光照條件為佳;(4)被攝人物應不被任何物體遮擋,同時應在視頻片段中只有一名人物;(5)不要穿著會遮擋膝蓋、手肘等關鍵關節的寬松衣物;(6)對于臉部、手部的追蹤在僅有上半身的模式最佳。因此在進行視頻信息的輸入時,便需要進行一定的篩選。如圖3所示,篩選后的視頻上傳后根據輸出需要進行處理方式的選擇,最后進行三維動作生成。如圖3為Deep Motion 的操作界面,可根據動作數據提取的需要進行相應的設置,包括輸出格式的設置(選定BVH、FBX、MP4等),骨骼根節點設置(確保在UE5中骨骼的復用),物理過濾設置(使運動解析結果更加平滑穩定),面部、手部的動作捕捉,是否只有上半身等。在本次實驗中我們采取如圖3所示的參數設置,在進行對視頻動作的解析前,會進行參數設置的確認。

圖3 Deep Motion操作界面
為驗證本文方法的有效性,我們設計了虛擬角色運動控制實驗,采用了經典電影的動作片段、個人拍攝動作片段、學生電影短片動作片段等作為視頻源進行動作提取。在實驗前期獲取視頻素材時,個人拍攝的動作片段較為容易滿足上述條件。成片電影中,往往需要通過非線性編輯展現豐富的拍攝手法,借助視聽語言表達其視覺藝術特性,只有較少量視頻素材滿足上述要求,若需應用在電影拍攝中,應當架設專門的機位用于動作捕捉。對于舞臺表演來說,通常有記錄單人舞臺的直拍素材,非常適合使用此類動作捕捉流程。
本實驗的虛擬角色使用Meta Human Creator進行制作。在Meta Human Creator中創建虛擬角色,既可以直接采用預設對虛擬角色進行面部修改,也可以采取本實驗應用的Mesh to Meta Human方法得到自定義的虛擬角色。頭部網格體借助Polycam照片采集方法,獲得真實人物的頭部模型。
本文采用的虛擬角色制作流程如圖4所示。首先,通過Polycam 采集真實人物照片,并得到人物頭部模型的初步結果。在進行照片掃描時需注意以下事項:(1)保證五官清晰可見,無雜亂的毛發遮擋,額頭的碎發會影響后續Meta Human面部網格體的生成;(2)選擇光線均勻柔和的光源環境;(3)每張相鄰的照片保證有50%以上相同的特征點;(4)Polycam 至少需要采集20 張才可進行處理。Polycam 處理照片得到的模型如圖4中第二步,系多個網格體的拼接結果,存在部分雜亂的背景網格體,會對后續的數據解析造成干擾。因此,在第二步,需要將得到的網格體使用Blender進行預處理。第三步,將處理后的頭部網格體導入UE5中,使用插件對其進行Meta Human 的本體解算和Mesh 轉Meta Human。第四步,在Meta Human Creator中預覽Meta Human的自定義網格體,并對面部細節進一步調整。最后,使用Meta Human Creator指定虛擬角色的發型、皮膚、服裝等紋理和材質,生成完整的虛擬角色模型,其自帶的骨骼綁定可以直接用于動作重定向。

圖4 虛擬角色制作示意圖
通過在UE5中重定向的方式,將Deep Motion提取出的三維動作數據映射到Meta Human 骨骼,實現完整的虛擬角色驅動流程。該重定向步驟如圖5、圖6所示,在UE5 中由IK 綁定 (IK Rig)和IK 重定向器(IK RTG)來實現。

圖5 虛擬角色IK Rig骨骼序列

圖6 虛擬角色IK 重定向器界面
實現動作重定向,設置Deep Motion 提取得到的動作骨骼作為源IK Rig,以及Meta Human的骨骼鏈作為目標IK Rig,需保證兩者IK Rig的骨骼鏈完全一致,實現關節點的一一對應,如圖5 所示。本實驗中應用的IK Rig以骨盆處的關節點為根節點,包含root、Head、Spine、Arm Left、Arm-Right、Leg Right、Leg Left共7條重定向鏈,18個關節點。在重定向器中(圖6)指定源IK Rig和目標IK Rig。由于Meta Human 的初始姿態為Apose,需在映射前將其調整為與源骨骼一致的Tpose,在資產瀏覽器中將源IK Rig的動畫序列導出為目標IK Rig的動畫序列,即可得到Meta Human的動畫序列資產。在UE5中有多種驅動虛擬角色運動的方式,如動畫藍圖、狀態機等,本實驗使用Sequencer給虛擬角色添加動畫軌道,以實現虛擬角色的動作控制。
本實驗選取12 段時長在5~20s的視頻,共4024幀動作數據,用作三維動作數據提取。在視頻的選取時,應盡量遵循3.1所述的要求。視頻來源包括:經典電影作品《愛樂之城》《芳華》《低俗小說》等出現的舞蹈動作、網絡視頻以及實驗拍攝的固定鏡頭視頻。視頻素材使用分辨率為1920×1080,電影素材幀率24FPS,實驗拍攝及網絡視頻素材幀率為30FPS,對虛擬角色的驅動效果如圖7所示。

圖7 虛擬角色運動控制結果示意圖
實驗結果表明使用此方法可以滿足絕大多數情況下在虛擬角色上復現視頻動作的需求,但也存在一定問題。測試表明,相較于一段20s舞蹈動作片段,將其分割為短動作片段 (如5s左右),會具有更好的動作識別效果。通過分析虛擬角色運動控制實驗結果,本文發現,舞蹈動作中裙擺的擺動對動作識別有一定干擾。在存在兩個人物的視頻中,當人體動作沒有被遮擋且鏡頭較為穩定時,同樣可以識別得到較優的動作效果,但只能識別單人人物動作,被識別的人物是隨機的。由于實驗拍攝和網絡視頻,較容易滿足鏡頭穩定、全身、與背景對比度相對較高、關節清晰等要求,因此選取了幾段高難度舞蹈動作片段,實驗結果表明,夸張四肢動作識別效果較好。對于涉及靈活的手腕和腳踝局部動作,識別效果較差,容易出現局部扭動等違反運動規律的變形,在動作平滑度和連續性方面,也會存在關節跳變。運動過程中若存在肢體交叉,容易出現前后關系的誤判,人體旋轉時也會偶有漂移和抖動,若將視頻源幀率降低會得到更準確的識別結果。
本文提出了一種基于三維姿態估計的動作數據提取方法,并實現虛擬角色的運動控制,從動作視頻篩選、三維動作數據提取、虛擬角色制作、虛擬角色動作控制等方面,闡述了技術流程及操作方法。本文設計了虛擬角色運動控制實驗,選取12組測試動作樣片的4024幀人物運動幀,提取動作數據,并對虛擬角色運動控制方法進行驗證。實驗結果表明,該方法能夠一定程度滿足應用需求,相較于傳統的運動捕捉技術具備操作便捷、成本低廉、對空間不設限等優點,十分適合在移動端和預演場景的應用。
目前此方法仍存在不足,獲取的動作在精度、自然度、流暢度、穩定性都有待進一步提高,仍無法滿足影視級虛擬替身動作控制的需求。未來,隨著基于單目圖像的三維姿態估計方法的能力提升,精度更高、速度更快的動作捕捉方法,將會大幅拓寬該方法的應用場景,在直播、影視、游戲、交互、VR 等更多領域達到降本增效的效果。