虛幻引擎4藍圖筆記(7)-持槍射擊

前言

藍圖是虛幻引擎的一個可視化編碼語言,不會編程的朋友也能通過藍圖來實現遊戲的製作。
本人於2020年的3月份入坑虛幻4,可能技術上有些欠缺,要是有大佬發現哪裏錯了的話敬請指出。寫文章的主要目的是爲了記錄自己的學習過程,不過也希望能幫助到其他像我一樣的朋友學習虛幻藍圖。不同版本的虛幻引擎有進行不同程度的漢化,相應藍圖節點也會變化
此文章中使用的虛幻引擎版本: 4.23.1
隨着學習的深入,後面的筆記會慢慢省略一些前面筆記寫的內容,有需要的話可以去看較基礎的筆記內容

虛幻4官方文檔
虛幻4中文官網
虛幻引擎藍圖API參考文檔
虛幻引擎4藍圖節點-小狐狸233
注:此篇文章主要是介紹一下持槍和左鍵射擊的內容,其中需要導入一個第一人稱的包,文章末尾有已創建好的項目。

上一篇筆記

虛幻引擎4筆記(6)-過場動畫

動態預覽圖

在這裏插入圖片描述

藍圖預覽

[1]. 角色藍圖

在這裏插入圖片描述
在這裏插入圖片描述

[2]. 子彈藍圖

在這裏插入圖片描述

一、導入第一人稱包

[1]. 在開始時選擇

在這裏插入圖片描述

[2]. 創建後導入

在這裏插入圖片描述
在這裏插入圖片描述

二、創建操作映射(綁定射擊鍵)

在這裏插入圖片描述

三、子彈藍圖

[1]. 創建子彈藍圖類

記得選擇的是Actor類型的藍圖類
在這裏插入圖片描述

[2]. 添加球體

在這裏插入圖片描述

[3]. 添加模擬物理組件

添加一個Projectile Movement組件
在這裏插入圖片描述

[4]. 添加球形碰撞組件

添加一個Sphere Collision碰撞體
在這裏插入圖片描述

[5].覆蓋根組件

如果你前幾步創建正確的話,組件界面如下圖
在這裏插入圖片描述
之後將球體Sphere拖動到碰撞體Sphere1
在這裏插入圖片描述
在這裏插入圖片描述
然後就是覆蓋根組件DefaultSceneRoot了,覆蓋的原因是因爲根組件的某些配置可能會影響到子彈的碰撞。
拖動碰撞體Sphere1根組件DefaultSceneRoot,讓碰撞體Sphere1成爲新的根
在這裏插入圖片描述

在這裏插入圖片描述

[6]. 設置發射速度

如果你沒有設置速度的話,發射的子彈就會像是水滴一樣落下
選中模擬物理組件ProjectileMovement
在這裏插入圖片描述
在右側的細節面板中找到下圖紅圈的配置並修改。
Initial Speed爲發射時的初始速度,而Max Speed是子彈能達到的最大速度
你可以將兩個速度設置成一樣的值
在這裏插入圖片描述

[7]. 設置反彈

選中模擬物理組件ProjectileMovement
在這裏插入圖片描述
Should Bounce選項勾選。
在這裏插入圖片描述

[8]. 設置碰撞

先設置一下對應的碰撞大小
在這裏插入圖片描述
Sphere Radius中設置碰撞球體的半徑
在這裏插入圖片描述
選擇碰撞的方式,BlockAll表示對任何的物體都能發生碰撞
在這裏插入圖片描述

[9]. 設置子彈大小

選中球體Sphere
在這裏插入圖片描述
Sphere組件中也有碰撞的設置,因爲已經在碰撞體Sphere1中設置過了,所以Sphere組件不需要設置。
在這裏插入圖片描述

[10]. 子彈消失藍圖

先進入事件圖表,在這你可以設置藍圖,正常來說遊戲內的子彈是直接觸碰到物體就會直接消失,那個藍圖略微複雜點,在這裏還是介紹一個子彈經過一段時間就會消失的藍圖。
如果要當子彈消失的話,需要有一個事件來觸發,這就需要用到我們之前創建的射擊操作映射了。
在這裏插入圖片描述
在這裏插入圖片描述
然後創建一個延遲節點,當按下射擊鍵過一段時間後,子彈纔會消失。
在這裏插入圖片描述
設置經過10秒之後,纔會執行下一個節點
在這裏插入圖片描述
添加一個刪除自身藍圖類的節點
在這裏插入圖片描述
在這裏插入圖片描述
最後將三個節點按下圖順序相連即可

在這裏插入圖片描述
要記得給該藍圖類編譯
在這裏插入圖片描述

四、角色藍圖

[1]. 創建角色藍圖類

