當前位置:首頁 >教程首頁 > Unreal Engine >Unreal如何使用藍圖製作簡單距離測量工具

Unreal如何使用藍圖製作簡單距離測量工具

發布時間:2021-08-18 10:30:06

Hello,大家好,今天是ue4距離測量工具的幹貨搬運,我是木偶心沒。本入門級unreal4教程將向你展示如何使用藍圖製作簡單的距離測量工具。我希望它也能很好地介紹如何製作自己的編輯器工具。像這樣的小工具可以真正加快你的工作流程,並使你和你的團隊的生活變得更加輕鬆。

0.webp.jpg

我今天的重點是創建一個簡單的actor,它可以測量空間中用戶定義的點之間的距離。由於我發現 Marketplace 上的許多替代工具設計過度和/或笨拙,因此我希望我的工具實用且簡單。

1、怎麼使用

距離測量工具是基於樣條的。它包含一些藍圖函數,可讓你調整樣條曲線以獲得空間中兩個或多個點之間的距離。

1.png

要使用它,請將其拖到你的場景中。你可以像移動任何其他樣條組件一樣移動終點來更改終點。長度值將自動更新。你可以通過按住 alt 鍵並向外拖動來添加其他點。

參數設置

在“Config”下的詳細信息麵板中可以找到一些易於使用的功能。

2.png

Reset Tangents:將所有樣條線切線重置為其默認值。

Zero Out Tangents:將所有樣條切線設置為零。這對於快速移除所有樣條曲線非常有用。

Unit Type:此設置為你提供更改工具使用的測量單位的選項。默認情況下,它設置為厘米。

Anchor Actor:如果該值不為空,樣條曲線的末端將鎖定到此處指定的actor。

以上非常簡單,它既可以在編輯器中使用,也可以在運行時使用。

2、項目設置

我們將首先創建一個新的虛幻引擎項目。對於本教程,我使用的是 4.26 版,但它也適用於早期/更高版本。

3.png

這次我將創建一個空的僅藍圖的項目——為此你不需要任何 C++。我還添加了 Starter Content,所以我可以用一些道具進行測試,它們比用幾個立方體更有趣。

4.png

一旦我們啟動並運行,我要做的第一件事就是在我的內容瀏覽器的根目錄中創建一個名為MeasurementTool的新文件夾。我將確保我為該工具創建的所有資產都保留在此文件夾中。這非常重要,因為我計劃將這些文件遷移到我的幾個項目中,並且我不希望這些文件混入或與現有資產發生衝突。

3、單位類型

第一個要放在MeasuringTool文件夾的是一個枚舉(或枚舉)稱為EUnitTypes。這是你可以設置要使用的度量單位的方式。

5.png

4、文本材質

在我們開始我們的藍圖之前,我們需要為其文本讀出組件製作一個新材質。該材質將是 Unreal 默認使用的文本渲染材質的緊密副本,但我們將對其進行修改以使其始終麵向相機。

我們可以從頭開始創建此材質,但由於本教程的重點不是創建材質,所以讓我們來走捷徑。在你的內容瀏覽器的視圖選項中有一個標記為“Show Engine Content”的複選框。啟用該功能後,搜索DefaultTextMaterialOpaque。

6.png

我們不想修改這個材料(最好不要直接改變引擎內容),所以右鍵單擊並複製。將其命名為合理的名稱(比如M_TextMaterial_CameraFacing),然後將其拖到你的測量工具文件夾中。我們將對該材料進行兩個快速更改。

7.png

首先,將頂點顏色輸出插入自發光顏色,這樣即使在低光照條件下也能看到文本。

第二個更改是創建一個“AlignMeshToTheCamera”函數和兩個 vector3 值。此函數將更改其應用的網格的頂點,使其始終麵向相機。默認設置會以錯誤的角度呈現網格,因此我們需要稍微調整一下。

將你的向量連到Custom Object Basis 2 和 3(1 可以保持默認),並將它們分別設置為 (1,0,0) 和 (0,-1,0)。這樣做是切換(反轉)Y 軸和 Z 軸以更改對齊的旋轉,以便我們可以正確閱讀文本。

5、創建藍圖,添加組件

獲得枚舉和文本材質後,我們將創建一個新的藍圖類。我們將選擇“Actor”作為其父類,因為我們希望它是一個帶有變換的簡單對象,我們可以將其拖放到場景中。我將我的命名為BP_MeasuringTool。

