언리얼 엔진 5/개발 일지 65

[UE5] 블루아카이브 TPS게임 개발일지 (5) - Mixamo Converter 사용, 구르기 구현

지난 포스트 마지막에서, 코드를 통해 직접 구르기의 움직임을 구현하기가 곤란했었다.  이 경우 루트 모션(Root Motion)을 사용할 수 있다. https://docs.unrealengine.com/5.3/ko/root-motion-in-unreal-engine/ 루트 모션언리얼 엔진의 루트 모션 애니메이션을 살펴봅니다.docs.unrealengine.com  루트 모션 애니메이션을 사용하면 애니메이션 데이터로 캐릭터 무브먼트를 제어하여 레벨에서 보다 사실적인 무브먼트를 연출할 수 있습니다. ← 공식 문서의 루트 모션에 대한 설명이다.   간단히 말해서, 캐릭터의 움직임이 애니메이션 자체에 의해 결정되도록 하는 것이다.  그런데 구르기 애니메이션에 루트 모션을 적용하려고 하니 문제점이 있었다.    ..

[UE5] 블루아카이브 TPS게임 개발일지 (4) - EActionState 추가, 근접 공격 추가

캐릭터가 어떤 무기를 들고있는지를 나타내는 ECharacterState에 더해, 현재 어떤 액션을 취하고 있는지를 나타내는 EActionState 열거형을 만들었다. 현재 EActionState 값에 따라 플레이어가 할 수 있는 행동을 정해줄 수 있다.예를 들어, 캐릭터가 구르는 중에는 조준을 할 수 없고, 근접공격 중에는 조준을 할 수 없도록 해야 한다. EActionState: 현재 캐릭터의 액션 상태를 나타냄#pragma onceUENUM(BlueprintType)enum class ECharacterState : uint8{ ECS_Unarmed UMETA(DisplayName = "Unarmed"), ECS_ArmedWithPistol UMETA(DisplayName = "Armed With P..

[UE5] 블루아카이브 TPS게임 개발일지 (3) - 툰 쉐이딩

원작의 느낌을 살리기 위해 툰 쉐이딩을 적용해보았다.툰 쉐이딩의 기본 원리는, 한 마디로 라이팅을 단순화하는 것이다. 유튜브에 좋은 튜토리얼이 있어 그대로 따라가보았다. https://www.youtube.com/watch?v=mzydOmgN7mc&t=1555s&pp=ygUPdWU1IHRvb24gc2hhZGVy    밑에 따로 빼둔 것은 특정 액터에만 툰 쉐이더를 적용할 수 있게 해주는 그래프 파츠인데, 본 게임에서는 모든 사물이 툰 쉐이딩 되기를 바라므로 사용하지 않는다. 포스트 프로세스 머티리얼의 내용물은 화면의 각 픽셀에 대해서 병렬처리된다는 점을 기억하고, 아래 내용을 보면 좋을 것 같다.영상의 아저씨가 한 것을 하나씩 살펴보자면, 먼저 SceneTexture를 2개 가져와서 Desaturatio..

[UE5] 블루아카이브 TPS게임 개발일지 (2) - 캐릭터 state 추가, 애니메이션 개선

캐릭터의 현재 상태를 나타내는 enum을 새로 만들었다. 우선 비무장 상태, 권총 무장 상태, 소총 무장 상태 3가지를 만들었다.  캐릭터의 state는 다른 여러 클래스에서 쓰일 경우가 많다. State만을 쓰기 위해서 KannaCharacter 전체를 include하는 것은 피하고 싶으므로, 별도의 헤더 파일에 state를 정의한다. 이후 KannaCharacter.h에 ECharacterState 타입 변수를 만들어주었다.UPROPERTY(BlueprintReadWrite, meta = (AllowPrivateAccess = "true"))ECharacterState CharacterState = ECharacterState::ECS_Unarmed; 이제 기존의 애니메이션 블루프린트를 state에 ..

[UE5] 블루아카이브 TPS게임 개발일지 (1) - 조준 기능 구현

개발 일지의 첫번째이지만 사실 이미 어느정도 진행이 되어있는 상태이다.(27일 전에 시작)   현재 완료 사항:캐릭터의 움직임과 카메라 회전아이템 획득 기능추락 및 착지 애니메이션사실 해당 사항들 대부분은 언리얼 엔진 5의 Third Person 템플릿에 이미 만들어져있으므로, 혹시 본 개발일지를 참고하여 언리얼 엔진 5 개발을 시작하실 분들이 계시다면 해당 템플릿을 사용하면 될 것 같다.  제목이 조준 기능 구현이지만, 사실 이미 다른 방식으로 구현한 바가 있다. Input Action의 Trigger가 Hold일 경우 해당 인풋이 들어오는 동안은 매 틱마다 콜백 함수를 호출한다는 점을 이용해 Tick 함수에서의 애니메이션 구현처럼 만들어놓았다.유니티였다면 Dotween 라이브러리나 Lerp 함수를 썼..