之前無意間看到Unity Japan做了一個Houdini與Unity結合的demo 在胡迪尼(Houdini)裡面做物理模擬 然後將模擬出來的效果 烘焙成一張頂點圖 也就是把所有的頂點資訊記在一張圖上面 然後跟動畫一樣一格一格的記錄下來 然後將這張圖指定給特定的shader 接著就可以把胡迪尼的物理模擬 還原到unity上面 這邊可以看一下影片:
裡面基本上使用了流體 剛體 布料 粒子 4種模擬方式 不過他這個效果是在HDRP裡面 我們可以嘗試把它移植到URP裡面 然後更改一下shader就可以自定義自己的效果了~
基本上重點就是這個custom function了 我們只要把對應的數值在URP裡面也寫一遍就可以 比較重要的部分就是下面的檔案務必要有 所以記得要把VATHelper這個檔案抓出來 接著我們在URP裡面如法炮製 這邊我把它做成Sub Graph 這樣方便我之後使用![]()
需要使用的時候再把這個sub graph叫出來 就可以進行很多操作了
不過URP會有一個蠻大的缺點... 那就是他的位置會跑掉 這一點我目前只知道是因為HDRP跟URP的頂點位置轉換方式不一樣導致的 這部分目前我也有點無解
現在成功把shader移植過來之後 我們來安裝胡迪尼 在安裝胡迪尼的時候有一個蠻大的坑 就是胡迪尼有提供免費版 但是免費版如果要使用VAT的功能 會無法輸出 因此可以的話請支持正版 或者搞個破解版... 這樣就可以使用VAT(Vertex Animation Texture)的功能了~ 至於設置方式上面的影片都有提到就不贅述了 然後這邊我簡單的做出一液體往下流的效果:
在經過轉換之後會是這樣
然後下面設置一下精度 如果沒設置這個輸出出來的頂點數會很低 根據自己想要的效果去設置就OK
然後我們就點上面的Render他就會輸出貼圖了 然後我們只要裡面的頂點 法線貼圖 還有模型就好 其他的都可以無視 然後在Marterial裡面有一個json檔案 那個裡面有相關的資訊也要保留 接下來我們就把對應的shader 貼圖 參數都給上 這可以把液體的效果給實現了~![]()
然後調整一下顏色 參數就可以實現這樣的效果了!
穿衣服洗澡的華戀
被熔岩燙傷的華戀
滿身是血的華戀
被不明液體噴到臉上的華戀
可以看到使用胡迪尼可以很好的製作很不錯的頂點動畫 只要把對應的東西準備好 就可以做很多AAA級別的效果 其他還可以做破碎 布料模擬 或者很多特別的效果 並且可以在unity裡面改一下shader製作各種不同風格 或者搭配腳本等等 可以有非常多的變化~ 網路上也很多胡迪尼的教學 好好使用可以很輕鬆地做出驚豔的效果!