在游戲中經常會出現第一人稱和第三人稱的視角切換場景,筆者在這里簡單介紹如何進行這步操作。
1.創建角色
在內容瀏覽器中添加2個Character藍圖,分別命名為FirstPersonalCharacter和ThirdPersonalCharacter
雙擊打開FirstPersonalCharacter藍圖編輯器,在組件窗口添加攝像機Camera組件,並調整到合適的位置,並勾選CameraSettings中的Use Pawn Control Rotation選項。
在事件圖表中添加移動邏輯(這里不多解釋其原理及運行機制)
在ThirdPersonalCharacter藍圖中進行相同設置,不過還需要幾步額外的操作。在組件窗口添加SpringArm,將Camera拖放入其子項,之后調整攝像機位置。
在Mesh組件的Animation中將類設置為第三人稱藍圖
將Mesh的骨骼設為SK_Mannequin(這是虛幻商城中一款免費的人物骨骼,下載后添加到指定工程即可),之后調整人物朝向和人物在膠囊體中的位置,如果讀者有其他人物骨骼和動畫,則可以隨個人喜好設置
接下來是很重要的一步,在移動組件中搜索rotation,勾選Orient Rotation to Movement,在第三人稱自身組件中搜索rotation,取消勾選Use Controller Rotation Yaw,在SpringArm組建中搜索rotation,勾選Use Pawn Control Rotation。
在這三步設置完成后,人物就可以正常轉向了。
2.切換人稱邏輯
打開關卡藍圖創建Event BeginPlay事件,在游戲開始時獲取第三人稱角色並保存,然后向場景中投放(創建)一個第一人稱Character(如果在游戲模式中的設置默認游戲角色是第一人稱,則創建一個第三人稱角色,不過由於第一人稱沒有骨骼模型,是透明的,提前投放在關卡場景中不會顯得異常),位置盡量避免碰撞(雖然沒有骨骼模型,但膠囊體碰撞還是存在),將輸出保存。
添加C鍵驅動事件,作為第三人稱切換到第一人稱的按鍵
先獲取第三人稱角色的位置並保存,在切換視角后調整第一人稱角色的位置。同時添加了判斷邏輯,避免在第一人稱視角時觸發事件(Is3P的初始值設為True,因為關卡運行時默認為第三人稱角色視角)。
添加B鍵驅動事件,作為第一人稱切換回第三人稱的按鍵
由於第三人稱角色的位置在場景中已經存在,所以不用再進行調整,而是將第一人稱角色位置改回切換前的狀態,保證場景中不會出現一個透明碰撞塊。同樣也添加了判斷邏輯,避免重復觸發事件。
運行關卡,C鍵,B鍵功能運行無誤,切換功能正常。