ZoomIn 상태에서 캐릭터가 화면 밖으로 나가는 문제
zoonTimeLine에서 Float 트랙 인 CaneraLagSpeed를 추가해
길이 : 0시간 : 0 / 길이 : 0.25 시간 : 25로 지정
Camera Arm에서 set Camera Lag Speed를 추가해 TimeLin과 연결해 준다.
ZoomIn 상태에서 다른 스킬을 사용 시 ZoomIn이 풀리지 않는 문제
BP_FireBall의 이벤트 그래프의 Deactivate이벤트 호출 시 ZoomOut도 같이 호출해 해결한다.
CrossHair 만들기
뷰옵션 - 엔진콘텐츠에서 원하는 이미지를 찾아온다.
위젯 블루프린트를 생성해 준다.
팔레트의 이미지를 Canvas panel로 넣어준다.
Canvas panel : 플레이 시 화면에 보이게 될 화면 크기를 말한다.
디테일도 지정해 주자
Alignment를 0.5 / 0.5로 지정하면 정중앙으로 지정될 것이며
Size To Content를 true 설정하면 X, Y크기가 서로 동일해진다.
Appearance의 brush에서 Image를 지정할 수 있다.
시작하기 전 BP_PlayerControllerInterface 인터페이스를 생성 후 아래 두 함수를 추가한다.
플레이 시작 시 바로 CrossHair를 생성하고 이것을 FireBall 활성화 이후 마우스 우클릭으로 zoomin, out을 할 것이기에 BeginPlay이벤트에서 생성하도록 한다.
WBP Cross Hair 위젯 생성 후 class는 아까 만들어 두었던 WBP_CrossHair 인터페이스를 지정하고 OwingPlayer는 나 자신이기에 self를 지정해 둔다.
이후 위젯의 return value를 변수로 승격해 CrossHair로 지정해 두고 이 변수를 Add to Viewport로 화면 추가까지 해준다.
ZOrder : UI 간의 우선순위를 말하며 수치가 클수록 화면의 상단에 위치하도록 된다.
Show Cross Hair, Hide Cross hair 이벤트를 호출하게 될 시 Set Visibility로 위젯을 켜고 끌 수 있게 한다.
클릭 시 show이벤트를 호출, 클릭 해제 시 Hide이벤트를 호출하기 때문에
show이벤트 호출 시 Visibility는 Not Hit - Testable, Hide이벤트 호출 시 Visibility는 Collapsed로 지정하도록 한다.
- Visible : 기본으로 보이게 되며, 히트 테스트와 커서랑 상호작용이 가능하다.
- Collapsed : 기본으로 보이지 않으면서 레이아웃에서 공간을 차지하지 않아 상호작용 불가능하다
- Hidden : 기본으로 보이진 않지만 레이아웃 공간은 차지한다. 하지만 숨겨져 있으므로 인터렉션은 일어나지 않는다.
- Not Hit-Testable(Self & All Children) : 기본으로 보이지만 상호작용이 불가능하며 자신과 자식들 모두 포함된다.
- Not Hit-Testable(Self Only) : 기본으로 보이지만 상호작용 불가능하며 자신만 포함된다.
BP_Player의 이벤트 그래프에서 Direction에 switch를 추가 후 Finished에 연결해 준다.
이후 로직이 BP_Player로 돌아와 zoomin / out시 TimeLine의 Direction값을 통해 Controller의 show cross hair를 불어오게 한다.
'[unrealengine4]' 카테고리의 다른 글
2023-07-07 언리얼(AI(비헤이비어 트리)) (0) | 2023.07.11 |
---|---|
2023-07-05 언리얼(LIfeGauge(피통 바), ProgressBar) (0) | 2023.07.06 |
2023-07-03 언리얼(시야각(FOV), TImeLine) (0) | 2023.07.04 |
2023-06-30 언리얼(FireBall 스킬 피격처리, 스플래쉬 데미지, Actor삭제, 스폰시 노출) (0) | 2023.07.04 |
2023-06-29 언리얼 (actor 시작위치 지정 ,ProgectileMovement ,Find Look at Rotation) (0) | 2023.06.30 |