게임개발을 해보고 싶어 언리얼 엔진 튜토리얼부터 보기 시작한지 2달이 좀 넘었다.
그 중 언리얼 엔진에서 제공하는 paper 2d 기능을 알게 되었고 2d / 3d 하이브리드 게임에 흥미가 가서 메트로배니아류의 게임 제작을 기획하게 되었다.
기본으로 제공하는 paper 2d 기능이 충분하지 않아 paperzd 라는 플러그인을 발견하였고 이 플러그인을 이용하면 2d statemachine을 이용한 애니메이션 구현이 쉬워 이 플러그인을 사용할 생각이다.
전체 Pawn의 부모 블프인 BP_ActionChar_Base를 만들고 자손 블프를 BP_Player와 BP_Enemy_Base로 만든다.
이후 적들은 BP_Enemy_Base의 자손 블프로 구현할 생각이다.
BP_ActionChar_Base에는 모든 Pawn에 들어갈 HitBox와 BPC_Vitality를 만든다.
BPC_Vitality 액터 컴포넌트로 각 Pawn의 체력에 관련된 함수와 변수를 저장한다.
위와 같이 시작되면 Current Health에 Max Health를 넣어 최대체력을 설정하고 ReceiveDamage함수를 만들어 데미지를 받았을 때 현재 체력에서 받은 데미지를 빼고 체력이 0이하로 떨어지면 IsDefeated 변수를 Ture로 만들어 패배하였음을 변수에 저장한다.
Sprite에 플레이어의 스프라이트를 저장하고 SpringArm과 Camera를 설정하고 SpringArm의 회전을 조정하여 정면을 바라보게 만든다.
언리얼 5.1부터 제공하는 향상된 입력 매핑 시스템을 이동을 구현한다.
다음은 걷기와 공격 등 애니메이션을 넣을 차례.
PaperZD의 Animation Source를 이용하여 캐릭터의 각 애니메이션을 설정한다.
PaperZD AnimBP를 이용하여 Player의 StateMachine을 구현한다.
각 상태에서의 애니메이션을 지정하고 State간의 이동 조건도 설정할 수 있다.
캐릭터가 공중에 있는지 확인하는 IsFalling함수로 구현. 나머지 상태도 비슷하게 구현한다.
잘 동작하는 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발 (6) _ 적 AI 인지 시스템 구현 (0) | 2024.06.19 |
---|---|
첫 게임 개발 (5) _ 적 공격 AI구현 (0) | 2024.06.19 |
첫 게임 개발 (4) _ 적 이동경로 AI구현 (0) | 2024.06.19 |
첫 게임 개발 (3) _ 넉백 및 패배시 애니메이션 구현 (1) | 2024.06.18 |
첫 게임 개발 (2) _ 공격 애니메이션 및 타격시 효과 구현 (0) | 2024.06.18 |