概述
本文將從零開始介紹如何創(chuàng)造并驅(qū)動(dòng)數(shù)字人,最后通過AI換臉實(shí)現(xiàn)虛擬制片。效果如下:
數(shù)字人驅(qū)動(dòng)
換臉憨豆先生
數(shù)字人簡介
數(shù)字人(Digital Human/Meta Human),是運(yùn)用數(shù)字技術(shù)創(chuàng)造出來的、與人類形象接近的數(shù)字化人物形象。數(shù)字人可簡單的分為2D數(shù)字人和3D數(shù)字人。本文使用的數(shù)字人是通過MetaHuman Creator制作工具生成的3D數(shù)字人。3D數(shù)字人的驅(qū)動(dòng)方式可簡單的分為真人驅(qū)動(dòng)和模型驅(qū)動(dòng)。本文使用的驅(qū)動(dòng)方式為真人驅(qū)動(dòng)。
AI換臉簡介
AI換臉指的是通過AI人工智能技術(shù)把原視頻或圖片的人臉換成其他的人臉。本文使用目前最新的roop換臉工具,通過一張照片,把數(shù)字人的臉換成憨豆先生。現(xiàn)在比較主流的換臉技術(shù)還有deep facelab和SimSwap。
實(shí)現(xiàn)
準(zhǔn)備工作
首先需要下載虛幻引擎作為數(shù)字人的編輯器。其次要在虛幻引擎庫中下載MetaHuman插件。對(duì)于數(shù)字人驅(qū)動(dòng)還需要一臺(tái)XR級(jí)別以上的蘋果手機(jī),下載Live Link Face app。對(duì)于AI,需要搭建Python環(huán)境。
數(shù)字人創(chuàng)建
首先打開虛幻引擎創(chuàng)建一個(gè)項(xiàng)目。本文使用的版本的UE5.0。
項(xiàng)目創(chuàng)建
之后導(dǎo)入一個(gè)立方體模型。然后選擇一張想做為虛擬人基底的照片導(dǎo)入到UE。本文選擇的是憨豆先生的照片。右鍵點(diǎn)擊基地照片選擇創(chuàng)建材質(zhì)。
材質(zhì)創(chuàng)建
然后雙擊立方體模型將生成好的材質(zhì)拖到材質(zhì)插槽中。
添加材質(zhì)
點(diǎn)擊上方編輯->插件,搜索MetaHuman插件并勾選。
添加 MetaHuman 插件
添加完插件之后在內(nèi)容瀏覽器中右鍵->MetaHuman->MetaHuman 本體。
創(chuàng)建 MetaHuman 本體
進(jìn)入 MetaHuman 本體插件之后,選擇網(wǎng)格體中的組件,將之前的立方體導(dǎo)入。之后移動(dòng)視角,把立方體的一面正對(duì)屏幕。接著依次點(diǎn)擊提升幀->追蹤活動(dòng)幀。結(jié)果如下:
模型關(guān)鍵點(diǎn)確認(rèn)
我們可以通過移動(dòng)綠色的點(diǎn)矯正人臉關(guān)鍵點(diǎn)。確認(rèn)關(guān)鍵點(diǎn)無誤之后點(diǎn)擊右側(cè)身體選擇一個(gè)合適的模版。最后選擇網(wǎng)格體轉(zhuǎn) MetaHuman 上傳模型到 MetaHuman Creator 進(jìn)行下一步操作。
上傳模型
上傳完畢后,進(jìn)入到MetaHuman Creator。
MetaHuman Creator
可以看到左側(cè)有許多捏臉的設(shè)置,可以對(duì)我們的模型進(jìn)行微調(diào)。
模型微調(diào)
我們的模型在頭頂部分存在異常,原因可能是正面沒有對(duì)好,所以我們在自定義網(wǎng)格體選中頭頂調(diào)整區(qū)域影響,將頭頂恢復(fù)正常。
自定義網(wǎng)格體微調(diào)
當(dāng)模型調(diào)整完畢后重新返回虛幻引擎,點(diǎn)擊上方快速添加到項(xiàng)目->打開Quixel Bridge->下載模型
模型導(dǎo)入
模型下載
模型下載完畢之后點(diǎn)擊add添加到項(xiàng)目中,并重啟項(xiàng)目。之后將人物模型拖到場景中,模型的位置在 ALL/內(nèi)容/MetaHumans。
數(shù)字人驅(qū)動(dòng)
驅(qū)動(dòng)數(shù)字人的方式我們采用真人驅(qū)動(dòng)的方式,使用蘋果手機(jī)的攝像頭獲取臉部變形數(shù)據(jù),通過 Live Link Face 連接虛幻引擎和手機(jī)。首先我們打開 Live Link Face ,模式選擇 Live Link(ARKit),進(jìn)入后點(diǎn)擊左上角設(shè)置,再點(diǎn)擊流送添加目標(biāo),輸入電腦的IP地址。電腦和手機(jī)需要在同一個(gè)局域網(wǎng)內(nèi)。之后打開我們的虛幻引擎項(xiàng)目,點(diǎn)擊窗口 -> 虛擬制片 -> Live Link,添加我們的連接。
設(shè)置連接
勾選 Live Link
設(shè)置完 Live Link 以后,打開內(nèi)容瀏覽器->MetaHumans->Common->Face->Face_AnimBP 動(dòng)畫藍(lán)圖。之后點(diǎn)擊左下角的動(dòng)畫圖表,然后在選中 LLink Face Subj,將默認(rèn)值改為我們的 Live Link 連接。然后點(diǎn)擊左邊頭像的小圓點(diǎn)錄制我們的嘴形動(dòng)畫。錄制完畢后保存動(dòng)畫。
Face_AnimBP 動(dòng)畫藍(lán)圖
返回我們的世界主頁添加關(guān)卡序列。
添加關(guān)卡序列
點(diǎn)擊軌道->Actor到Sequencer->你的虛擬人。把虛擬人添加到關(guān)卡序列,然后刪除 Face 中的 Face_ControlBoard_CtrlRig。
關(guān)卡序列
然后點(diǎn)擊 Face 的+軌道->動(dòng)畫->錄制好的動(dòng)畫。添加完畢后,選擇將此影片渲染為視頻或圖像幀序列。我們選擇 JPG 格式圖像導(dǎo)出,如果使用 AVI 格式導(dǎo)出視頻會(huì)在 AI 換臉部分出現(xiàn)問題。
添加動(dòng)畫
數(shù)字人虛擬制片導(dǎo)出
至此我們的數(shù)字人虛擬制片已經(jīng)完成。完成之后,發(fā)現(xiàn)自己捏的數(shù)字人太丑了,因此我決定再加一步換臉,讓我們的虛擬人變得更加生動(dòng)。
AI換臉
我們在命令行中打開下載好的 roop 的位置,通過命令 python run.py --execution-provider cuda 啟動(dòng) roop 的換臉界面。添加目標(biāo)選擇憨豆先生的一張照片,再選 target 添加我們生成的 JPG 文件夾,然后關(guān)閉 Keep audio,點(diǎn)擊 Start 生成換臉視頻。
roop 界面
圖片
憨豆先生換臉 最后我們就獲得了一個(gè)逼真的數(shù)字人虛擬制片。