先畫人的動作 做像醬子的連續圖

在放到專案資料夾後,對他點右鍵 [ 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軸正值 ] 方向,不需改變](attachment:d377c8aa-9a20-416e-8e7e-dd9cc72f548e:Screenshot_2025-09-06_at_2.28.11_AM.png)
D為預設 [ X軸正值 ] 方向,不需改變
![A 為 [ X軸負值 ] 方向,在Modifiers 下加入 [ Negate ],將移動的值變成負數](attachment:c5eafe00-a9f4-4000-9dea-0bb99b12c17c:Screenshot_2025-09-06_at_2.50.46_AM.png)
A 為 [ X軸負值 ] 方向,在Modifiers 下加入 [ Negate ],將移動的值變成負數
![S 為 [ Y軸正值 ] 方向,在Modifiers 下加入 [ Swizzle Input Axis Values ],將移動的值轉為 Y 軸](attachment:91232ca7-fae5-407e-87e0-8d6ae3494b4a:Screenshot_2025-09-06_at_2.50.33_AM.png)
S 為 [ Y軸正值 ] 方向,在Modifiers 下加入 [ Swizzle Input Axis Values ],將移動的值轉為 Y 軸
![W 為 [ Y軸負值 ] 方向,在Modifiers 下加入 [ Negate ] 及 [ Swizzle Input Axis Values ],將移動的值變成負數還有為 Y 軸](attachment:3a2730c7-422f-474f-be45-58702b96b71b:Screenshot_2025-09-06_at_2.50.22_AM.png)
W 為 [ Y軸負值 ] 方向,在Modifiers 下加入 [ Negate ] 及 [ Swizzle Input Axis Values ],將移動的值變成負數還有為 Y 軸
接著回到角色的 子藍圖,打開上排的 Event Graph 介面

在底下編輯區域右鍵,加入Get Player Controller、 Enhanced Input local Player Subsystem、Add Mapping Context,接起來長這樣。最後接回 Event BeginPlay

