基于Houdini的VAT和shader制作觸手生長擺動動畫效果

觸手擺動效果


實現(xiàn)步驟:

1.在Houdini中制作模型和生長動畫效果,先在houdini展好UV,讓美術(shù)制作相應(yīng)的貼圖,也可以用美術(shù)提供的模型制作


2.利用VAT3導(dǎo)出模型、貼圖、材質(zhì)球,在unity中使用官方的shadergraph文件(我使用的是自己精簡之后的)


3.在shader中用貼圖偏移頂點位置形成擺動效果,并將shadergraph轉(zhuǎn)成代碼接入管線shader



VAT原理:




U是頂點數(shù),V是幀數(shù)

houdini中烘焙VAT時,如果頂點數(shù)大于貼圖U向像素,會自動放到下一行(一開始我以為頂點數(shù)最大支持8192,其實并不是)

每一幀存儲當前所有頂點的位置,像素rgb對應(yīng)頂點的xyz坐標,頂點位置進行歸一化存進貼圖,在shader中反算出位置。


模型生長動畫

Houdini全部節(jié)點:


這個生長使用縮放實現(xiàn)的,其實還有很多種其他方案

實現(xiàn)縮放的代碼如下


原理:獲得模型包圍盒大小,然后歸一化,用Ramp控制作為比率乘到位置坐標上,然后對ramp K幀

使用labs的節(jié)點導(dǎo)出即可,節(jié)點使用可以參照Vertex Animation Textures in Unity | SideFX


選擇柔體模式,引擎種類,幀數(shù),輸入的模型,貼圖格式,貼圖大小,點擊左上角渲染出圖(目前格式只能用exr,png有bug)

破碎效果也是類似的方式,在剛體模塊解算后選擇剛體模式導(dǎo)出即可,剛體、柔體、流體、粒子在引擎中的shader是不一樣的


生成的模型、貼圖、材質(zhì)球


pos就是頂點位置貼圖,rot是生成法線和切線的貼圖,col是頂點色貼圖

把圖指上去即可,頂點色沒用到的話可以刪除,pos2是為了優(yōu)化貼圖大小用的,測試發(fā)現(xiàn)至少這版本無太大意義


在unity設(shè)置模型設(shè)置和貼圖設(shè)置


觸手擺動頂點動畫

原理:用一張貼圖做UV滾動分別影響模型物體空間坐標的三個軸向

類似這種圖




下面是VAT3柔體+頂點動畫的shadergraph文件(只能用柔體,剛體效果不適用)



總結(jié):實現(xiàn)VAT的方法很多,之所以選擇使用houdini的方式,是因為houdini的模塊能夠制作很多視覺效果,未來可以嘗試各種酷炫效果并導(dǎo)入到引擎實現(xiàn)

效率:模型264個頂點100幀,兩張圖, 206k*2 。1140頂點 100幀,兩張圖,900k*2。

問題:目前還是不支持生成2的n次冪正方形的圖,如果再深入研究的話,要修改這個節(jié)點


其他VAT調(diào)研:

1.

Houdini的VAT3官方案例視頻及工程(推薦)

Vertex Animation Textures in Unity | SideFX

Vertex Animation Textures in Unreal | SideFX

2.

unity插件:Vertex Animation Tools | 動畫 工具 | Unity Asset Store

文檔:Polyflow - Vertex Animation Tools documentation

這個unity插件可以將現(xiàn)成的動畫FBX轉(zhuǎn)成點緩存

3.

能導(dǎo)出VAT的3dmax插件(Unreal專用)

Vertex Animation Tool | Unreal Engine Documentation

4.

國外大佬寫的Unity工具GitHub - Gaxil/Unity-AlembicToVAT: Alembic to VAT (Vertex Animation Texture) mini tool

可以將Alembic文件直接在unity轉(zhuǎn)VAT并有相應(yīng)的shader

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容