用 UE 虛幻引擎做個捏臉小功能~~
最近在學(xué)習(xí) UE 相關(guān)的使用,正好看到一篇文章講解用 Control Rig 實現(xiàn)簡單捏臉功能,這種小而美的完整案例挺適合來練手的,涉及到了 UI、藍(lán)圖、動畫、骨骼等方面,值得推薦一下。
從這個小功能出發(fā),在學(xué)習(xí)其他內(nèi)容時如果有個簡單案例可以將一系列功能點都串起來,那么往往會起到事半功倍的效果。
正好我也實現(xiàn)了一個簡單捏臉效果,視頻號里分享一下:
歡迎大家關(guān)注我的視頻號,后續(xù)考慮更多地以視頻形式來展示內(nèi)容。
接下來就是這個捏臉功能的實現(xiàn)邏輯了。底層的實現(xiàn)很復(fù)雜,很多都是由 UE 虛幻引擎來提供的,但是理論上的實現(xiàn)很簡單,體現(xiàn)在個人上更多的是操作經(jīng)驗。
UE 在導(dǎo)入人物模型時會帶有一個骨架,如下圖所示。人物的行動就是由一根根骨骼的變化來實現(xiàn)的,而面部的捏臉調(diào)節(jié)也是基于這一點。通過改變臉部相關(guān)骨骼的位置從而實現(xiàn)面部的變形,間接達(dá)到一個類似捏臉的效果。


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

然后就是在藍(lán)圖中把骨骼和控制點的變換進行關(guān)聯(lián),并且暴露相關(guān)的調(diào)整參數(shù)讓外部進行調(diào)整。
由于 UE 的很多功能都是由藍(lán)圖來實現(xiàn)的,也不太好貼代碼,就只能貼個藍(lán)圖的連接了,比拼一下誰的藍(lán)圖連線方式更優(yōu)雅~~

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

這里用代碼來實現(xiàn)了 UE 中的一個子系統(tǒng) FaceEditSubsystem ,主要功能就是用來存儲數(shù)據(jù)的值,并且它可以在動畫藍(lán)圖和 UI 藍(lán)圖中訪問到,這一點很重要,否則這兩個藍(lán)圖無法建立數(shù)據(jù)上的關(guān)聯(lián)了。


總結(jié)一下整體的實現(xiàn)就如上面所說,UE 虛幻引擎提供的功能很強大,強大到只要熟練一點使用就可以實現(xiàn)一點小功能了,而這些功能的實現(xiàn)都可以不需要一行行代碼的。
那么問題來了,在這種情況下,程序員學(xué)習(xí) UE 怎樣才能算是有自己的獨特競爭力呢?莫非要比拼對 UE 軟件的使用熟練度嗎?那反而還失去了程序員的編碼能力,恐怕還是要深入其源碼,研究更多的底層功能實現(xiàn)。
最后歡迎大家加入 音視頻開發(fā)進階 知識星球 ,這里有知識干貨、編程答疑、開發(fā)教程,還有很多精彩分享。
更多內(nèi)容可以在星球菜單中找到,隨著時間推移,干貨也會越來越多?。?!

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

加我微信 ezglumes ,拉你進技術(shù)交流群
推薦閱讀:
開通專輯 | 細(xì)數(shù)那些年寫過的技術(shù)文章專輯
Android NDK 免費視頻在線學(xué)習(xí)?。?!
覺得不錯,點個在看唄~

