<dl id="llxdb"></dl>
<video id="llxdb"><output id="llxdb"></output></video><dl id="llxdb"><output id="llxdb"></output></dl>
<output id="llxdb"></output>
<noframes id="llxdb"><dl id="llxdb"></dl>
<video id="llxdb"></video>
<output id="llxdb"><delect id="llxdb"><font id="llxdb"></font></delect></output>
<video id="llxdb"></video><dl id="llxdb"><output id="llxdb"></output></dl>
<dl id="llxdb"><delect id="llxdb"><font id="llxdb"></font></delect></dl><video id="llxdb"></video><dl id="llxdb"></dl><dl id="llxdb"><output id="llxdb"><font id="llxdb"></font></output></dl>
                          您的位置:首頁 >聚焦 >

                          快報:用 UE 虛幻引擎做個捏臉小功能~~

                          2022-10-24 22:17:49    來源:程序員客棧

                          最近在學習 UE 相關的使用,正好看到一篇文章講解用 Control Rig 實現簡單捏臉功能,這種小而美的完整案例挺適合來練手的,涉及到了 UI、藍圖、動畫、骨骼等方面,值得推薦一下。

                          從這個小功能出發,在學習其他內容時如果有個簡單案例可以將一系列功能點都串起來,那么往往會起到事半功倍的效果。


                          (資料圖片僅供參考)

                          正好我也實現了一個簡單捏臉效果,視頻號里分享一下:

                          歡迎大家關注我的視頻號,后續考慮更多地以視頻形式來展示內容。

                          接下來就是這個捏臉功能的實現邏輯了。底層的實現很復雜,很多都是由 UE 虛幻引擎來提供的,但是理論上的實現很簡單,體現在個人上更多的是操作經驗。

                          UE 在導入人物模型時會帶有一個骨架,如下圖所示。人物的行動就是由一根根骨骼的變化來實現的,而面部的捏臉調節也是基于這一點。通過改變臉部相關骨骼的位置從而實現面部的變形,間接達到一個類似捏臉的效果。

                          由于不會 3D 建模,使用了 UE 提供的免費模型。圖上這個就是 "虛幻爭霸:心菲" 模型了。
                          想要調節人物的骨骼,就要用到 Control Rig 插件功能了。它是一套骨骼綁定系統,可以對人物的骨骼建立相關的控制點,然后通過調節控制點的變換,就實現對骨骼的變換啦。

                          如下圖所示,針對眉毛、眼睛、鼻子、臉頰、嘴唇這五個部位建立了相應的控制點。

                          控制點的性質、顏色以及位置都是可以調節的,建立的時候要選擇好相應的骨骼位置。
                          這個地方其實挺考驗審美的,因為我只是寫個小功能,就沒有用到很復雜的骨骼,但是很逼真的調節效果就需要反復打磨骨骼模型以及控制點了。

                          然后就是在藍圖中把骨骼和控制點的變換進行關聯,并且暴露相關的調整參數讓外部進行調整。

                          由于 UE 的很多功能都是由藍圖來實現的,也不太好貼代碼,就只能貼個藍圖的連接了,比拼一下誰的藍圖連線方式更優雅~~

                          完成了骨骼和控制點的綁定之后,就可以在動畫藍圖中設置人物的姿勢是由 Control Rig 調整后的姿勢(哪怕就是調整了個臉部)。

                          在動畫藍圖中增加了幾個變量去調節 Control Rig 中控制點的范圍,這幾個變量的值是由 UI 界面中的滑竿來調節的,并且在動畫每次更新時都會更新這些值。

                          這里用代碼來實現了 UE 中的一個子系統 FaceEditSubsystem ,主要功能就是用來存儲數據的值,并且它可以在動畫藍圖和 UI 藍圖中訪問到,這一點很重要,否則這兩個藍圖無法建立數據上的關聯了。

                          接下來就是設置 UI 界面了,和用 Android Studio 操作界面差不多,拖一下控件綁定相關事件就好,具體效果就和上面視頻展示的一樣了。
                          完成了上面全部功能之后,再把相機位置調整一下對準人物的臉部,就可以看到運行效果啦。

                          總結一下整體的實現就如上面所說,UE 虛幻引擎提供的功能很強大,強大到只要熟練一點使用就可以實現一點小功能了,而這些功能的實現都可以不需要一行行代碼的。

                          那么問題來了,在這種情況下,程序員學習 UE 怎樣才能算是有自己的獨特競爭力呢?莫非要比拼對 UE 軟件的使用熟練度嗎?那反而還失去了程序員的編碼能力,恐怕還是要深入其源碼,研究更多的底層功能實現。

                          最后歡迎大家加入 音視頻開發進階 知識星球,這里有知識干貨、編程答疑、開發教程,還有很多精彩分享。

                          更多內容可以在星球菜單中找到,隨著時間推移,干貨也會越來越多?。?!

                          給出 10元 優惠券,漲價在即,目前還是白菜價,基本上提幾個問題就回本,投資自己就是最好的投資?。?!

                          加我微信 ezglumes ,拉你進技術交流群

                          關鍵詞: 虛幻引擎 如下圖所示 技術交流

                          相關閱讀

                          Av久草
                          <dl id="llxdb"></dl>
                          <video id="llxdb"><output id="llxdb"></output></video><dl id="llxdb"><output id="llxdb"></output></dl>
                          <output id="llxdb"></output>
                          <noframes id="llxdb"><dl id="llxdb"></dl>
                          <video id="llxdb"></video>
                          <output id="llxdb"><delect id="llxdb"><font id="llxdb"></font></delect></output>
                          <video id="llxdb"></video><dl id="llxdb"><output id="llxdb"></output></dl>
                          <dl id="llxdb"><delect id="llxdb"><font id="llxdb"></font></delect></dl><video id="llxdb"></video><dl id="llxdb"></dl><dl id="llxdb"><output id="llxdb"><font id="llxdb"></font></output></dl>