機器學習分類器在沈浸式環境之應用 — — 1. Unity Face Capture Tutorial

前言

QQAI
SWF Lab
8 min readApr 7, 2023

--

隨著 Virtual Reality 的發展,以及元宇宙概念的推廣,擁有一個屬於自己的虛擬角色並以其在虛擬世界中四處奔跑變成值得嘗試的事,也逐步有人推出 VR chat 這種透過虛擬實境頭盔,讓人沈浸在 3D 角色當中的大型多人線上遊戲。

不過虛擬實境頭盔畢竟不是人人有,要想體驗自己置身 3D 角色的感覺有另一種有幾分類似的體驗方式,也就是本篇教學的主旨。

今天這篇文章會利用 Unity 的小插件,手把手地教大家如何生成出一個簡單虛擬角色,並且即時地捕捉顯示你臉上的表情,而這項功能在我們這次的主題文當中,也會再結合其他技術衍伸出創新的應用。

感謝 CornExcitedMail 幫我 Review 這篇文章!( ̀⌄ ́)

正文

首先,要成功運用這篇教學,你需要有一台有下載 Unity 的電腦,跟一台有 Face ID 功能的 iOS 行動裝置。(一定要是 iOS,不然沒辦法下載到軟體 TUT)
至於哪些裝置有支援 Face ID 可以參考這裡

確認好設備以後,就開始正式的教學吧!

第一步當然是開啟一個新的 Unity 3D 專案,一打開你的場景應該會像下圖這樣空空的。

空的 Unity 3D 場景應該會是這個模樣。

然後我們要下載幫助我們進行 Face Capture 的套件,打開 Package Manager,找到 Add package from git URL。

Add package from git URL

輸入 com.unity.live-capture,按下 Add 開始下載。

記得確認輸入是否正確唷!

下載完以後打開 Live Capture 裡面的 Samples,會看到一個名為 ARKit Face Sample 的素材包,把他一起 Import 到專案裡面。

ARKit Capture 的旁邊有一個 Import 按鈕,按下去就可以了。

Import 完以後,就可以把 Package Manager 關掉,從 Window 裡找到 Live Capture,並開啟 Connections。

Connections 位置示意圖。

開啟以後按下 Add Connections 新增一個連線,新增完就會像以下這張圖,我們暫且不需要去調整設定。

設定可以先照著原本的預設值就好。

接著我們可以找到剛剛下載的 Asset 裡面名為 FaceCaptureSample 的物件,雙擊開啟以後切換到 Game 的視窗,會看到一個有五官但沒有頭髮的人臉。(注意!如果沒切換到 Game 視窗的話是沒辦法這麼即時地看到影像的!)

紅框標注的地方就是可以雙擊打開的 Unity 物件。

這裡調整好以後,就可以拿起手機到 App Store 下載 Unity Face Capture 的軟體。

App 的圖片裡也有示意教學,記得確認下載的 App 名字是否與這款相同喔!

下載完我們到電腦的 Unity 裡面先按下右上角的 Start。

但注意這時候你的手機跟電腦要連到同一個網路,等等才能順利連線喔!

Start 在右上角,按下去以後會切換成顯示 Stop,就代表啟動成功了。

Start 以後回來開啟手機端的 App,會跳出一些注意事項跟權限要求,按下一步就可以順利前行,到搜尋連線裝置這裡會順利跳出你電腦的名稱,按下 Connections 就會開始配對連線。

上頭會顯示你電腦的名稱,這裡就先塗掉我自己的了,連線成功以後會出現像是相機的畫面。

接著就可以在 Unity 的 Game 畫面上即時看到自己的表情啦!

畫面會隨著手機相機裡你的表情做變動。

如果你覺得這個光頭實在是太醜了,除了使用 Maya 跟 Blender 等 3D 建模工具建出自己喜歡的樣子以外,也可以到 Unity 的 Asset Store 下載 The Realtime Rascals Face Capture Character Pack 這個素材,並把他 Import 到專案裡面。(這個檔案稍微大了點,可能要等待一下!)

The Realtime Rascals Face Capture Character Pack 素材包。

打開他預設給我們的 Scenes,就可以看到可愛的動物模型。

這裡需要注意的是這個模組的燈光很多用到 HDRP 技術,所以安裝過程中可能會需要更新一些設定,按照他跳出的提示慢慢修正就可以了。

至於什麼是 HDRP 呢?全名是 High Definition Render Pipeline。

它是 Unity 在 2018 年以後新加入的一種渲染技術,提供高保真、高品質的圖形渲染效果,並且支持物理渲染(Physically Based Rendering,PBR),能讓物體在不同的光源和環境下呈現出更真實並細緻的光影效果。

同時 HDRP 也支持對螢幕空間反射(Screen Space Reflections,SSR)、體積光(Volumetric Lighting)、透視和近距離遮擋(Perspective and Occlusion)等效果的實時渲染,並具有非常高的自定義與擴展性,給使用者更多的彈性能去渲染出他們想要的材質、燈光和細節。

如果你對渲染有興趣的話,也可以更深入地研究 Unity 與 Unreal 兩大引擎勁敵在渲染上的競爭與費工,相信會有不少收穫!(當然,越高品質的渲染通常也會需要比較多的效能,如果設備不佳有可能會發生卡頓的現象)

經過 HDRP 渲染的熊貓場景。

總而言之,打開場景以後我們會看到在和煦陽光下站直的熊貓模型,接著仿照剛才做過的步驟,從 Window 開啟 Live Capture 的 Connections 並連線到手機。

連線到手機以後,熊貓就會像剛剛的人頭一樣跟著你的表情作出變動。

這時候我們就可以在比較可愛的模型上看到自己的臉部表情了,並且如果你有多部支援 Face ID 的手機,也可以多人一起捕捉表情喔!如果想要讓熊貓的身體跟著一起動,也能配合 Motion Capture 捕捉動作,讓你完全化身虛擬世界裡的熊貓。

不過 Motion Capture 需要的設備就不僅僅是手機了,這裡就提供其中一個 Motion Capture 的介紹連結給有興趣的大家可以去看看。

總結

將臉部表情和肢體動作即時捕捉,並呈現在虛擬環境這個技術,在未來元宇宙當中,很適合被拿來創建人物的大廳,讓大家能及時看到彼此的表情變化,或是在聊天室裡頭也能夠配合 Screen Capture,即時製造出表情貼圖發送。

當然還有更多的應用與技術等著大家去發掘,本篇文章只是淺淺將現有的技術做最基本的介紹並示範,不止是渲染,Motion Capture 還能衍伸出不同骨骼模組(skeleton)的研究主題,也都非常有趣,很歡迎大家多多探索這些領域,或許本該在 2022 年販售的刀劍神域也能被大家開發出來唷 (^○^)。

以上就是本次教學的內容,如果對這篇文章有疑問也歡迎留言告訴我與我討論,學海無涯,一起努力!(>人<;)

References

--

--