創建藍圖類時,選擇Character的類型
在這裏插入圖片描述

[2]. 添加槍把

下圖是槍把靜態網格體對應的存放位置
在這裏插入圖片描述
點擊添加組件,選擇Skeletal Mesh(SK_FPGun)來創建,或者是創建了Skeletal Mesh之後,再進行添加Mesh

在這裏插入圖片描述
在這裏插入圖片描述
在視口中調整槍把的位置和方向,槍把方向爲藍色箭頭的方向
在這裏插入圖片描述

[3]. 添加攝像機

在這裏插入圖片描述
在這裏插入圖片描述

[4]. 添加子彈

這裏的子彈僅僅是爲了確定子彈需要生成的位置才創建的,實際射擊時生成的是之前創建的bullet藍圖類,而不是此處的球體。

添加一個球體
在這裏插入圖片描述
調整其大小
在這裏插入圖片描述
調整這個球體到槍口處
在這裏插入圖片描述
然後將槍把SkeletalMesh球體Sphere附屬到相機Camera下,如果你沒有附屬到攝像機下的話,之後的上下視角時僅僅是攝像機在移動,而槍把和球體還是會在原位。
在這裏插入圖片描述

到此組件就不需要進行調整了

[5]. 藍圖

(1) 觸發事件

進入藍圖類的事件圖表中,創建一個射擊事件節點。
在這裏插入圖片描述

(2) 生成子彈

創建一個從類生成Actor的節點,如果需要查看這個節點的使用方法可以參考→虛幻引擎4藍圖節點-小狐狸233
在這裏插入圖片描述
因爲未選定需要生成的是什麼,所以默認爲空

Collision Handling Override是設置藍圖類的生成方式
在這裏插入圖片描述
Class中選擇剛剛創建的bullet藍圖類
在這裏插入圖片描述
然後將射擊事件節點與該執行節點相連
在這裏插入圖片描述
如果只有這兩個節點的話,沒法確定生成子彈的位置、速度等信息。

所以就需要在Spawn Transform口接入一個變換,確保變換有我們所需要的位置、速度等信息。

(3) 獲取子彈位置信息

創建一個獲取球體Sphere位置信息的傳值節點
在這裏插入圖片描述
弄完後長這樣
在這裏插入圖片描述

(4) 獲取鏡頭的旋轉

如果沒有獲取攝像機的旋轉方向的話,不管你的視角是什麼方向,你的子彈都只會從一個默認的方向發射出去。
我們這時需要選擇含有攝像機的GetWorldRotation節點
在這裏插入圖片描述
在這裏插入圖片描述

(5) 將旋轉與位置組合成向量

RotateVector節點能夠將位置和旋轉進行結合
在這裏插入圖片描述
在這裏插入圖片描述
然後將節點GetWorldRotation的輸出端連接到RotateVector的輸入端
在這裏插入圖片描述

(6) 添加加法節點

在這裏插入圖片描述
在這裏插入圖片描述
將剛剛的節點與加法節點相連
在這裏插入圖片描述

(7) 創建變換

生成子彈的節點需要傳入的是變換Transform類型,所以剛剛的向量沒法直接連接。
Make Transform節點就能將向量、位置等信息轉換成Transform類型再輸出
創建一個MakeTransform節點
在這裏插入圖片描述
在這裏插入圖片描述
將剛剛創建的節點與該節點相連
在這裏插入圖片描述

最後將Make Transform的輸出口與生成Actor Bullet節點Spawn Transform接口相連。
在這裏插入圖片描述

(8) 射擊音效

前面步驟完成之後,我們的槍就可以有射擊的功能了,但是這個射擊不會產生相應的聲音。
你如果需要射擊發出不同的聲音時,就需要用到節點Play Sound at Location

在這裏插入圖片描述

Sound接口就能夠選擇你所需要的音效了,這個節點執行後,會在你需要的位置播放一次音頻。

在這裏插入圖片描述
選擇音效
在這裏插入圖片描述
創建一個GetWorldLocation(Sphere)節點,Sphere爲子彈的位置。
在這裏插入圖片描述
按下圖方式進行連接
在這裏插入圖片描述
以上步驟完畢後,編譯即可
在這裏插入圖片描述

五、移動、視角、跳躍

這幾個藍圖的話我就直接貼藍圖了,映射和相應的藍圖節點就不介紹了。
你可以參考參考下面的博客
虛幻引擎4藍圖筆記(3)-視角移動
虛幻引擎4藍圖筆記(2)-角色移動
虛幻引擎4藍圖筆記(1)-角色跳躍
虛幻引擎4藍圖節點-小狐狸233
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

六、已創建好的項目

在這裏插入圖片描述
下載鏈接
提取碼: 7zpz

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