結構體 ( animation pose snapshot )
可以將各種變量打包成一個節點,而且結構體內的變量也可以是結構體,就能達到以結構體分類的作用
結構體內的各節點名稱與變量類型是可以更改的,在ALS系統中最常以浮點數 ( float )、布林值 ( boolean ) 、 曲線 ( curve ) 、 向量 ( vector ) 、 結構體 ( structure ) 切換使用
在ALS系統中,列舉大量使用在移動模式跟行動的切換上,好比說走、跑、衝刺,就被分類在步態( gait )的列舉內,因為走跑衝刺的模式切換會頻繁在角色藍圖與動畫藍圖中使用,因此用列舉可以快速且正確的同步兩個藍圖的狀態
新增數據表格時要選擇一個現有的結構體做為對象使用,套用後會出現空的數據表格,按上方工具列的add可以增加表行,每一行都作為不同狀態下的數值切換,但數值只能根據結構體有列出的項目做更動
要在藍圖中使用數據表格,必須在 event graph 的 begin play 事件後新增額外的函數,並在函數內使用 get data table row 節點
同時新增兩個變量,並設定好相關數值
1. movement model,變量類型選擇 data table row handle,並在右側的屬性欄下方,將下拉式選單選擇現存的數據表格,並指定行名稱 ( row name )
2. movement data,變量類型選擇現存的結構體,且必須使用數據表格指定的結構體,此變量是用來轉換數據表格中的資料到藍圖中使用
接著在 event tick 事件後方新增函數,用來更新每一幀的移動狀態跟行動,同時根據不同狀態指定對應的數值
圖4.圖5.分別是兩個純函數
1.Get Target Movement Setting,用來分流不同旋轉模式跟站姿時的資訊,分別有走、跑、衝刺的速度上限與兩條曲線,曲線1內有三條曲線XYZ,每一條各代表一個資訊,X為最大加速度、Y為行走時的煞車減速度、Z為地面磨擦力,3條曲線根據步態分別有不同的曲線數值,ALS系統中將走、跑、衝刺對應為0-3的數值,並根據這個數值映射至曲線上,獲得XYZ曲線上的特定值
2.Get Mapped Speed,將每一幀的數值儲存後,即時地跟據步態映射成0-1、1-2、2-3的浮點數,分別代表走、跑、衝刺,此數值會在未來的多個功能中使用 ( 此函數內的speed為角色的速度取XY值後轉化為 vector length )