본문 바로가기

언리얼 BluePrint 정리

07/05 학습 정리 ( HP_Bar 구현 )

HP_Bar 구현

 

게임속 체력을 표시해주는 체력바 또한 UI이며 Widget BP로 구현한다.

 

WBP_Guage 생성하고 Crosshair 만들었듯이 만들면 되지만 HP_Bar는 ProgressBar로 만든다.

 

 

ProgressBar

 

팔레트의 일반 카테고리에 있으며 0% ~ 100%의 값을

시각적으로 알리고 싶을때 사용

ex ) 로딩바, 다운로드 진행도, 체력바, 주문 캐스팅 진행도

 

변수인지를 체크해야 이벤트 그래프에서 변수로 사용가능

 

Padding : 여백의 크기값, 상하좌우 개별설정가능하다

 

Percent :  0~1, Ratio

Bar Fill Type : ProgressBar의 값이 어느방향에서 어느방향으로 채워질지 선택

 

Fill Color and Opacity : RGBA, HSV 선택가능

H : 색상 S : 채도 V : 명도

 

 

 

 

 

 

SIze Box

 

미리 크기를 정해 놓아 화면의 크기나 비율이 바뀌어도 미리 정한 해상도로 내부 컨텐츠를 맞춰주는 패널

 


 

 

WBP_Guage는 SizeBox → Border(경계선 그리는 기능) → ProgressBar로 구성된다

 

 

 

이렇게 만들어진 WBP_Gauge는 사용자 생성 카테고리에 저장 되어 

Canvas → SizeBox → Border → ProgressBar를 만들고 싶으면 Canvas → WBP_Gauge로 똑같은걸 만들 수 있다.

 

 

색을 변경시키는 기능과 현재값으로 Percent가 바뀌게 하는 기능을 위해 Interface를 추가해준다.


Enemy HP_Bar구현

 

적의 체력바는 적의 머리위에 생성 시켜줄거라서 WBP_Gauge를 Canvas안에 생성하지 않았다.

 

BP_Enemy

BP_Enemy에서 Widget 컴포넌트를 생성하고 Widget Class에서 만들어둔 WBP_Gauge를 선택하고 원하는 사이즈에서 드로를 누르면  SizeBox에서 설정한 크기 만큼으로 변경된다 

 

 

Space를 World로하면 월드스페이스로 위젯이 나오기 때문에 앞은 보이는데 뒤는 안보이는 현상이 일어나는데

Space를 Screen으로 변경해주면 된다.

 

BP_Enemy 이벤트그래프

 

BP_Character에서 상속받은 SetLifeNow함수를 BP_Enemy에서 오버라이드

 


Player HP_Bar 구현

 

 

플레이어의 체력바는 스크린에 띄워야하기 때문에 Canvas를 사용해야해서 WBP_Gauge를 쓸수없어 WBP_PlayerGauge를 따로 생성, 플레이어 체력바도 관리 해야하니 Enemy 체력바에 사용한 BP_Gauge Widget Interface 추가

 

BP_Player
BP_PlayerController
WBP_PlayerGauge

 

위 방식은 체력바 하나에 해당하는 설계이므로 MP_Bar나 Stamina_Bar에 관해서는 새로운 인터페이스를 만들어야한다.

 

BP_Player에서 BP_PlayerController를 호출

                                ↓

BP_PlayerController에서 WBP_PlayerGauge를 호출

                                

WBP_PlayerGauge에서 WBP_Gauge를 호출