프로그래밍/Unreal 부트캠프

TIL 2025.02.28 기록

Rozentea 2025. 2. 28. 23:25

0. 개요


그래플링 작업을 모두 마쳤다..

사실 한 부분이 조금 아쉽긴한데.. 우선.. 드론도 추가해야할게 있고, 수정해야할 부분들이 몇 가지 발견되서  수정도 해야한다.

 

아쉬운 부분은 로프를 걸면, 해당 지점으로 살짝 튕겨나가듯이 가면 좋을 것 같은데.. 그런식으로 만들더라도 뭔가 느낌이 살지 않았다.

어쨌든 해당 부분을 구현해보려고 사용한 시간이 적지 않기 때문에 우선 어느정도 완성된 그래플링으로 마무리 하려고 한다.

 

따라서 우선 해당 그래플링만 기록하고, 오늘부터 다시 드론 AI 디버깅 및 몬스터 공격하기 작업을 시작해야겠다..

 

1. 그래플링 구현하기


1. 앵커에 연결할 때 살짝 점프 주기

앵커에 연결할 때, 그냥 연결해버리면 음.. 뭔가 부족한거 같아서 살짝 점프를 하도록 추가해주었다.

 

다만, 그래플링 상태일때는 점프를 주는게 조금 이상해서 다음 앵커로 연결할 때, 해당 방향으로 힘을 주어 살짝 이동한 뒤 스윙을 하도록 해주었는데, 자연스럽게 구현되지 않은 것 같다.

 

2. 와이어 해제 시 살짝 점프 주기


기존에는 와이어 해제 시 단순 해제만 되어서 속도가 충분하고, 각도가 잘 맞다면, 위로 조금 오르는 상태가 지속되지만, 그렇지 않을 경우 뚝 하고 떨어지거나 자연스럽게 연결되지 않는 부분이 조금 발생했다.

 

때문에 와이어 해제 시 살짝 위로 힘을 주어 튀어 오르는 듯한 움직임을 주었다.

 

다만, 앵커에 연결할 때 그라운드 상태면 점프를 살짝 주고, 그래플링 상태 즉, 공중이면 앵커 방향으로 살짝 힘을 주는게 자연스럽지는 않는것 같아 수정해야할 것 같다.

 

3. 와이어 위치로 자연스럽게 이동하는 기능 추가하기

원래는 앵커에 연결하고 좌클릭을 하면, 해당 앵커 지점까지 force를 주어서 이동하도록 했다.

하지만 이럴 경우 force가 충분하지 않을 가능성도 있고, 앵커와 충돌해 해당 지점에서 툭하고 떨어지는 문제가 발생했다.

 

 

때문에 해당 앵커 지점까지 부드럽게 속도를 컨트롤하면서 이동하되, 일정 거리에 도달하면 자연스럽게 떨어지도록 살짝 튕기도록 구현했다.

그 결과 원하는 위치로 자연스럽게 이동할 수 있게 나왔다.

 

또 이전에 작업했던, 앵커 연결 해제 시 살짝 upvector로 힘을 주어 조금 튀어 오르도록한 것도 자연스럽게 잘 연결되는 것을 확인할 수 있었다.

 

4. 와이어를 매단 상태에서 자연스러운 Ground 움직임 만들기

음.. 단순히 그라운드 상태에서는 줄 길이를 줄여주면서 플레이어가 이동이 가능하도록 만들었다.

우선 테스트를 위해서 앵커에 연결할 때 점프하는 로직을 제외했는데..

음.. 우선 두 기능 자체가 조금 충돌성이 있는 방향인 것 같다.

 

앵커에 연결하면 점프하게한다면, 점프 → 길이 조절 후 스윙 연결이 자연스러운 것 같고.

지금처럼 로프 연결 후 이동을 한다면, 애초에 연결할 때 점프를 할게 아닌거 같다.

음.. 두개를 적절히 섞는다면 멈춘 상태에서 연결시 점프 로직진행

이동중일때라면 점프로직을 진행 안함. 이런식도 가능할 것 같다.

 

하지만 우선.. 점프 로직을 제외하고 위와 같은 방식으로 갈까한다.

애초에.. 지금 게임 분위기가 엄청 역동적이고, 플레이어가 스파이더맨이나 그런것 처럼 초인은 아니니까. 오히려 이 정도가 맞는거 같다..?

 

이후엔 로프를 해제하기 위해선 무조건 점프가 나오는데, 음.. 로프 액션이 끝나 그라운드 상태일때는 자연스럽게 로프를 해제 해주어야 하는게 맞는거 같아서 수정했다.

 

5. 앵커위치로 자연스럽게 이동하는 기능 조금 수정하기

음.. 지금은 최종 목표 지점이 딱 앵커 지점이여서 문제가 조금 있다.

아까 영상에서는 드론이 완전히 정지하기 전이라. 이전 드론이 조금 더 멀리 있을 때가 기준이어서 충돌이 안 발생하고 적당하게 착지했는데, 그렇지 않을 경우 문제가 된다.

음.. 로직들이 조금 변경되면서 부자연스러운 부분이 많이 생겼다. 때문에 수정을 해야한다.

 

또한, 지금 로프 연결시 점프해주는 로직을 지웠기 때문에 로프를 연결하고 당기기를 했을 때 문제가 된다. 때문에 점프를 해준 뒤, 당기는게 맞다.

 

때문에.. 당기기를 할 때, 땅에 붙어있다면, 점프를 한 뒤, 당기기를 해주도록 해주었고, 앵커의 지점을 앵커 대상의 바운드 박스 반지름 만큼 여유를 두도록 수정했다.

 

캬하~! 잘 나왔다!

 

6. 와이어에 로프 머티리얼 적용하기