전체 스크린샷
launch character 노드로 더블 점프를 구현하는 것에서 아이디어를 얻어 구현했다.
내가 구현한 대쉬는
- 플레이어가 정지해 있는 경우 플레이어가 보는 방향으로 빠르게 이동
- 플레이어가 이동중인 경우 플레이어가 이동중인 방향으로 빠르게 이동
- Z축 이동에는 영향을 끼치지 않음
위 기능을 가지고 있다.
위 블루프린트는 다음과 같은 흐름을 가진다.
1. 플레이어의 상태(정지, 이동) 확인
- Get Velocity 노드 사용
- Vector Length 노드를 사용한 값과 0을 비교, Boolean으로 정지한 경우와 이동중인 경우를 나누어 각각 구현
2. 플레이어가 정지해 있는 경우
- Get Actor Forward Vector 노드를 사용
- 일정값을 곱하여 Launch Character 노드에 연결하여 플레이어가 보는 방향으로의 대쉬를 구현
3. 플레이어가 이동중인 경우
- Get Velocity 노드를 사용, 이 중 z값만 0과 비교하여 수직이동이 이루어지는지 확인
- Boolean으로 수직이동이 없는 경우(=플레이어가 지면에 있는 경우)와 수직이동이 포함된 경우(=플레이어가 공중에 있는 경우)를 나누어 각각 구현
4. 플레이어가 지면에 있는 경우
- Get Velocity 노드로 구한 값을 Split
- Z값을 0으로 한 Velocity를 Make Vector을 사용하여 생성
- Normalize 노드를 사용하여 이동 방향을 하고 일정값을 곱함
- 4-3의 값을 Launch Character 노드에 연결, 플레이어 이동방향으로의 대쉬를 구현
5. 플레이어가 공중에 있는 경우
- 4-3 이후 Clamp 노드를 사용해 이동 속도의 최대값을 정함
※플레이어가 공중에 있는 경우에는 대쉬 속도가 너무 빠르고 이동 거리가 길어져 위와 같은 방법으로 제한을 두었음
'언리얼 > 언리얼 노트' 카테고리의 다른 글
[UE5] AI 인지 설정 (0) | 2024.08.14 |
---|---|
[UE5] 3d 캐릭터 애니메이션 적용 원리 (0) | 2024.07.30 |
[UE5] tps 기본설정 변경 - 카메라 방향과 플레이어 캐릭터가 보는 방향 일치시키기 (0) | 2024.07.30 |
[UE4] Unreal Learning Kit: Games 1-2강 정리 (0) | 2024.07.30 |
[언리얼5] 엔진 버전과 콘텐츠 버전이 일치하지 않는 경우 사용법 (0) | 2024.07.10 |