[UE5] Assassin3 - Climbing System(1)

윤정민·2023년 5월 3일
0

[Unreal Project]Assassin

목록 보기
4/26

1. 개요

많은 게임들이 3인칭 시점으로 진행 가능하지만 움직일 수 있는 범위는 x,y축으로 제한되는 부분이 아쉬웠다. 그래서 Climbing기능을 추가해 z축으로 이동할 수 있는 게임을 만들것이다. 이번 시간에는 간단하게 오를 수 있는 지형을 올라가는 기능을 만든다.

2. 아이디어

2.1. Climbable Wall 감지

  • 난간을 감지하는 Trace Channel을 Custom으로 만들어주자
  • 난간 Collision에 적용할 Profile을 설정해주자
  • 캐릭터가 점프할 때 마다 Capsule Trace를 생성해 전방에 오를 수 있는 벽이 있는지 확인
    • 있으면 오르는 Animation
    • 없으면 그냥 점프

2.2. 벽에 매달리기

2.2.1 행동

  • 캐릭터의 MovementMode를 Flying상태로 변경
  • 매달리는 Animation

2.2.2. 난간 위쪽 위치와 Normal Vector구하기

  • 오를 수 있는 벽이 있다면 해당 벽의 높이(Z)를 구함
  • 해당 높이의 위쪽에 Trace를 쏘아 그 위에 아무것도 없는, 완전히 끝난 난간인지 확인
  • 완전한 난간이라면 해당 위치의 표면 백터를 구하기 위한 Trace를 생성하여 표면백터와 위치(X,Y)를 구함
  • 구한 X,Y,Z Location으로 이동
    • 오차만큼 Offset을 설정해줌

2.3. 올라가기

  • 매달린 위치 앞쪽에 Trace를 생성해 해당위치에 올라갈 수 있는지 확인
    • 아무것도 없다면 올라갈 수 있음

2.4. 옆으로 이동

  • 이동할 위치에 Trace를 생성해 이동가능한 벽이 감지되면 Character의 Location, Rotation을 업데이트

3. 결과

  • 0:27초 부터
profile
그냥 하자

0개의 댓글