[Blueprint] Unreal 4 Blueprint 基礎互動與Class Blueprint






在之前的文章中簡單介紹過Blueprint。也就是UE4強大的視覺化腳本,但是前面介紹的關卡機制,雖然可以達到互動效果與關卡設計。但是當我們的專案龐大起來,或是有數個需要相同行為的物件時,Level Blueprint的缺點就出現了,你會有非常多重複而且做相同功能的Function或是物件,這無論在維護或是開發時都將是大大的麻煩。

UE4 是基於C++的引擎,也將C++強大的物件導向特性融入到引擎的開發與使用上,大大地優化了工作流程,上面所說的就可以使用UE4 另外一種強大的Blueprint來製作自己的類別,
也就是Class Blueprint!

這樣就可以在我們的之前例子的燈光中加入類似微電腦的機制,讓物件有自己的行為與智慧!
並且可以在往後的開發中不斷被呼叫使用,雖然這些工作都視覺化由Blueprint來製作,但本質上我們就是在進行C++編程,有相關程式背景的相信對這套系統的邏輯與關鍵字非常有親切感。


這邊我們製作一個簡單的互動燈罩,玩家靠近後會顯示按下F可以開關燈的提示,並且玩家按下F後就可以打開關閉燈光。



首先第一步我們先找到想要製作的物件,這邊我使用內建的燈罩,位置在上圖所示的地方。




先直接放到場景中,找個牆壁擺放好位置,這邊的位置不會影響我們Blueprint的運作。


選擇物件情況下,按下上方大大的Blueprint按鈕選擇 Convert selected Actor to Blueprint class。


這樣就會打開我們的Class Blueprint編輯視窗,一開始所看到的是Component editor 這邊所做的事情非常類似Unity 的Component本質上是是一樣的作業方式。 


我們可以直接在上面綠色按鈕處新增我們希望的Component,與Unity 非常類似,這邊我新增了Sport light作為燈罩主光源。


之後我再新增了點光源 與 文字,文字要做為場景中的UI 提示。


之後我再新增一個,Box 碰撞範圍,這邊的作業非常類似之前文章中的Level Blueprint中的做法,只是這次我們使用Class Blueprint將這些元素作為Class Blueprint 的Component也就是我們在定義這個燈罩的物件該有的成員與行為。


可以再右方的列表中修改BOX 範圍的 大小與位置,值得一提的是我們在做些設定時,UE4 的Viewport 會直接即時更新我們的修改,非常方便。


設定完該有的元素後,還需要設定他們的初始狀態,這邊我們想要讓玩家按下F開燈,所以燈光應該一開始都是關閉的,就像Rendering 下面的Visible取消,跟之前文章中的Level Blueprint做法相同,只是這次是在Class Blueprint 的Component editor 下面進行。


設定完成後我們就可以開始撰寫物件的行為了!先切換到Event Graph標籤,就可以看到非常類似於Level Blueprint的視覺化腳本編輯器了。這邊可以直接選擇我們要針對進行動作的元素按下右鍵叫出可以執行的函式。

我們選擇BOX 偵測範圍,來加入進入範圍與離開範圍的事件,這邊可以參考前面的文章


這邊我們需要做點不一樣的設定,就是做F鍵的偵測,但是在此之前我們需要知道是哪個玩家(player)進入了偵測範圍,我們才開啟燈光的F鍵控制設定,一方面是鍵盤控制的方法需要玩家的類別才能進行輸入,所以這邊我們需要開啟鍵盤控制,另一方面也是如果超為一位玩家的狀況,我們就可以知道是哪位玩家觸發了開關,對於往後的遊戲開發流程有幫助。


將碰撞偵測的節點依照上圖所連結。這邊主要是進入碰撞範圍後開啟輸入控制,並指定是哪一個Player,並且觸發文字提示。


完成後可以直接進行按下F後的行為了,這邊非常簡單只需要Toggle visibllity就可以。


按下Compile後就可以進入遊戲測試了,記得按下CTRL+S存檔。


按下F後開啟燈光


製作完成Class Blueprint 之後我們就可以在不同關卡或是任何時候放置無數個相同機制的燈光了!

留言

這個網誌中的熱門文章

[Unreal 4]下載與安裝