UE4 第三人稱完全流程

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動畫不需要循環,另一方面,當動畫表現不好的時候,修改的動畫的相關屬性可以得到比較好的表現。

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章