UE5管理內(nèi)容-在藍(lán)圖和Python中使用代理幾何體工具

你可以從藍(lán)圖和Python腳本中調(diào)用代理幾何體工具。這可以幫助你自動化你的資源創(chuàng)建和數(shù)據(jù)準(zhǔn)備管道,組合和簡化靜態(tài)網(wǎng)格體Actor及其來自你在虛幻編輯器中運行的腳本的材質(zhì)。這可以顯著提高渲染性能,但要以一定的視覺精度為代價。
例如,這個車輪組件包含147個單獨的靜態(tài)網(wǎng)格體Actor,總共包含90萬個三角形,每個網(wǎng)格體都使用單獨的材質(zhì)。這就給GPU增加了數(shù)百次繁重的繪制調(diào)用。運行代理幾何體工具后,Actor被合并到采用單一材質(zhì)的單一模型中,可以通過一次繪制調(diào)用來渲染。


三角形數(shù)量也減少了97%。這導(dǎo)致了一些變形,但是你可以調(diào)整腳本中的設(shè)置,以在簡化和視覺質(zhì)量之間找到適當(dāng)?shù)钠胶狻?/p>
因為代理幾何體工具涉及對你的幾何體進(jìn)行一些相對復(fù)雜的轉(zhuǎn)換,并且提供了許多用于控制其操作的設(shè)置,所以我們建議你通過編輯器中的UI來開始使用該工具。只有在確信理解了工具及其設(shè)置并對預(yù)期的效果有了很好的了解之后,才能從腳本中調(diào)用它。
先決條件:?如果還沒有這么做,則需要安裝編輯器腳本工具插件。
Blueprints
代理幾何體工具通過?編輯器關(guān)卡庫(Editor Level Library)> 創(chuàng)建代理網(wǎng)格體Actor(Create Proxy Mesh Actor)?節(jié)點公開。

你需要向這個節(jié)點提供以下輸入:
包含要合并的所有靜態(tài)網(wǎng)格體Actor的數(shù)組。注意,這些必須是靜態(tài)網(wǎng)格體Actor,不是包含靜態(tài)網(wǎng)格體組件的Actor。
編輯器腳本創(chuàng)建代理網(wǎng)格體Actor選項(Editor Scripting Create Proxy Mesh Actor Options)?對象,其中包含代理幾何體工具使用的設(shè)置。此對象公開代理幾何體工具的UI中顯示的大多數(shù)設(shè)置。
要獲取其中一個對象,可以從?合并選項(Merge Options)?輸入中拖到左邊,然后選擇?讓編輯器腳本創(chuàng)建代理網(wǎng)格體Actor選項(Make EditorScriptingCreateProxyMeshActorOptions)。

使用此對象為代理幾何體工具提供設(shè)置。許多詳細(xì)的設(shè)置是在另一個對象中提供的,你將該對象傳遞給?**網(wǎng)格體代理設(shè)置(Mesh?Proxy?Settings)**?輸入。要獲取其中一個對象,請重復(fù)上面的操作:從?**網(wǎng)格體代理設(shè)置(Mesh?Proxy?Settings)**?輸入中向左拖動,然后選擇?**進(jìn)行網(wǎng)格體代理設(shè)置(Make?MeshProxySettings)**。??

例如,以下代碼片段捕獲關(guān)卡視口和世界大綱視圖中當(dāng)前選中的所有Actor,將它們合并到代理網(wǎng)格體中,將結(jié)果保存到使用特定名稱和位置的資源,并用新生成的代理資源的單個實例替代關(guān)卡中原來的靜態(tài)網(wǎng)格體Actor。

Python
代理幾何體工具通過?unreal.EditorLevelLibrary.create_proxy_mesh_actor()
?函數(shù)公開。你需要將此函數(shù)傳遞到以下參數(shù):
包含要合并的所有靜態(tài)網(wǎng)格體Actor的數(shù)組。注意,這些必須是靜態(tài)網(wǎng)格體Actor,不是包含靜態(tài)網(wǎng)格體組件的Actor。
unreal.EditorScriptingCreateProxyMeshActorOptions
?對象,其中包含代理幾何體工具使用的設(shè)置。此對象公開代理幾何體工具的UI中顯示的大多數(shù)設(shè)置。你需要創(chuàng)建其中一個對象并設(shè)置它的屬性。
例如,以下代碼片段捕獲關(guān)卡中的所有靜態(tài)網(wǎng)格體Actor,將它們合并到代理網(wǎng)格體中,將結(jié)果保存到名為代理(Proxy)的資源,并用該代理資源的單個實例取代關(guān)卡中原來的靜態(tài)網(wǎng)格體Actor。