Hello,大家好,今天是ue4距離測量工具的幹貨搬運,我是木偶心沒。本入門級unreal4教程將向你展示如何使用藍圖製作簡單的距離測量工具。我希望它也能很好地介紹如何製作自己的編輯器工具。像這樣的小工具可以真正加快你的工作流程,並使你和你的團隊的生活變得更加輕鬆。
我今天的重點是創建一個簡單的actor,它可以測量空間中用戶定義的點之間的距離。由於我發現 Marketplace 上的許多替代工具設計過度和/或笨拙,因此我希望我的工具實用且簡單。
1、怎麼使用
距離測量工具是基於樣條的。它包含一些藍圖函數,可讓你調整樣條曲線以獲得空間中兩個或多個點之間的距離。
要使用它,請將其拖到你的場景中。你可以像移動任何其他樣條組件一樣移動終點來更改終點。長度值將自動更新。你可以通過按住 alt 鍵並向外拖動來添加其他點。
參數設置
在“Config”下的詳細信息麵板中可以找到一些易於使用的功能。
Reset Tangents:將所有樣條線切線重置為其默認值。
Zero Out Tangents:將所有樣條切線設置為零。這對於快速移除所有樣條曲線非常有用。
Unit Type:此設置為你提供更改工具使用的測量單位的選項。默認情況下,它設置為厘米。
Anchor Actor:如果該值不為空,樣條曲線的末端將鎖定到此處指定的actor。
以上非常簡單,它既可以在編輯器中使用,也可以在運行時使用。
2、項目設置
我們將首先創建一個新的虛幻引擎項目。對於本教程,我使用的是 4.26 版,但它也適用於早期/更高版本。
這次我將創建一個空的僅藍圖的項目——為此你不需要任何 C++。我還添加了 Starter Content,所以我可以用一些道具進行測試,它們比用幾個立方體更有趣。
一旦我們啟動並運行,我要做的第一件事就是在我的內容瀏覽器的根目錄中創建一個名為MeasurementTool的新文件夾。我將確保我為該工具創建的所有資產都保留在此文件夾中。這非常重要,因為我計劃將這些文件遷移到我的幾個項目中,並且我不希望這些文件混入或與現有資產發生衝突。
3、單位類型
第一個要放在MeasuringTool文件夾的是一個枚舉(或枚舉)稱為EUnitTypes。這是你可以設置要使用的度量單位的方式。
4、文本材質
在我們開始我們的藍圖之前,我們需要為其文本讀出組件製作一個新材質。該材質將是 Unreal 默認使用的文本渲染材質的緊密副本,但我們將對其進行修改以使其始終麵向相機。
我們可以從頭開始創建此材質,但由於本教程的重點不是創建材質,所以讓我們來走捷徑。在你的內容瀏覽器的視圖選項中有一個標記為“Show Engine Content”的複選框。啟用該功能後,搜索DefaultTextMaterialOpaque。
我們不想修改這個材料(最好不要直接改變引擎內容),所以右鍵單擊並複製。將其命名為合理的名稱(比如M_TextMaterial_CameraFacing),然後將其拖到你的測量工具文件夾中。我們將對該材料進行兩個快速更改。
首先,將頂點顏色輸出插入自發光顏色,這樣即使在低光照條件下也能看到文本。
第二個更改是創建一個“AlignMeshToTheCamera”函數和兩個 vector3 值。此函數將更改其應用的網格的頂點,使其始終麵向相機。默認設置會以錯誤的角度呈現網格,因此我們需要稍微調整一下。
將你的向量連到Custom Object Basis 2 和 3(1 可以保持默認),並將它們分別設置為 (1,0,0) 和 (0,-1,0)。這樣做是切換(反轉)Y 軸和 Z 軸以更改對齊的旋轉,以便我們可以正確閱讀文本。
5、創建藍圖,添加組件
獲得枚舉和文本材質後,我們將創建一個新的藍圖類。我們將選擇“Actor”作為其父類,因為我們希望它是一個帶有變換的簡單對象,我們可以將其拖放到場景中。我將我的命名為BP_MeasuringTool。
打開你的新藍圖並添加以下組件:
Spline
Spline的長度是工具將測量的長度。我們將創建一些函數來定義它的開始和結束位置。
Text Render (x2)
我們需要文本渲染組件以清晰的格式輸出spline的距離值。其中一個命名為Value ,另一個命名為Distance。
Billboard
billboard並不是絕對必要的。這隻是為了顯示。也就是說,它有助於從背景中選到測量工具,並使整個事情看起來更專業。
添加組件後,單擊Billboard並將其拖動到層次結構的頂部,使其成為Actor的父組件,同樣將Distance文本渲染作為Value的父級。你的藍圖布局應如下所示。
6、Component設置
Billboard
你可以將Billboard sprite設置為你喜歡的任何內容。即使它被部分遮擋,它也純粹是識別測量工具的輔助工具。如果你想,你甚至可以創建自己的Billboard!
我發現一個叫“T_Loft_Spline”的sprite texture比較合適。這是一個引擎紋理,所以你可以保持“Show Engine Content”啟用。不要擔心這個文件位於你的內容文件夾之外,因為它是一個未更改的引擎資產,虛幻引擎會知道在哪裏可以找到它。
Spline
你需要在此處更改的唯一設置是勾選“Input Spline Points to Construction Script”。這很重要,因為會將Spline Points數據暴露給構造腳本。否則,我們的工具將無法在編輯器中正確更新。
文本渲染
兩個文本渲染組件都應該用我們新的M_TextMaterial_CameraFacing材質,並將水平和垂直對齊設置為center。
將Distance文本值設置為'DISTANCE',將其 World Size 設置 為16,並修改Z 軸為22cm使其位於其父級上方。修改這些隻是為了便於閱讀。
Value文本渲染的位置和文本值將被編程設置,因此可以保持它在哪裏,但其World Size設置為26。
7、更新Distance
回到你的藍圖圖表並創建一個新的EUnitTypes變量。將其命名為UnitType。這將是你將在藍圖編輯器之外使用的變量之一,因此單擊眼睛圖標將其暴露出去,並將其置於易於識別的類別中——比如Config。
接下來,創建一個名為UpdateText的新函數。這將根據樣條線的長度來設置Value渲染文本組件的position和value。
然後在構造腳本和事件 Tick 中觸發此函數,以便它在編輯器內和運行時工作。
如果你現在將BP_MeasurementTool拖放到你的場景中,你將能夠移動你的樣條線並創建新點,並且文本將根據你在藍圖的細節麵板中設置的單位類型自動更新其值。
8、切線控製
樣條曲線可能很複雜。接下來我們要添加的是一些功能,讓我們隻需單擊一下即可設置所有切線。為此,我們需要在藍圖中添加三個新函數。
第一個是“ SetTangents ”,它將簡單地循環遍曆所有樣條的切線並將它們設置為指定的向量輸入。
最後兩個非常相似,我分別稱它們為ZeroOutTangents和ResetTangents。每個都將使用不同的輸入觸發SetTangents - 前者將所有切線設置為0,0,0(無曲率),後者設置為樣條的默認值0,0,100。
這些是我們將在編輯器中觸發的功能,因此將它們分配到你的Config類別並確保它們的兩個“Call in Editor”複選框都被選中。這樣才能暴露到參數屬性中進行調節。
9、獲取Actor
我們要添加到測量工具的最後一點功能是能夠將樣條曲線的末端捕捉到Actor的位置。為此,我們需要添加Config部分中的最後一個變量,即對 actor 的引用。這裏叫AnchorActor。這是每個實例都會設置的,所以記得暴露出去。
創建一個名為SnapToActor的新函數,並將其添加到你的Construction Script和EventTick中。確保它在你的文本更新功能之前觸發,否則讀數將過時!
該SnapToActor功能簡單。它會查看你是否已經分配了一個Actor,如果是,它將把最後一個樣條點移動到它的位置。如果你的AnchorActor變量為空,則它什麼都不做。
- End -
來源:Thepoly公眾號
上一篇 Unreal大型世界場景的優化
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答本文章主要介紹了Blender軟件基礎課程的內容,包括Blender軟件的基本功能、操作方法等,適合初學者學習。
本文介紹各大知名3D建模學校在全球的分布情況,讓你快速了解3D建模的學習機構,發掘科技力量,尋找適合自己的學習道路。最後,介紹......
火星時代教育的3D動畫角色建模培訓課程覆蓋了建模的基礎知識和操作技巧,幫助你掌握專業的3D角色建模技術和理念,為你投身動畫行業......
想要了解UE4培訓課程價格嗎?本文為您詳細解析UE4培訓價格、課程內容等重要信息,快來看看吧!
專業的CG插畫設計培訓學校哪家好?這篇文章將為你介紹火星時代教育,作為一家長期專門教授CG插畫設計的領導機構,幫助學生提升專業......
AE影視後期特效培訓,幫助您實現影視特效夢想,火星時代教育專業培訓,教您從零開始,直通專業影視後期特效製作現場。
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!