banner
YZ

周周的Wiki

种一棵树最好的时间是十年前,其次是现在。
zhihu
github
csdn

UE5藍圖實戰:動態牆上挖坑與自訂坑尺寸

在 Unreal Engine 5.3 中,我利用藍圖系統開發了一個創新的挖坑 Demo,該 Demo 展示了如何在實時環境中動態地在牆體上挖坑,並允許用戶自定義坑的大小。這一過程得益於 UE5 官方提供的 Geometry Script 插件,該插件通過藍圖接口實現了強大的網格布爾算法功能。文章中,我將詳細介紹如何在運行時動態地進行挖坑操作。此外,我還將展示如何通過藍圖接口調整坑的尺寸,為遊戲世界中的互動元素添加更多可能性。無論是對於建築模擬、地形編輯還是其他需要動態網格修改的應用場景,本文提供的方法都將大有裨益。

準備工作#

啟用插件 Geometry Script#

在 UE5.0 之後的版本,如 UE5.3 中,在編輯欄 -- 插件 -- 搜索欄輸入Geometry Script 打勾啟用並重啟 UE。
image.png

導入 RuntimeGizmo 插件#

這是一款可以在運行時控制對象移動旋轉縮放的工具
image.png
可以從 UE 商店裡購買,或者在網上找一些免費資源。將插件解壓後的父級目錄複製到 UE 項目工程中的 Content 文件夾下。

製作挖坑藍圖類 Actor#

在此之前確保 Geometry Script 插件啟用成功。在內容菜單裡右鍵創建藍圖類,在彈出的選取父類窗口中間的搜索欄搜索並選擇DynamicMeshActor,命名為 BP_DigHole
image.png

藍圖節點連連看#

實現挖坑函數#

  1. 定義變量和函數

雙擊打開 BP_DigHole 藍圖,在我的藍圖 -- 函數欄點擊 + 號添加一個函數,命名為 GenerateHole,在變量欄分別添加 Dimension(Vector),Size(Vector),DynamicMesh(DynamicMesh),DragSphere(Actor)這個四個變量。
image.png

  1. 完善函數

按照下圖連接藍圖節點:
image.png
image.png

接入 Gizmo 工具#

  1. 在 Gizmo 藍圖裡添加事件分發器

在此之前確保 RuntimeGizmo 插件導入成功。
雙擊打開 BP_Gizmo 藍圖,添加一個事件分發器命名為 OnGizmoChanged,並找到Process Interaction函數,在其執行修改坐標軸位置之後的邏輯下連接以下節點:
image.png

  1. 在控制器中啟用 Gizmo
    在任意一個在場景中激活的 Pawn 類(如 BP_CamController)中,按下圖藍圖連接節點:

image.png

在這個藍圖中,顯示定義了一個 BP_Gizmo 的變量 GizmoRef,使用 Event BeginPlay 節點綁定 BP_Gizmo 的事件分發器 OnGizmoChanged 用於觸發挖坑函數 GenerateHole,後面是將鼠標光標顯示到 Game 視圖中。

Left Mouse Button 是一個鼠標左鍵點擊事件,用於觸發 Attach Gizmo 函數以激活場景中的 Gizmo 小組件,在鼠標左鍵點擊 Actor 對象時顯示。

場景 Actor 參數設置#

放置一個球體到場景中,命名為 DragSphere,在內容菜單中找到 BP_DigHole 和 BP_Gizmo,將它們拖拽至場景中,其中需要給 BP_DigHole 的變量 Dimension、Size、DragSphere 賦值如下:
image.png

運行效果#

hole

需要修改牆體網格大小可以添加函數修改 Dimension 變量,修改坑的大小可以修改 Size 變量,置於坑的深度可以通過設置坑在父級網格體下的 Z 坐標實現。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。