728x90 반응형 UE47 Ureal)애니메이션 노티파이 Animation Notify 애니메이션 노티파이는 애니메이션혹은 몽타주에 구간을 나누는 것을 의미한다. 베이지색 Attack_Hit는 노티파이라 하며 애니메이션의 분기점을 설정하는 것이다. 연보라색 Attack0는 몽타주 색션라 하며 합쳐진 몽타주 애니메이션을 자르는 역활을 한다. 몽타주 노티파이 //MyAnimInstance private: UFUNCTION() void AnimNotify_AttackHit();//AnimNotify_설정한노티파이의이름으로 작성해야된다. //MyAnimInstance void UMyAnimInstance::AnimNotify_Attack_Hit() { UE_LOG(LogTemp,Log,TEXT("attack")); } 위 코드는 해당 애니메이션이 노티파이를 지날때마다.. UE4/애니메이션 2022. 1. 16. Ureal)애니메이션 델리게이트 흔히 프로그래밍에서 델리게이트라 함은 함수를 안전하게 호출할수 있는 기능을 말하면 다른말로는 콜백이라고 한다. 우리가 InputComponent를 받는 것 또한 델리게이트라고 할 수 있다. C#의 경우 기본적으로 제공하는 delegate함수를 이용하여 델리게이트를 정의/제어가 가능하지만 초기C++를 기반으로 하는 Ue4에서는 자체적으로 만든 delegate함수를 사용하여 정의/제어해야만 한다. 로직 개선 먼저, 저번시간에 AnimMontage를 매 프레임마다 PlayAttackMontage를 호출하는 형태로 제작하였다. 이러한 불필요한 부하는 스케일이 커지면 커질수록 부담이 되기때문에 개선을 할 필요가 있다. //MyCharacter.h private: UPROPERTY(VisibleAnywhere) b.. UE4/애니메이션 2022. 1. 16. Ureal)애니메이션 몽타주 애니메이션 몽타주 애니메이션 몽타주는 한 액션에 여러 애니메이션을 붙이고 싶을때 사용한다. 몽타주 생성 몽타주 생성방법은 해당매쉬의 Create Asset->Anim Montage이다. 생성한 몽타주는 이런식으로 애니메이션들을 이어붙이거나 분기점을 만드는 식으로 관리할 수 있다. 공격모션 바인딩 저번 포스팅때 처럼 Input에서 엔진에 Attack을 바인딩 시켜준다. 엔진에 바인딩후 캐릭터클래스에도 바인딩 시킨다. //MyCharacter PlayerInputComponent->BindAction(TEXT("Attack"),EInputEvent::IE_Pressed,this,&AMyCharacter::Attack); 하지만 Jump와는 달리 Attack은 엔진에서 제공해주지 않기에 만들어주어야한다. At.. UE4/애니메이션 2022. 1. 15. Ureal)애니메이션 스테이트 머신 스테이트 머신의 필요성 if else 만으로 애니메이션을 구현하다 보면 로직이 꼬이게 될수 있기 때문에 스테이트 머신이 필요하다. 스테이트 머신 생성 생성시 이런 창이 뜨게 된다. 상태를 추가해준다. Ground 스테이트 Ground라는 스테이트에 저번에 만들어 놓은 애니메이션을 추가해준다. Jump 스테이트 먼저 점프를 구현해야되기에 코드를 추가해준다. UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true)) bool Isjump; #include "GameFramework/Character.h" #include "GameFramework/PawnMovementComponent.h" aut.. UE4/애니메이션 2022. 1. 15. Ureal)애니메이션 기초 Anim Instance의 클래스 게임에서 애니메이션은 빠질 수 없는 요소이다. 캐릭터의 애니메이션이 적은 소규모 플래쉬 게임이라면 코드상(Mesh)에서 애니메이션을 관리를 해도 상관없지만, 일반적으로 애니메이션을 코드상에서 관리한다는 것은 다소 애매해 질 수 있다. 예를 들면 특정 UI가 켜져 있을때 발생하는 애니메이션이거나 전투와 관련된 애니메이션등이 같은 공간에 뒤섞여진다면 관리하는것이 매우 까다로울 것이다. 이러한 점들 때문에 언리얼에서는 Anim Instance라는 클래스에서 애니메이션을 관리하게 된다. Anim Instace 생성 class TESTUREAL_API UMyAnimInstance2 : public UAnimInstance { GENERATED_BODY() private: UPRO.. UE4/애니메이션 2022. 1. 14. Ureal) 로그와 디버깅 로그와 디버깅은 게임개발에 있어서 매우 중요한 역할을 수행한다. 로그 로그는 콘솔 아웃풋에 메시지를 알리는 기능을 수행하는데, 대표적으로 카테고리,로깅수준,형식,인자등을 알려준다. 아래는 UE4공식문서에서 로그인자들을 추려서 적은것이다. namespace ELogVerbosity { enum Type { NoLogging =0, Fatal //수준 로그는 항상 콘솔 및 로그 파일에 출력되며 로그가 비활성화된 경우에도 작동이 중단된다. Error //수준 로그는 콘솔 및 로그 파일에 출력되며, 이 로그는 기본적으로 빨간색으로 표시된다. Warning //수준 로그는 콘솔 및 로그 파일에 출력되며, 이 로그는 기본적으로 노란색으로 표시된다. Display //수준 로그는 콘솔및 로그 파일에 출력된다. Log.. UE4 2021. 12. 1. Ureal) 언리얼 게임엔진의 이해 게임 엔진을 사용하는 이유 게임 엔진의 장점은 Low-Level을 감싸고 있는 이미 완성된 기반 코드를 제공한다. 개발자는 DirectX등의 기타 게임 개발에 필요한 엔진 및 랜더링을 직접 개발할 필요 없이 게임 엔진에서 이미 구현되어 제공되는 기능들을 재사용하기만 하면 되기에 시간 단축과 효울성이 높아진다. 단, 게임엔진을 사용하여 개발할 경우 나오는 수익의 일부는 엔진개발사에게 돌아가는 단점이 존재한다. 언리얼 엔진의 특징 언리얼 구조 유니티엔진은 컴포넌트 위주로 Empty에서 시작해서 하나하나 쌓아가는 형식의 엔진이라고 한다면 언리얼 엔진은 언리얼 엔진 자체의 타이트한 구조를 바탕으로 게임을 제작하기 때문에 전자와 비교하면 다소 자유도및 범용성이 낮다고 생각되는 단점이 있지만, 엔진에 익숙해진다면 .. UE4 2021. 11. 3. 이전 1 다음 728x90 반응형