1、開始項目導入資源
創建一個包含新手包的Blank空項目,在StarterContent目錄下創建一個MyCharacter目錄用於保存模型和動畫;
準備好動畫資源,首先要導入的是骨骼(動畫的導入成功的前提是項目中已經存在對應的骨骼)。
將指定文件拖入MyCharacter文件夾
因爲拖入的文件時骨骼文件,所以不存在動畫等其他一些資源,直接點擊Import就行了
警告不用理睬,等待shader的初始化,完成後:
點擊Save All保存導入的所有文件,然後新建一個Animation的文件夾,用於保存所有的動畫資源。
將資源包裏面其他所有文件都拖入進來
骨骼選擇,之前導入的骨骼,然後點擊Import All 導入所有動畫
點擊Save All 保存所有動畫文件。
設置控制器輸入,這裏爲了簡便,主要設置電腦控制,wasd,空格,鼠標,不考慮移動端和手柄。
修改MyCharacter Event Graph藍圖
爲了好看,簡單修改一下Material顏色表現一下:
2、Blend Space 1D 一維混合空間
在Animation文件夾中創建Blend Space 1D,用於表示和定義Idle,Walk和Run動畫之間的關係。
雙擊打開
在左側,找到Axis Setting 並做如下設置
將右側動畫片段拖動到速度軸上面
3、動畫藍圖 Animation BP
創建動畫藍圖,並命名爲CharacterAnimBp
雙擊打開動畫藍圖
右鍵空白處,鍵入state machine,添加狀態機,並且命名爲locomotion,
雙擊狀態機,進入,右鍵空白處,創建一個state,並將其重命名後,雙擊進入。
將右側資源(第二部中準備得Blend Space)拖入進來,並連線
創建速度變量Speed,這個變量會在Event Graph裏面被改變,從而控制動畫
這時,切換到最外層,並連線
通過改變右側的Speed值,可以看到左側視窗中人物的動畫變化。
進入狀態機內,完成狀態機
創建跳躍開始狀態
設置跳躍開始動畫
設置可以從混合空間包含的動畫轉換到JumpStart狀態的條件,當綁定了該動畫藍圖的Pawn在空中時,執行此起跳動畫。
設置跳躍循環動畫,並設置轉換條件,動畫過渡比率爲0.5,
設置跳躍結束動畫,並設置轉換條件——當Pawn不在空中,也就是在地面的時候,播放此動畫
連接結束動畫和一維混合動畫,並設置條件,比率爲百分之十
在Event Graph中進行邏輯判斷
- 當該動畫藍圖附加給一個實例化的對象時, Set (Is In Air和Speed纔會執行下去);
- 其中Try Get Pawn Owner 是嘗試獲取場景中存在的Pawn;
- Get Movement Component 是獲取該Pawn的Movement組件,通過Movement組件判斷該Pawn是否在空中;
- Is Falling正在下落,也就是不在地面,在空中時,返回true;
- Get Velocity獲取Pawn的向量速度;
- VectorLength獲取向量的長度;
4、MyCharacter角色藍圖之ViewPort
創建角色藍圖,命名爲MyCharacter
雙擊打開MyCharacter,選中Mesh組件,在Details面板中修改Mesh和Animation,使用我們自己的骨骼,使用在第三步中創建的動畫藍圖。
使用移動快捷鍵W,上下移動,得到合適的位置,使用旋轉工具,讓Character面向淡藍色箭頭
選中CapsuleComponent,在Details面板中修改Shape,使得Capsule Collision組件與Character差不多
添加相機,添加相機之前先給相機添加一個父組件Spring Arm,用於管理相機,修改名字,並在Details面板中的Camera Settings勾選Use Pawn Control Rotation,勾選之後,相機會跟隨控制器旋轉,這裏,我們的控制器是鼠標
選中Movement組件,修改Jump Z Velocity爲600,跳的時候,向上的速度就是600了
勾選 Orient Rotation to Movement,當角色發生旋轉的時候,旋轉的速度會使用上面設置的Rotation Rate
點擊Class Defaults ,搜索controller,取消勾選Use Controller Rotation Yaw,使用控制器來旋轉Z軸,這裏我們會自己來控制,所以不需要勾選
5、角色藍圖之EventGraph
跳轉到Event Graph選項卡,刪除原有的事件,輸入如下節點,這裏是控制WASD 行走
添加鼠標輸入,鼠標作爲控制器,控制着Spawn後面的攝像機依據Spawn的世界座標系進行旋轉。
添加鍵盤空格鍵控制角色跳躍的操作
6、創建遊戲模式藍圖
創建GameStateBase類型的藍圖,打開後,在Class Defaults的Details面板下,更改Default Pawn Class 改成我們自己的
在主窗口的世界設置的下,更換GameMode
7、運行遊戲
按鍵WASD,空格,鼠標都可以正常運行
Bug解決:
當Pawn跳躍的時候,下落的過程中,主角會抖一抖,落地的時候也會抽搐的樣子……
Loop動畫需要循環,Start和End動畫不需要循環,另一方面,當動畫表現不好的時候,修改的動畫的相關屬性可以得到比較好的表現。