最近公司項目需要,把這兩個東東好好看了下。不得不說,這兩個組件還是非常方便的,但是相關的介紹、教程卻非常的少。它們概念模糊,用法奇特,我就總結下吧。
首先,先要明白spline component。spline,中文翻譯樣條曲線,所以虛幻里的spline組件就是一條曲線,支持增加減少點、曲線點自動光滑連接等功能。通過spline組件可以獲得spline曲線上所有點的坐標信息、切線信息。因此,可以通過spline制作特殊的路線,通過其坐標信息來促使某個actor、特效等沿着該路線移動。如下是官方的一個例子(特效沿着曲線移動)。
spline mesh component組件是在static mesh組件的基礎上加上了一個spline而已,通過它自帶的spline組件我們可以精細的控制static mesh的各種特性,達到我們需要的轉換。其細節面板如下:
可以看到,這里重要的就是spline mesh這個地方,主要控制起點坐標、切線,終點坐標、切線,及forward axis朝向。其實這里的信息都是下面spline樣條曲線里的。官方例子:
下面總結下spline和spline mesh的典型用法。
一、在spline曲線上不斷增加static mesh組件,效果如下:
代碼比較簡單,只需沿spline隔特定距離(根據需要,可以用總距離除以需要增加static mesh的個數)add static mesh即可,然后根據距離得到某點的坐標、旋轉信息即可(get world location/rotation at distance along spline)。
二、在spline曲線上不斷增加spline mesh組件,效果如下:
相比增加static mesh組件,增加spline mesh組件可以使銜接處過渡更加自然,一般用於制作道路等連續化的東西。
另外,這里是根據spline的點來增加spline mesh組件的,可以准確方便的控制轉彎處。
三、某個actor、特效等沿着spline移動。
這里需要結合timeline時間軸來實現,方便控制運動時間、速率。timeline的float曲線(時間0到5,值0到1)輸出值相當於一個比值,乘以spline 的總長度就可以在給定時間內遍歷spline曲線所有點。
四、制作某些動畫效果,主要也是利用spline曲線的坐標信息。
控制這個植物沿曲線逐漸出現,模擬植物生長的效果。