728x90 반응형 UE4/애니메이션5 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. 이전 1 다음 728x90 반응형