애니메이션을 추가하기 위해서 애니메이션 블루프린트를 생성한다.
![]() | ![]() | ![]() |
|---|
ABP를 클릭해서 오른쪽 애니메이션을 찾아서 드래그하자.
블루 프린트 노드를 연결하는것처럼 애니메이션을 아웃풋 포즈에 연결해준다.
케릭터 블루프린트에 만든 ABP를 매핑해준다.
![]() | ![]() | ![]() |
|---|
왼쪽 디테일 패널의 AxisSetting의 가로, 세로 축을 세팅한다. 새로축만 Speed로 사용할 것
아래쪽에 있는 것은 단순한 x,y그래프고 y축을 spped로 설정했다 idle(speed가0 일 때) 애니메이션을 배치.
위쪽에 run은 spped가 max일떄 애니메이션을 배치.
케릭터 속도
케릭터의 스피드 변수를 만들어 주었다.
BS_NBC_IdleRun에 Speed를 연결하고 Output포즈에 연결해준다.
Character 블루프린트의 이벤트 그래프에서 TryGetPawnOwner > GetVelocity를 통해 케릭터의 벡터를 가져와서 x,y축의 수치만 사용한 벡터를 다시 생성한다.
(벡터의 스칼라값을 속력으로 넣어준것)
기능구현
공전 구현
공전을 어떻게 구현할까 한참 찾아보고 공부하다가 구현하였다.
공부했었던 수학적인 지식이 부족함을 느꼈고, 프로그래밍 능력이 부족하다는 것을 실감하였다.
앞으로 더 열심히 해보도록 하자.
노드가 복잡해지기 떄문에 함수로 구현하였다.
각도를 구하는 함수다. 델타타임에 속도를 곱하게 되면 속도만큼의 회전 속도를 가지게 될 것이다. 해당 값을 누적시키면 각을 따라 회전하게 될 것이다. 그러나 라디안 값이 2π를 넘기면 안되므로 라디안을 누적시키되 각을 초기화 시킬 필요가 있다. 속도만큼 회전하기 위해서는 이렇게 구현하게 되었다.
위의 수식을 입력한 이후 원점의 위치를 더해주는 것을 로직으로 만들었다. 인게임 내에서는 사용하지 않았지만 어떻게 구현 할 지 고민을 하면서 해서 재밌었다.ICE발판
케릭터가 발판위에 서게 되면 Movement컴포넌트의 값을 조절하게 만들었다.
충돌이 해제된 이후에는 값을 재조정 해서 미끄러짐이 없게 만들어 졌다.MovingActor
시작위치를 저장하고, 위치만큼 이동하는 로직이다.
이동하는 위치를 누적해 주다가 지정한 거리를 이동하면, 역벡터를 이용해 되돌아가는 로직이다.임의위치로 순간이동
충돌시 임의로 만든 블루프린트 클래스를 배열을 받아와 랜덤 인덱스를 받아와서 그 위치로 플레이어를 옮기는 로직이다.
이게 많아지니 게임이 너무 힘들어져서 많이는 안만들었다.

추억의 개구리 게임을 목표로 만든 만큼 무수히 많은 자동차가 움직이고, 출구에 초록 빛을 놓은 것은 너무 출구에도 함정을 놨는데 저게 없으면 클리어가 너무 힘들기 떄문이다..
맵을 구성하고 기능을 찾고 어떤 함정을 만들지 고민하느라 예상했던 시간 보다 오래 걸렸다.
그래서 함정도 많이 깔지 않았다. 맵이 단순한 만큼 게임이 너무 힘들어 지기 떄문이다.
해당영상 링크