본문 바로가기

언리얼엔진/블루프린트슈팅게임만들기

Player만들기

컨텐트드러워의 +Add를 클릭하고 우클릭후 블루프린트클래스를->Pawn->이름을 BP_Player로 한후 Blueprints폴더에 저장합니다. Pawn은 Actor부모에 키입력을 받아 움직이게 해주는 메서드가 추가되어 있는 블루프린트 클래스 입니다. Character는 애니메이션도 추가된거구요.

BP_Player를 클릭후 컴포넌트탭의 +Add를 눌러 Cube를 끌어다 놓습니다.

사용자 입력 바인딩하기

키보드액션을 액터와 연결하기 위해서 바인딩을 해야합니다. 프로젝트세팅의 왼쪽 Input탭을 선택합니다.

Axis Mappings +를 클릭하고 이름을 Horizontal로 하고  A와 D를 등록하고 A의 Scale은 -1.0으로 해줍니다.

다시 Axis Mappings +를 클릭하고 이름을 Vertical로 하고  W와 S를 등록하고 S의 Scale은 -1.0으로 해줍니다.

BP_Player 블루프린트를 열과 이벤트 그래프에 다음과 같이 만들어 줍니다. Event Tick은 매프레임 일어나는 이벤트로 매프레임 키보드 상태를 리얼타임으로 확인할수 있게해줍니다.

컴파일후 레벨에디터에서 플레이해보면 아무것도 일어나지 않습니다. 우리는 BP_Player 클래스를 만들었지만 아직 뷰포트에 배치하지 않아 인스턴스가 없기 때문입니다. Blueprints폴더의 BP_Player를 끌어 뷰포트에 배치합니다.

플레이 해보면 왼쪽에 열심히 프린트는 되는데 입력과 반응하지 않습니다. 열심히 입력하다보면 이상한 구가 보이기도 합니다. 입력이 이상한곳으로 전달되는것 같습니다.

뷰퍼트에 배치했던. BP_Player를 지웁니다. BP_GameMode를 열어 Default Pawn Class를 BP_Player로 해줍니다.

컴파일해줍니다.

레벨에디터로 돌아가 플레이해보면 이제 왼쪽에 ASDW키에 반응하여 숫자들이 잘 출력됩니다. 입력키는 Default Pawn Class에서 설정한 BP_Player로 전달되는것 같습니다. 그런데 출력만되지 아직 움직이지 않습니다. 이제부터 입력값을 이용해 움직여보겠습니다.

BP_Player 이벤트그래프를 지우고 다음과 같이 다시 만들어 줍니다. 컴파일을 잊지마세요

플레이해보면 보이지 않습니다. 아웃라이너를 보면 Player0의 인스턴스가 엉뚱한곳에 있습니다. 이제 게임시작시 나타나는 초기 위치를 설정해보겠습니다. +Place Actors ALL에서 Player Start를 끌어다 뷰포트에 놓고 위치를 리셋하겠습니다.

화면에 작지만 큐브가 보이고 키보드 입력에 따라 움직입니다. 안움직이면 마우스로 화면을 클릭해보세요

 BP_Player를 열고 My Blueprint의 변수 +를 눌러 변수를 추가합니다. 컴파일후 default value를 500으로 합니다.

그래프이벤트를 다음과 같이 수정합니다. 유니티를 해보신 분은 그방 이해하시리라 생각합니다.

Maker Vector출력을 Normalize해서 움직임을 단위벡터1로 만듭니다. 방향이 관계없이 일정한 속도를 유지하기 위한거죠

이후 스피드x Delta Seconds를 곱한값을 현재위치에 더해줍니다. 이렇게 복잡하게 하는 이유는 유저의 컴퓨터 성능과 무관하게 일정한 속도를 내기 위함입니다.

거리 = vt 이기 때문이죠. 컴퓨터가 빠를수록 t가 짧아져 조금밖에 못가게 하는거죠.

'언리얼엔진 > 블루프린트슈팅게임만들기' 카테고리의 다른 글

충돌(Collision) 처리하기  (0) 2023.10.09
적 Enemy 만들기  (0) 2023.10.09
총알 만들기  (0) 2023.10.09
프로젝트 만들기  (0) 2023.10.08