文章目錄
前言
藍圖是虛幻引擎的一個可視化編碼語言,不會編程的朋友也能通過藍圖來實現遊戲的製作。
本人於2020年的3月份入坑虛幻4,可能技術上有些欠缺,要是有大佬發現哪裏錯了的話敬請指出。寫文章的主要目的是爲了記錄自己的學習過程,不過也希望能幫助到其他像我一樣的朋友學習虛幻藍圖。不同版本的虛幻引擎有進行不同程度的漢化,相應藍圖節點也會變化。
此文章中使用的虛幻引擎版本: 4.23.1
隨着學習的深入,後面的筆記會慢慢省略一些前面筆記寫的內容,有需要的話可以去看較基礎的筆記內容。
虛幻4官方文檔
虛幻4中文官網
虛幻引擎藍圖API參考文檔
虛幻引擎4藍圖節點-小狐狸233
注:此篇文章僅實現遊戲的小地圖、大地圖的簡易實現方式,不對其他的內容進行介紹,此文章需要導入一個第三人稱包,實現地圖的藍圖不止文章中的一種方法,你還可以選擇其他的藍圖節點來實現地圖的功能。
上一篇筆記
下一篇筆記
動態預覽圖
預覽
關卡藍圖
一、小地圖的實現
[1]. 創建渲染目標
這個渲染目標主要是爲了從俯視鏡頭中獲取信息,可以通過渲染目標來創建材質,以便之後地圖的顯示。
[2]. 角色藍圖
此處使用的是第三人稱的默認角色藍圖,藍圖的位置如下
(1) 添加移臂
(2) 添加場景鏡頭組件
先選擇剛剛創建的移臂,然後再添加Scene Capture Component 2D組件附屬到移臂下方
(3) 移臂調整
因爲我們需要做的是一個小地圖,而小地圖的視角是俯視向下的,所以我們需要調整鏡頭的位置到人物的頭頂。
通過移臂我們可以直接調整移臂附屬下的組件位置。
繞Y軸的旋轉改爲 -90度 ,高度隨意
(4) 輸出渲染目標
選擇剛剛的Scene Capture Component 2D組件,
在Texture Target中選擇剛剛創建的渲染目標,選中之後就能將這個組件的捕捉到的鏡頭信息輸出到該渲染目標中去。
選擇完畢後編譯保存角色藍圖
[3] 創建材質
如果你之前的操作沒有出現錯誤的話,渲染目標將會顯示相應的鏡頭信息。
右鍵渲染目標點擊創建材質
材質的名稱會默認在渲染目標的基礎之上添加 _Mat 的後綴
[4]. 材質
因爲當前創建的材質是一個3D類型的,如果需要弄成小地圖進行顯示的話,就需要變成2D,即平面的。
先打開材質,從左側的視口就可以看見是一個立體的材質。
然後修改Material Domain的參數爲User Interface,變更後材質的藍圖會發生變更
將RGB輸出與最終顏色相連即可。
視圖變爲2D
[5]. 控件
以上的步驟完成之後,我們需要有一個控件能夠將材質中的鏡頭輸出到屏幕。
具體的操作方法與上一個筆記內容類似:虛幻引擎4筆記(12)-遊戲界面
(1) 創建控件藍圖
(2) image組件
點開控件藍圖,並添加一個image組件到面板中
調整好小地圖在屏幕當中的位置。
(3) 繪製圖像
選擇剛剛的image組件,並在細節面板中找到Brush的參數,選擇之前創建的地圖材質。
編譯保存
[6]. 關卡藍圖
控件創建完畢後,就需要使用他
(1) 幀事件
如果使用的事件節點只是觸發一次的話,在大地圖功能中需要將所有控件刪除,而無法實現小地圖的顯示,所以不能使用事件Begin Play來觸發相應的控件。
該事件節點每經過一幀就會觸發一次與其連接的節點。
注:因爲這個Tick節點是每經過一個幀就執行一次,所以會比較消耗性能。
(2) 創建控件
之前我很疑惑的是爲什麼不是直接使用控件,而是創建控件。
之後思考了一下,可能就是由於創建了控件之後,纔有辦法對控件中的內容進行操作。
(3) 玩家控制器
如果你的遊戲中不只有你一個玩家,且沒有指定玩家的話,你的小地圖可能就會顯示的是其他玩家的鏡頭。這個節點相當於指明瞭爲玩家0(即自身)創建一個小地圖控件。
(4) 添加到屏幕
Add to Viewport的作用就是將控件之中的東西顯示到相應的玩家屏幕中。
注:該節點沒法直接搜索創建,需要通過其他節點的輸出接口創建
連接相應接口
編譯保存
二、大地圖的實現
因爲在之前的小地圖操作中已經設置好了相應的組件和材質,兩個地圖可以使用同一個材質來進行顯示,所以要弄一個大地圖就只需要再創建一個控件即可。
[1]. 控件
因爲相應的操作和步驟一中的類似,所以就不再贅述了。
編譯保存
[2]. 操作映射
我們需要綁定一個按鍵M,然後實現按下M之後就顯示大的地圖,鬆開M後大地圖就消失。
[3]. 關卡藍圖
(1) 操作事件
創建一個剛剛綁定好的事件節點
(2) 創建控件
(3) 玩家控制器
(4) 添加到屏幕
(5) 刪除地圖
添加一個 Remove all widget節點,這個節點的功能就是執行該節點後,刪除所有的控件,從而使得地圖消失。因爲小地圖是每幀都會繪製一次,所以不用擔心小地圖會被刪除。
將事件節點的Released接口與該節點相連,當鬆開M鍵之後就會執行這個節點了。
記得編譯保存,然後你就能將那個角色藍圖類拖動到地圖中使用了。