언리얼4 C++ 캐릭터 제작

Intro

  • 언리얼 C++ 캐릭터 제작

캐릭터 C++ 클래스 생성

Character를 부모로 하는 C++ 클래스 생성

1

헤더 파일

캐릭터에 붙일 SpringArm과 Camera를 선언해주고 조작을 위한 MoveForward, MoveRight 함수도 선언해주었다.

UPROPERTY 매크로를 사용하면 언리얼에서 객체를 자동으로 관리해준다.

캐릭터 생성자

이동속도, 점프력 등을 조절하고 캐릭터에 SpringArm을 부착하고 SpringArm의 자식으로 Camera를 부착했다.

캐릭터 조작

점프와 시점조작은 상속받은 함수를 사용하고 MoveForward와 MoveRight는 따로 함수를 구현하여 캐릭터를 조작할수 있게 했다.

캐릭터 블루프린트 생성

만들어진 클래스 기반의 블루프린트를 생성한다.

2

스켈레탈 메시 지정

3

애니메이션 블루프린트 생성

애니메이션 블루프린트를 생성한뒤 스테이트머신에 Idle상태와 Walk상태를 정의했다.

4

데이터 연동

AnimInstance를 부모로 하는 C++ 클래스 생성

헤더파일

헤더파일에 블루프린트에서 읽을수 있는 CurrentPawnSpeed 변수와 틱마다 호출되는 NativeAnimationUpdate 함수를 선언했다.

cpp파일

TryGetPawnOwner 함수로 폰 객체가 유효한지 검사한뒤 폰의 속력을 구해 CurrentPawnSpeed에 저장한다.

애니메이션 블루프린트 세팅

다시 애니메이션 블루프린트에서 클래스 세팅을 누른뒤 부모클래스를 생성한 AnimInstance로 교체한다.

5

그리고 상속된 변수표시를 하면 CurrentPawnSpeed 변수가 표시된다.

6

CurrentPawnSpeed 변수를 이용해 스테이트머신에서 0보다 클때 Walk상태로 0일때 Idle상태가 되게끔 만들어준다.

7

추가

블렌딩을 사용하여 Idle과 Walk를 하나의 스테이트로 만들어 줄수 있다.

9

다시 캐릭터의 생성자로 가서 만들어둔 애니메이션 블루프린트를 사용하게끔 한다.

스켈레탈 메시가 블루프린트 클래스를 사용하게된 모습

8

실행결과

9

참고문서

http://api.unrealengine.com/KOR/Programming/Tutorials/FirstPersonShooter/index.html

이득우, 이득우의 언리얼 C++ 게임개발의 정석,2018, 172쪽

댓글남기기