#2 플레이어 조작

김진우·2023년 7월 27일
0

Git

레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch
기준 브랜치 : 2_PlayerControl

개발 내용 정리

이전글에서는 어떤 게임을 만들지 정리했다. 개발의 시작은 조작 가능한 캐릭터를 만들어내는 것부터 하려고 한다. 이전 글에서 정리한 조작에 관한 내용은 다음과 같다.

  • 유저는 캐릭터를 1인칭 시점으로 조작한다.
  • 마우스로 조작하면 캐릭터의 시선을 움직이도록 만든다.
  • 마우스 좌클릭을 누르면 캐릭터는 기본 공격을 한다.
  • 마우스 우클릭을 누르면 캐릭터는 보조 공격을 한다.
  • 키보드 wasd로 조작하면 캐릭터가 이동한다.
  • 키보드 spacebar를 누르면 캐릭터가 점프한다.
  • 키보드 ctrl를 누르면 캐릭터가 앉은 자세가 되며, 이동속도가 느려진다.
  • 키보드 v를 누르면 캐릭터는 근접 공격을 한다.
  • 키보드 e를 누르면 캐릭터가 스킬 1을 사용한다.
  • 키보드 shift를 누르면 캐릭터가 스킬2를 사용한다.
  • 키보드 q를 누르면 캐릭터가 궁극기를 사용한다.

요약하면 1인칭 시점의 조작 가능한 캐릭터를 만들어내는 것이다.

UE5의 입력 관리

프로젝트 세팅 창에 들어가 입력 탭에서 입력을 관리할 수 있지만 이 기능은 폐기 예정이기 때문에 Input ActionInput Mapping Context를 사용하는 것을 권장한다. UE5에는 입력 시스템을 Input ActionInput Mapping Context라고 불리는 에셋으로 관리할 수 있도록 만들어진 EnhancedInputLocalPlayerSubsystem 이 존재한다. "향상된 입력 로컬 플레이어 서브시스템"으로 번역된다.

Input Mapping ContextInput Action은 함께 사용한다. Input Mapping Context의 경우에는 유저의 하드웨어 입력과 Input Action을 연결하는 역할을 하고, Input Action은 하드웨어 입력에서 어떤 형식의 데이터를 받아올지 결정한다.

1인칭 또는 3인칭 콘텐츠 팩에서 캐릭터 블루프린트를 살펴보면 EnhancedInputLocalPlayerSubsystem을 어떻게 사용하는지 알 수 있으니 참고하면 된다. 프로젝트를 생성할 때 일인칭이나 삼인칭 프로젝트로 만들거나 콘텐츠 브라우저에서 추가 > 피처 또는 콘텐츠 팩 추가 > 일인칭/삼인칭으로 현재 프로젝트에 추가할 수 있다. 또는 git으로 예제 프로젝트를 받아서 확인할 수 있다.

구현

우선 필요한 Input Action을 추가하고 Input Mapping Context에서 입력 키와 맵핑한다. 그 다음에 Mapping ContextPlayer Controller에 추가한다.

그러면 위 그림처럼 Input Action을 이벤트로 추가할 수 있게 되고, Input Mapping ContextInput Action에서 Triggers로 설정한 키 입력 이벤트가 발생할 때마다 Trigered부터 실행된다.

구현이 가능한 점프, 이동, 앉기, 카메라 움직임 기능을 구현하면 기본적인 캐릭터 구현이 끝난다. 스킬과 공격의 경우에는 어떤 스킬을 만들지 아직 계획된 것이 없어서 다른 기능을 구현한 다음에 추가하도록 하겠다.

백로그

  • League Of Watch에 기본 캐릭터 기획
    • 기본 공격
    • 보조 공격
    • 근접 공격
    • 스킬1
    • 스킬2
    • 궁극기(스킬3)
profile
게임 개발자입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기