UE - 버그 수정, 트리거, 기타 등등
BP-Others
버그 해결
어제 문제였던 회전 버그를 해결했다.
문제는 controller 해제 후 Set Physics Simulate을 true로 설정한 것 때문이었다.
controller가 unpossess되면 캐릭터 무브먼트 컴포넌트가 동작을 멈추기에, Set Physics Simulate 대신 AI Controller를 넣어주었다. 물론 AI Controller는 AI의 로직에 집중되어 있기에, 캐릭터 무브먼트 컴포넌트의 Movement Mode를 Falling으로 설정해야 빙의 해제 후에도 이동할 수 있었다.
애니메이션
애니메이션은 이전처럼 애니메이션 블루프린트를 사용했다.
이번에는 점프 시작 애니메이션이 있어서 isJumping 변수와 isAir 변수로 상태를 구분했다.
isJumping: 플레이어가 점프를 할 때 true
isAir: 공중에 있을 때 true
이렇게 설정한 이유는 플레이어가 공중에서 떨어질 때 점프 애니메이션을 사용하지 않기 위해서다.
결과
버튼 구현
이번에는 버튼을 구현하기 위해 Trigger Box를 이용했다.
Trigger Box: 언리얼 엔진에서 특정 영역에 대한 이벤트를 감지하고 실행하는 데 사용되는 보조 도구다.
트리거 박스는 물리적 충돌을 감지하지 않고, 오직 오버랩 이벤트(Overlap Events)를 기반으로 작동한다.
Trigger Box를 사용해 레벨 블루프린트에서 Overlap 이벤트를 활용하여 버튼을 구현했다.
Trigger Box에 오버랩되면 플레이어인지 확인하고, 원하는 플랫폼 함수를 호출한다.
결과
플랫폼
플랫폼은 두 가지 함수를 만들었다
단방향 이동
lerp를 이용했다. destination과 duration을 지정하여 해당 duration 시간에 맞게 목적지에 도달하는 함수다.
결과
왕복 이동
sin 함수를 이용했다. 초기 위치에 속도, 진폭, 오프셋, 방향을 이용해 직선 운동을 커스텀할 수 있다.
결과
떨어지는 발판 구현
떨어지는 발판은 Trigger를 사용했고, 일정 딜레이 후 Physics를 활성화하는 방식으로 구현했다.
결과
카오스 데몰리션
카오스 데몰리션도 추가했다.
결과
이건 아직 공부가 필요하다.
다음에는 언리얼 C++에 대해 공부해 볼 예정이다.