캐릭터 충돌 강제 적용
앞뒤로 움직이는 플랫폼에 이어서, 이번엔 좌우로 움직이며 부딪힐 시 캐릭터가 밀리는 푸셔 플랫폼을 생성해준다.
이제 실행을 해보고 푸셔 옆에 서있으면 부딪힐 때 버그가 일어나는 것을 볼 수 있다.
만약 그냥 서있지 않고, 점프나 이동 중에 부딪히면 버그가 일어나지 않고 자연스럽게 밀리는 것 또한 볼 수 있다
이는 캐릭터 코드가 움직이지 않는 한 콜리전을 확인하지 않기 때문에 발생하는 현상이다.
이를 위해 캐릭터 블루프린트 클래스로 이동하여, 매틱 마다 해당 캐릭터가 왼쪽으로 살짝 이동했다가 다시 오른쪽으로 이동하도록 설정해준다.
이는 캐릭터 무브먼트 이벤트 그래프에서 MoveUpdateComponent라는 함수를 통해 할 수 있다.
Z 값은 필요없으니 X와 Y에 대해 1씩 값을 주고, 실행핀으로는 Tick을 연결해준다.
이 상태로 실행을 해보면, 앞으로 조금씩 전진하는 것을 볼 수 있다.
이제 뒤로 가는 것을 해줄차례이다.
MoveUpdatedComponent를 하나 더 생성하여, 실행핀을 이어서 연결해주고 이번엔 X, Y에 -1을 설정해준다.
이제 실행해보면 실제론 움직이고 있지만, 가만히 서있는 것으로 보인다.
이로 인해 푸셔 옆에 가만히 서있어도 버그없이 자연스럽게 밀리게 된다.
하지만 또 다른 문제점이 있다.
바로 회전이 안되고, 무조건 정면만 보는 것이다.
이는 MoveUpdatedComponent에서 보면 회전값도 설정해주는데, 이는 캐릭터의 회전이 아니기 때문에 정면만 보게 된다.
따라서 Get Actor Rotation을 통해 기존 캐릭터의 회전을 가져와 연결해주면 된다.
이제 컴파일을 해보면 회전도 자연스럽고, 버그 없이 충돌 현상도 잘 일어나는 모습을 볼 수 있다.
이제 맵을 꾸며주는데, 돌기둥을 2개 설치해주고 하나는 방향을 반대로 해주었다.
해당 돌기둥에 탑승하여 위에 있는 작은 섬으로 이동할 수 있게 배치하였다.
또 푸셔를 섬에 여러개 배치하여 푸셔코스를 생성해주었다.
마찬가지로 푸셔 한개는 방향을 반대로 설정해주었다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-22 (0) | 2024.03.11 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-21 (0) | 2024.03.11 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-19 (0) | 2024.03.10 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-18 (0) | 2024.03.10 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-17 (0) | 2024.03.09 |