코요테 타임(CoyoteTime)이란 캐릭터가 절벽 끝에서 점프할 때 떨어지고 난 직후 약간의 시간동안 점프를 눌러도 점프가 가능한 시간을 뜻한다.
점프 버퍼링은 캐릭터가 지면에 닿아야만 점프가 가능한 시스템에서 지면에 닿기 직전에 미리 눌러도 점프가 되게하는 의미이다.
이 둘은 게임의 조작감을 편하게하므로 대부분의 플래포머 게임에 적용되어 있다.
이 둘을 구현해 볼 것이다.
먼저 플레이어 블프에서 Event On Waling Off Ledge라는 이벤트를 호출한다.
이는 언리얼에서 기본적으로 제공한다. 캐릭터가 가장자리에서 떨어지는 순간을 불러오는 이벤트이다.
Is In Coyote Time 불리언 변수를 만들고 Coyote Time Length라는 변수를 만들어 코요테 타임을 0.2초로 지정하였다.
다음으로 기본적으로 내재되어있는 Can Jump Internal 함수를 오버라이드해서 위와 같이 Is In Coyote Time함수와 OR 불리언으로 이어준다.
이제 코요테 타임내에서도 점프가 가능하게 되었다.
다음으로는 점프 버퍼링이다.
Jump키 입력시 이벤트에서 Is Jump Buffering 불리언 변수를 만들고 비슷하게 Jump Buffer Length변수를 만들어 0.2초를 할당하였다.
점프를 눌렀을 때 할 수 없는 상황에서 0.2초를 유예를 준 것이다.
매 틱마다 확인해야하는 작업이므로 틱 이벤트로 가서 Can Jump와 Is Jump Buffering을 AND로 묶어 분기점으로 연결하여 Ture일 경우 Jump함수를 호출한다.
점프할 수 있는 상태이고 Is Jump Buffering이 Ture라면 자동으로 점프를 하게 한다.
매 틱마다 확인을 하다가 점프할 수 없는 상황에서 0.2초 안에 점프를 할 수 있는 상황이면 Jump를 한다는 뜻이다.
즉, 땅에 닿기 0.2초 전에 점프키를 눌렀다면 공중이므로 점프가 되지 않지만 0.2초간 Is Jump Buffering이 True가 되고 0.2초안에 땅에 닿는다면 점프할 수 있는 상황이므로 Can Jump가 Ture가 되어 위의 분기점을 Ture로 통과하게 되어 점프를 하게 된다.
잘 적용된 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발 (22) _ 타일 맵으로 맵 및 미니맵 만들기 (0) | 2024.08.10 |
---|---|
첫 게임 개발 (21) _ 땅에서 솟아나는 공격 구현 (0) | 2024.07.01 |
첫 게임 개발(19) _ 적의 랜덤 연속 투사체 공격 구현 (0) | 2024.06.28 |
첫 게임 개발(18) _ 적 보스 체력바 구현 (0) | 2024.06.28 |
첫 게임 개발(17) _ 플레이어 에너지 시스템, 적 Blocking과 순간이동 구현 (0) | 2024.06.28 |