전체 스크린샷
 
launch character 노드로 더블 점프를 구현하는 것에서 아이디어를 얻어 구현했다.
 
 
내가 구현한 대쉬는

  • 플레이어가 정지해 있는 경우 플레이어가 보는 방향으로 빠르게 이동
  • 플레이어가 이동중인 경우 플레이어가 이동중인 방향으로 빠르게 이동
  • Z축 이동에는 영향을 끼치지 않음

위 기능을 가지고 있다. 
 
 
위 블루프린트는 다음과 같은 흐름을 가진다.
 

1. 플레이어의 상태(정지, 이동) 확인

  1. Get Velocity 노드 사용
  2. Vector Length 노드를 사용한 값과 0을 비교, Boolean으로 정지한 경우와 이동중인 경우를 나누어 각각 구현

 

2. 플레이어가 정지해 있는 경우

  1. Get Actor Forward Vector 노드를 사용
  2. 일정값을 곱하여 Launch Character 노드에 연결하여 플레이어가 보는 방향으로의 대쉬를 구현

 

3. 플레이어가 이동중인 경우

  1. Get Velocity 노드를 사용, 이 중 z값만 0과 비교하여 수직이동이 이루어지는지 확인
  2. Boolean으로 수직이동이 없는 경우(=플레이어가 지면에 있는 경우)와 수직이동이 포함된 경우(=플레이어가 공중에 있는 경우)를 나누어 각각 구현

 

4. 플레이어가 지면에 있는 경우

  1. Get Velocity 노드로 구한 값을 Split
  2. Z값을 0으로 한 Velocity를 Make Vector을 사용하여 생성
  3. Normalize 노드를 사용하여 이동 방향을 하고 일정값을 곱함
  4. 4-3의 값을 Launch Character 노드에 연결, 플레이어 이동방향으로의 대쉬를 구현

 

5. 플레이어가 공중에 있는 경우

  1. 4-3 이후 Clamp 노드를 사용해 이동 속도의 최대값을 정함

 
 
※플레이어가 공중에 있는 경우에는 대쉬 속도가 너무 빠르고 이동 거리가 길어져 위와 같은 방법으로 제한을 두었음
 

+ Recent posts