如何在UE4中實現植物風場效果?
靜態的遊戲場景氛圍是十分生硬的,缺少與自然互動的生機。其中關於植物的表現包含草叢與角色的互動,地面/水面與角色的互動,植物的生長,植物與天氣的互動等等。UE4引擎中提供了PivotPainter2.0外掛可以快速幫助遊戲美術師在DCC軟體中預生成頂點和貼圖的資料,這些資料匯入到UE4引擎中可以使靜態植物模型產生類似於風力的吹過的效果或者植物生長的效果。
本教程從最初流程出發,系統的講解PivotPainter2.0的應用方法。希望對大家有所幫助,也是我自己的一個學習過程。這個資料用好了還是可以製作出很多花樣效果的。
UE4引擎提供了植物的動畫流程來模擬風場等效果,可以通過讀取Tex2d的方式在材質編輯器中進行模型頂點的各種動畫製作。
使用官方提供的PivotPainter2.0外掛可以在3dsmax中自動識別層次結構,快速對模型的Pivot position進行自動適配,並把頂點資訊渲染為Texture2d。
具體流程如下:
1.首先在3dsmax中開啟模型。
2.拖入PivotPainter2.ms檔案(在UE4安裝目錄的3dsmax子資料夾)到3dsmax中,常用的話可以新增到3dsmax中RunScript預設目錄。
3.MAX右側工具欄中Utilities找到Level of Detail選項卡,並使用這個工具把想要編輯的模型從LOD中拆分出來。
4.全選模型,把植物模型的根部移動到世界座標原點,並把pivot也移動到這裡。
5.選擇要拆分的LOD模型,勾選PivotPainter2.0工具中的Preserve Custom Normals(否則光滑組會丟失),點選Detatch All Elements模組中的Detach Selected Model’s Elements按鈕對模型進行自動拆分。
6.刪除無用/本次不編輯的模型。
7.選中所有模型,點選Generate New Pivot Pionts模組中的Manage按鈕,會彈出新的選擇視窗。我們需要把裡面的分組刪掉,點選裡面的分組再點選X號按鈕即可。然後選擇所有模型,點選上面的{}按鈕建立新的分組,然後關閉這個視窗。再點選Update按鈕重新整理一下,然後左面的下拉選單中選中會自動為我們選擇的模型分一個組,然後我們選擇這個組即可。
8.點選Pick Leaf Pivot Obj選項中的Mesh toggle,再點選PickMesh,並選擇植物根節點(樹幹),然後點選Create New Pivots按鈕。
9.等待一段時間,直到Pivots移動完成。
10.開始手動根據層級結構關聯父子連結。根節點要歸零,並且要保證X軸朝上。
11.連結好父子連結後,選擇根節點模型,點選Render Options選項卡中的Process The Selected ObjectHierarchy按鈕。裡面的UV設定和輸出引數可以根據特殊需求自己選擇,本教程沒有更改預設設定。
12.選擇匯出目錄匯出貼圖。
13.我們要為樹枝/樹幹/樹葉和其它使用不同貼圖的模型都分別賦予不同的材質。
14.整體匯出模型為FBX檔案。(以上步驟是針對於單獨LOD0的拆分,其它LOD可以重複迴圈以上步驟,在最後一步匯出時merge這些LOD檔案,通過Level of Detail把各個LOD合回去)
15.在UE4中匯入模型和貼圖。其中模型匯入時需要勾選Combine Meshes選項。如預設勾選了SkeletalMesh則需要關閉這個選項。
16.然後我們需要設定貼圖,其中命名包含pivotpos的貼圖需要設定為HDR(RGB,no sRGB)格式並關閉sRGB模式,並且在Texture設定中開啟卷展欄,把Filter設定為Nearest。
17.其中命名包含XVect的貼圖需要設定為VectorDisplacementmap(RGBA8)格式並關閉sRGB模式,並且在Texture設定中開啟卷展欄,把Filter設定為Nearest。
18.然後我們可以使用Material編輯器中的PivotPainter2的各種節點對貼圖的各個通道進行讀取。其中PivotPainter2FoliageShader是封裝好的植物模組,可以接收風場直接使用。
注1.子物體比較多的模型應拆分多個部分生成pivot,否則模型會卡死。樹幹/枝椏和樹葉要分別給不同的材質,否則動畫運動時會出現問題。
注2.根節點一定不要忘了歸零。
注3.由於是資源商店中的內容,植物子物體分組分的不好,有的資源mesh是多根樹混合到一起的效果(類似於榕樹,SM_birch_a_fall),這種選擇根節點,連結父子關係相當麻煩。需要大量時間手動設定,目前沒有解決辦法。場景美術設計師自己重新制作的樹先分好組可以解決這個問題。
官方地址:
https://docs.unrealengine.com/en-US/Engine/Content/Tools/PivotPainter/PivotPainter2/index.html
關於騰訊遊戲學院專家團
如果你的遊戲也富有想法充滿創意,如果你的團隊現在也遇到了一些開發瓶頸,那麼歡迎你來聯絡我們。騰訊遊戲學院聚集了騰訊及行業內策劃、美術、程式等領域的遊戲專家,我們將為全世界的創意遊戲團隊提供專業的技術指導和遊戲調優建議,解決團隊在開發過程中遇到的一系列問題。
作者: freddy
來源:騰訊GWB遊戲無界
原地址:https://mp.weixin.qq.com/s/_j-mwhHrCWtvLqwbjfl-iA
相關文章
- 如何在 UE4 移動端中實現 HZB?
- 如何在 ThreeJS 中實現輝光效果JS
- 用Qt(C++)實現如蘋果般的亮屏效果QTC++蘋果
- UE4 Dash功能實現
- 如何在遊戲陪玩系統原始碼中實現“刮刮樂”效果?遊戲原始碼
- 小例項: 用vue實現手風琴效果Vue
- (UE4 4.20)UE4 繼承AnimNotify建立自定義動畫通知事件(結合PoseableMeshComponent實現技能殘影效果)繼承動畫事件
- 如何在現實場景中隨心放置AR虛擬物件?物件
- UE4純C++實現遊戲中快捷欄C++遊戲
- element-ui table表格元件實現手風琴效果UI元件
- 如何在 web 頁面中實現類似 excel 固定表頭 / 標題行的效果?WebExcel
- 如何在直播軟體搭建中,實現圖片瀑布流效果?
- 如何匯入清新植物Lightroom效果預設OOM
- 如何在Redis中實現事務Redis
- Flutter PIP(畫中畫)效果的實現Flutter
- 商場如戰場
- 如何在 Java 中實現無向圖Java
- Python 植物大戰殭屍程式碼實現(2):植物卡片選擇和種植Python
- 實現聚焦效果
- [譯] 在 Flutter 中實現微光閃爍效果Flutter
- Android開發中陰影效果的實現Android
- Unity實現“籠中窺夢”的渲染效果Unity
- 教你在“狼人殺”中實現變聲效果
- 如何在CSS中對映的滑鼠位置,並實現通過滑鼠移動控制頁面元素效果CSS
- UE4 Shader 編譯以及變種實現編譯
- 如何在AE2022中使用 Keylight 效果?
- 如何在Spring Boot中實現整合測試?Spring Boot
- 如何在直播應用中實現多人KTV?
- 如何在EF Core中實現悲觀鎖
- 如何在Unity中實現水體互動?Unity
- 如何在Python中實現函式過載Python函式
- 如何在PHP中實現鏈式方法呼叫PHP
- 如何在 HDRP 中實現光線追蹤?
- UE4 如何在導航體積中設定不可通過的地方
- css 實現打分效果CSS
- webgl實現火焰效果Web
- webgl實現故障效果Web
- js實現打字效果JS