UE4 Spline


本文為學習安寧Ken的UE4Spline的記錄

介紹

UE不太支持別的軟件導入的樣條線

一般直接在場景里編輯曲線而不是在藍圖里編輯曲線

只能創建一個Spline Component,然后將這個Actor拖到場景里

添加點:右鍵添加或者alt+拖動現有點

Curve Linear Constant

每個節點有很多數據,節點上方向(用於確定唯一旋轉),進入的切線,離開的切線等等

會用到的相關藍圖函數

SplineGenerationPanel

可以快速生成一些線段,包括圓弧、圓環等

有的面好像不太好生成,並不好用目前看,貌似xz yz平面不太好生成

編輯器中使用SPline

Construction Script節點,當前對象在場景中實例化一次便會執行一次這個節點,比如把這個actor拖到場景中,可能會觸發很多次(拖的時候),我們對它做任何修改或者對組件做任何修改,動一下位置,也會導致這個節點執行,其不需要游戲運行起來就能觸發,很適合做一個擺放工具之類的,按照一些規則進行生成

復制擺放

vector變量等可以在場景中有一個3D widget的可視化方案

Truncate節點去除小數部分

思路:固定距離去取曲線上的點(GetTransformatDistanceAlongSpline),每次編輯曲線都回執行construct script,這個腳本里就給取的點的位置添加一個StaticMeshComp,並對這個StaticMeshComp指向的Mesh資源進行一個指向

在關卡界面對指向的資源模型和進行賦值

效果:那就打個問號吧

給以這個Transform的location或者rotation一些隨機可以得到一些沿着曲線但是有點偏移的效果,模型也可以有縮放

注意點

這里使用AddStaticMeshComp生成了一堆的Comp,多個Comp對應了多個drawCall,這種模型很顯然可以進行合批操作的

UE是有對應的Component的,InstancedStaticMeshComponent,一開始先創建好,然后對這個InstancedMeshComp進行AddInstance

這么多問號才10+drawcall

小技巧

可以右鍵節點選中所有曲線點,然后使用對齊方案,比如鍵盤上的End鍵,來進行向下對齊,適用於不平整的路面,曲線的控制點數需要多一點

制作道路管道橋梁

Spline Mesh Actor

使用曲線去扭曲一個靜態模型讓其達到一個變形的情況,管道一類的需要模型的面數較高,分段要多

里面起作用的是一個SplineMeshComp組件

這樣的話我們創建一個新的Actor,然后根據復制擺放的原理,遍歷曲線的每一段segment,每有一段就創建一個SplineMeshComp,設置他的Trasform的值(每一段獲取起始點和終止點的location和tangent值,可以的話set up vector at spline Point把UpVector也計算一下以避免彎曲過大產生的兩面不接的bug),首尾相接 便可以做出隨着Spline變化的管道了

注意UE的For Loop藍圖節點是<=的判定而不是<

管道的UV應該是鋪滿的,這樣子才可以很好的tiling

變化的時候也可以設置mesh的材質、mesh的碰撞

經驗:模型的斷面一般朝向x方向,不容易產生太多旋轉扭曲的截面bug


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM