UE4 TUTORIAL : BLUEPRINTS 筆記
同步發:https://travisnotathome.blogspot.com/2020/06/ue4-tutorial-blueprints.html
先說目前心得結論。
參考教學 : https://www.raywenderlich.com/663-unreal-engine-4-blueprints-tutorial
建立Blueprints (class)時,他會請你選擇要繼承時做的class類別
大致看下來:
在Scene(Unreal中稱 Level)中放入Player Strat物件,該物件會決定player一開始生成出現的位置。
在這裡建立綁定Binding你的輸入key資訊 :
Unreal提供兩種key binding
這邊的例子是採用Axis Mapping來做方向行走
類推另一個水平方向,也是類似的結構
大概分有三種反應,都是block的狀況才會受到阻擋停下來。Overlap就是可以穿過去。
無論是overlap還是block,雙方都會收到trigger
處理碰撞
先說目前心得結論。
Blueprint : Unreal提供的類Unity Prefab製作方式。而此prefab的程式component可以用類似拉線路圖拼圖的方式來組合程式互動邏輯。
------------------------------------------
參考教學 : https://www.raywenderlich.com/663-unreal-engine-4-blueprints-tutorial
建立Blueprints (class)時,他會請你選擇要繼承時做的class類別
大致看下來:
- Actor : 所有可以被丟到world裡的都叫Actor (即便他可能是不能幹嘛的花瓶)。
- Pawn : 繼承自Actor,可以被user操作和接受user input的Actor。
- Character : 繼承自Pawn,自帶四處走的功能了。
- Player Controller : (目前還沒用到先不講)
- Game Mode Base : 決定一些遊戲機制的物件,ex:玩家生成位置、輸入操作系統、如何進入遊戲、計分?
完成Game Mode Base設計之後,要記得到Setting/World Setting告訴這個world你採用哪個Game Mode Base。 - (其他還沒用到過所以不太清楚)
總之先設定好Game Mode Base後,同時也要設定要產生的玩家可操作物件(Default Pawn Class)為何。
在Scene(Unreal中稱 Level)中放入Player Strat物件,該物件會決定player一開始生成出現的位置。
設定Input
要在unreal中做輸入與互動操作並在blueprint中編輯的話,需要先到Edit\Project setting\Input中設定
在這裡建立綁定Binding你的輸入key資訊 :
Unreal提供兩種key binding
- Action Mapping : 該key只能存在兩種狀況 : "按下去"與"沒按下去"。也就是非0即1。
- Axis Mapping : 有程度量的輸入。比較直觀的例子大概是PS4的蘑菇頭搖桿那樣的感覺。
這邊的例子是採用Axis Mapping來做方向行走
建立Key mapping
多增加key來操作,這邊共有4個key
設定程度=> WASD控制上下左右
本章大重點來了
前面在設定中設完input種類之後,在pawn物件(玩家可操作的物件)中,blueprint會出現相對應的input事件
使用Blueprint來移動玩家
前面在設定中設完input種類之後,在pawn物件(玩家可操作的物件)中,blueprint會出現相對應的input事件
然後在pawn這個物件中建立一個變數(float)來讓人員可以在外部修改玩家移動速度
有趣的是一些加減乘除,矩陣運算之類的也都有blueprint可以叫出來用
這邊就是將玩家走的方向拿去程上移動速度
這邊就是將玩家走的方向拿去程上移動速度
最後掛上一個 Add Movement Input會累積你要行走的量,方向等(其實也算不上累積,就一frame而已)
類推另一個水平方向,也是類似的結構
但是這樣仍然不會位移移動到player。
真的要讓他產生位移,需要加上兩個物件在Event Tick(類似unity的 update())上連接起來
真的要讓他產生位移,需要加上兩個物件在Event Tick(類似unity的 update())上連接起來
- Consume Movement Input Vector
計算目前累積的移動量 - AddActorLocalOffser
對pawn物件實際產生位移去移動它
固定移動速度
------------------------
Actor Collision
跟unity一樣,unreal也有碰撞體的設計能讓物件之間產生碰撞事件或是彼此擋住。
unreal提供了兩種做法來實作碰撞效果。
- Collision mesh
依據模型mesh來自動產生的collision mesh。 - Collision component
跟unity的collider一樣,就是用box collider、 capsule、 sphere collider去拼出來一個自己的collider形狀。
啟用Collision
Unreal對collision的偵測只會做在blueprint的根物件root上,所以如果要用collision mesh的話,要記得把mesh往上搬去換掉預設的空root
之後再對object控制位移的"AddActorLocalOffset"打開"Sweep(移動)"就可以有Collision阻擋的效果。(究竟為甚麼我可能還要問一下公司同仁就是了,有點神奇阿)
碰撞回饋
大概分有三種反應,都是block的狀況才會受到阻擋停下來。Overlap就是可以穿過去。
無論是overlap還是block,雙方都會收到trigger
這邊範例中是使用Custom的碰撞,並設定WorldDynamic類型的物件(這邊是玩家操作的類型的方塊)可以通過(overlap)
處理碰撞
我們撞了香蕉以後要把它吃掉,所以要讓香蕉消失。
故我們在香蕉的object中,去偵測當overlap發生時,要讓this香蕉物件被destory掉
加入"發生Overlap"的事件。
連接,要去Destory一個Actor。target預設是自己。
之後存起來compile一下。去level裡亂撒一波蕉。
有互動了呢
有互動了呢
留言
張貼留言