寫在前面
本項目同步上傳于coding上,國內讀者可以通過在coding下載項目。
也歡迎你加入我的UE4學習交流QQ群:872537977。如果你喜歡我寫的文章,也希望你點贊、收藏、轉發。謝謝!
如果你喜歡我寫的文章,也希望你點贊、收藏、轉發。謝謝!
如果你想參與到這個項目的開發中來,唯一的要求是像我一樣編寫開發日志讓更多的人看到并學習。
coding地址:https://git.dev.tencent.com/JeremyBrett/uRPG.git
在折騰了一段時間新角色之后,我們終于迎來了開發日志的更新。這一期我想講一下關于MiniMap的制作,雖然我還不是很確定最后是否會使用小地圖的形式,還是采用羅盤的方式。不過用藍圖的好處就是可以快速的實驗各種玩法原型。
需求分析
聰明的小伙伴應該已經想到了,制作小地圖的原理,和制作3D的UI是一樣的。
我們只需要將攝像機放在角色的正上方,然后時刻捕捉角色周圍的投影就可以了。
制作過程
SceneCapture2D
首先我們要創建一個藍圖,繼承自SceneCapture2D,并命名為MapCapture。
雙擊打開藍圖,會發現藍圖中自動包含一個CaptureComponent2D組件,這里我們重點設置這個組件中的數據。
這里主要是新建一個渲染目標,取名叫做MapRanderTarget。
然后就是新建一個材質,取名叫做Mat_MiniMap,并將MaterialDomain設置成UserInterface,否則等下會報錯。
材質很簡單,將Texture賦值上渲染目標即可。
ChildActorComponent
這里我故意采用和3DUI選人界面不同的實現方式,目的就是為了引出ChildActor這個Component。是的,這個組件就像godot中對scene的定義:實現Actor之間的嵌套。
我們添加了這個組件之后,再將ChildActorClass設置為我們上文中新建的MapCapture。
然后我們將組件調整到角色正上方,像這樣:
添加到UMG_Main
對了,差點忘記最后一步,將我們的結果顯示在主界面上,雙擊打開UMG_Main。添加一個Image并改名為IMG_MiniMap。
然后將Image設置為上文中新建的材質MatMiniMap即可。
測試調優
運行結果就像文章開頭的截圖一樣,看起來很完美。那就先這樣吧。
下期預告
下期我想實現一個簡單的晝夜變化系統,如果可以的話還包括天氣變化。