1. 程式人生 > >[unreal4入門系列之十] UE4新增角色到場景中

[unreal4入門系列之十] UE4新增角色到場景中

201049jbyub1g2jlnz2dyz

現在我們已經有了一個場景並且運行了,我們需要新增一個角色到場景中。要這樣做,我們必須從UE4的GameFramework類繼承它。

一. 開啟上次建立的關卡

如果你已經關閉了專案,並且儲存了上次建立的關卡(假設命名為Untitled),然後你現在開啟上次我們的專案,你會發現我們開啟的只是Minimal_Default關卡。現在,讓我們在內容瀏覽器中選擇過濾器,然後選擇關卡,再雙擊下面的Untitled就可以開啟以前建立的關卡了。(其預設儲存的位置是StarterContent\Maps資料夾下。)

二. 專案設定

如果你不想每次開啟這個專案的時候,都要選擇Untitled關卡的話,可以這樣設定:


1) 點選編輯 -> 專案設定。


2) 選擇地圖&模式,在右側有個Default Maps,這裡的Game Default Map是遊戲執行的預設關卡,然後Editor Startup Map是編輯器啟動也有個預設關卡,你可以點選右邊的三角形來選擇關卡。


3) 點選右上角關閉視窗就會自動儲存設定了。

三. 建立一個從Character類繼承的類

從基本框架類繼承是很簡單的:
1) 在專案中開啟你的UE4編輯器。

2) 在檔案,選擇“新建C++類”。


3) 這裡你可以選擇從Pawn類(Pawn類從控制器接收輸入)繼承或從Actor類繼承。不過我們可以這裡選擇從Character類(角色)繼承。



4) 點選繼續,然後你可以命名這個類。這裡我們將其命名為Avatar。

5) 最後點選建立類來使用程式碼建立這個類。

6) 然後UE4會自動執行你的VS專案。我們在專案解決方案中開啟Avatar.h檔案:


Avatar.h大致上看起來是這樣的:
  1. #pragma once
  2. // Avatar.h code file
  3. #include "GameFramework/Character.h"
  4. #include "Avatar.generated.h"
  5. UCLASS()
  6. classMYPROJECT_API AAvatar : public ACharacter
  7. {
  8. GENERATED_UCLASS_BODY()
  9. };
UCLASS()和GENERATED_UCLASS_BODY()都是UE4定義好的巨集,UCLASS()巨集使得你的C++程式碼在UE4編輯器中可用。GENERATED_UCLASS_BODY()會適當處理你的類函式成為一個UE4類。現在你不需要徹徹底底地搞清楚它們的工作原理,你只需要確保它們在正確的位置出現。

四. 為角色建立一個模型

現在我們avatar是繼承了角色類,但是還需要給角色賦予一個模型。我們可以從UE4的商城找免費的模型,步驟如下:

1) 點選工具欄的市場,進入UE4的商城。


2) 在類別中選擇角色&動畫。


3) 找到一個名字叫Animation Starter Pack的免費資源包,點選進去。


4) 點選下圖中的免費按鈕新增到庫裡面。


5) 下載完後點擊庫,點選“新增到工程”。


6) 在新視窗中,選擇Demo1,然後點選新增到專案。


7) 現在,我們可以找到剛才新增的資源,在內容瀏覽器點選選擇路徑:


8) 選擇StarterContent資料夾:

五. 載入網格

通常情況下,如果使用C++程式碼來指定要載入的資源,這是一種硬編碼的壞習慣。在執行程式的時候,如果資源發生了改變,則程式不會做出改變。更好的做法是,可以在執行時改變載入的資源。

下面我們從C++類中建立一個藍圖:
1) 在選單欄中的視窗-開發者工具-類別檢視器。

2) 在類別檢視器中,右擊Avatar,選擇建立藍圖類。(如果找不到Avatar,請關閉UE4編輯器,再重新開啟)


3) 在下方輸入藍圖類名稱(我這裡是BP_Avatar),點選儲存。然後會來到藍圖編輯器:


4) 在左上角的元件視窗中,選擇Mesh:


5) 在右側的細節面板中,在Mesh選項卡中,選擇下拉按鈕,然後點選檢視選項,點選顯示引擎內容,再選擇TutorialTPP。


6) 這時候碰撞體看起來是這樣的,模型和碰撞體是對不上的:


7) 然後我們通過W、E、R快捷鍵變換模型,使之近似地包圍在碰撞體裡面。如果碰撞膠囊體不夠大,你可以點選元件的CapsuleComponent,然後在細節面板的Shape調節膠囊體大小:


8) 然後我們可以關閉視窗。在內容瀏覽器中將BP_Avatar拖放到場景中。

六. 新增動畫

你可以看到人物模型是呈T型的,3D建模/動畫師通常都會讓人物預設狀態下襬T型,因為此時這可以使得人物做出各種各樣的動作。

1) 雙擊內容瀏覽器的BP_Avatar,重新開啟藍圖編輯器。


2) 在上方選項卡中點選視口,然後選擇Mesh,在右側的細節面板中的Animation選項中的Anim Blueprint Generated Class中選擇UE4ASP_Hero_AnimBlueprint。


這樣就完成了一個模型的動畫添加了,關於動畫的更多細節,我們在後面的教程中會深入探討。

七. 新增攝像機

為了使得我們有一個第三人稱視角,我們給該角色新增上攝像機以追隨該角色。

1) 在元件中進行如下的步驟:


2) 移動攝像機並旋轉角色到如下狀態(注意角色的藍色箭頭是角色的前進方向,所以要使得攝像機和角色自身的朝向都要面對著藍色箭頭):


3) 點選工具欄的儲存。

現在的角色還不能被控制,我們下一節繼續講如何編寫C++程式碼來控制角色。