8.png

打開你的新藍圖並添加以下組件:

Spline

Spline的長度是工具將測量的長度。我們將創建一些函數來定義它的開始和結束位置。

Text Render (x2)

我們需要文本渲染組件以清晰的格式輸出spline的距離值。其中一個命名為Value ,另一個命名為Distance。

Billboard

billboard並不是絕對必要的。這隻是為了顯示。也就是說,它有助於從背景中選到測量工具,並使整個事情看起來更專業。

添加組件後,單擊Billboard並將其拖動到層次結構的頂部,使其成為Actor的父組件,同樣將Distance文本渲染作為Value的父級。你的藍圖布局應如下所示。

9.png

6、Component設置

Billboard

你可以將Billboard sprite設置為你喜歡的任何內容。即使它被部分遮擋,它也純粹是識別測量工具的輔助工具。如果你想,你甚至可以創建自己的Billboard!

10.png

我發現一個叫“T_Loft_Spline”的sprite texture比較合適。這是一個引擎紋理,所以你可以保持“Show Engine Content”啟用。不要擔心這個文件位於你的內容文件夾之外,因為它是一個未更改的引擎資產,虛幻引擎會知道在哪裏可以找到它。

Spline

你需要在此處更改的唯一設置是勾選“Input Spline Points to Construction Script”。這很重要,因為會將Spline Points數據暴露給構造腳本。否則,我們的工具將無法在編輯器中正確更新。

11.png

文本渲染

兩個文本渲染組件都應該用我們新的M_TextMaterial_CameraFacing材質,並將水平和垂直對齊設置為center。

將Distance文本值設置為'DISTANCE',將其 World Size 設置 為16,並修改Z 軸為22cm使其位於其父級上方。修改這些隻是為了便於閱讀。

12.png

Value文本渲染的位置和文本值將被編程設置,因此可以保持它在哪裏,但其World Size設置為26。

13.webp.jpg

7、更新Distance

回到你的藍圖圖表並創建一個新的EUnitTypes變量。將其命名為UnitType。這將是你將在藍圖編輯器之外使用的變量之一,因此單擊眼睛圖標將其暴露出去,並將其置於易於識別的類別中——比如Config。

14.webp.jpg

接下來,創建一個名為UpdateText的新函數。這將根據樣條線的長度來設置Value渲染文本組件的position和value。

15.webp.jpg

然後在構造腳本和事件 Tick 中觸發此函數,以便它在編輯器內和運行時工作。

16.webp.jpg

如果你現在將BP_MeasurementTool拖放到你的場景中,你將能夠移動你的樣條線並創建新點,並且文本將根據你在藍圖的細節麵板中設置的單位類型自動更新其值。

8、切線控製

樣條曲線可能很複雜。接下來我們要添加的是一些功能,讓我們隻需單擊一下即可設置所有切線。為此,我們需要在藍圖中添加三個新函數。

第一個是“ SetTangents ”,它將簡單地循環遍曆所有樣條的切線並將它們設置為指定的向量輸入。

17.webp.jpg

最後兩個非常相似,我分別稱它們為ZeroOutTangents和ResetTangents。每個都將使用不同的輸入觸發SetTangents - 前者將所有切線設置為0,0,0(無曲率),後者設置為樣條的默認值0,0,100。

18.webp.jpg

這些是我們將在編輯器中觸發的功能,因此將它們分配到你的Config類別並確保它們的兩個“Call in Editor”複選框都被選中。這樣才能暴露到參數屬性中進行調節。

19.webp.jpg

9、獲取Actor

我們要添加到測量工具的最後一點功能是能夠將樣條曲線的末端捕捉到Actor的位置。為此,我們需要添加Config部分中的最後一個變量,即對 actor 的引用。這裏叫AnchorActor。這是每個實例都會設置的,所以記得暴露出去。

創建一個名為SnapToActor的新函數,並將其添加到你的Construction Script和EventTick中。確保它在你的文本更新功能之前觸發,否則讀數將過時!

20.webp.jpg

該SnapToActor功能簡單。它會查看你是否已經分配了一個Actor,如果是,它將把最後一個樣條點移動到它的位置。如果你的AnchorActor變量為空,則它什麼都不做。

21.webp.jpg

- End -

來源:Thepoly公眾號

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定