先畫人的動作 做像醬子的連續圖
在放到專案資料夾後,對他點右鍵 [ Sprite Action > Extract Sprite ] 把圖檔各自拆開
會進入到這個介面,一般來說直接按Extract就好
如果不滿意可以在右邊選單切換成手動切割
切割完的獨立圖片全部選取後右鍵 點選Create Flipbook
如果動畫怪怪的可以進入 Flipbook 和 分開的圖檔 調整
Flipbook介面底下可調關鍵幀
分開的圖檔可調 Pivot Mode 改變對其的中心點。另外 Pixels per unit記得按旁邊箭頭調回預設值
再來建立角色的 Blueprint。在資料夾右鍵找到 Blueprint Class,底下搜尋找到 PaperZD Character
右鍵點擊剛剛建立這個藍圖的子藍圖 Create Child Blueprint Class。這個功能可讓所有角色繼承主藍圖的程式,方便製作、統一管理及修改。而目前建置的工作都在主藍圖
Blueprint 打開後把剛剛建立的 Flipbook 加進右邊的 [ Sprite > Source Flipbook ]
Blueprint 介面長這樣
再來到左邊 Components 點選 Capsule Components ,然後回到右邊的 Shape 調整碰撞框的大小
Arrow Sprite可調整圖片的相關參數
碰撞框的半徑高度、寬度及線的粗細
再來到底下 Materials ,把Element 0 改為 [ MaskedUnlitSpriteMaterial ] 、 勾選 Lighting 的 [ Cast Shadow ]讓角色會受到光線影響及產生陰影
再來建立讓角色動起來的程式。回到資料夾右鍵找到 Blueprint Class,選擇 Game Mode Base
進入 Game Mode Base 介面,把剛才建立的角色 子藍圖 掛在 Classes > Default Pawn Class。這樣遊戲開始後就會優先加載這個角色。
再來到 Edit > Project Setting > 右邊選單 Game > Maps & Modes,左邊有 Default Modes,把剛剛建立的 Game Mode Base 掛在 Default Game Mode
回到資料夾右鍵找到 Input 建立 Input Action ,在 Action > Value Type 設為 Axis2D(Vector 2D)。因為目前僅需平面移動( x.y軸),若需要飛行可選 Vector 3D( x.y.z軸 )
回到資料夾右鍵找到 Input 建立 Input Mapping Context,在 Mappings 掛載剛剛建立的 Input Action
在底下按 + 選項建立移動的WSAD鍵,點選旁邊的鍵盤圖示可直接輸入
接下來打開選項,設定他們移動的方向
D為預設 [ X軸正值 ] 方向,不需改變
A 為 [ X軸負值 ] 方向,在Modifiers 下加入 [ Negate ],將移動的值變成負數
S 為 [ Y軸正值 ] 方向,在Modifiers 下加入 [ Swizzle Input Axis Values ],將移動的值轉為 Y 軸
W 為 [ Y軸負值 ] 方向,在Modifiers 下加入 [ Negate ] 及 [ Swizzle Input Axis Values ],將移動的值變成負數還有為 Y 軸
接著回到角色的 子藍圖,打開上排的 Event Graph 介面
在底下編輯區域右鍵,加入Get Player Controller、 Enhanced Input local Player Subsystem、Add Mapping Context,接起來長這樣。最後接回 Event BeginPlay
加入你前面建立的 Input Action,他會變成紅色的EnhancedInputAction ,在Triggered 接兩個 Add Movement Input 出來,一個代表X,另一個是Y,並在 World Direction 各自輸入移動的數值。Action Value 接 Break Vector 2D,把 X,Y各自接到剛剛 Add Movement Input 的 Scale Value,Y 軸那條線記得點兩下讓他出現一個節點。