* 몽타주 : 기존애니메이션 조합 => new 애니메이션 만들기
1.매쉬더블클릭-에셋생성-애님 몽타주
2.애니메이션 끌어서넣기. 조합하기 to defaultslot
* 좌클릭-> 3단공격 구현
1. Mycharacter에 바인딩
// Called to bind functionality to input
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAction(TEXT("Jump"), EInputEvent::IE_Pressed, this, &AMyCharacter::Jump);
PlayerInputComponent->BindAction(TEXT("Attack"), EInputEvent::IE_Pressed, this, &AMyCharacter::Attack);
2.Character::Attack 함수에서 애님인스턴스를 불러와서 실행하는 구조.
좌클릭시 바로 실행해야됨 -> 캐릭터에서 애님인스턴스를 호출하는 식으로 짬
void AMyCharacter::Attack()
{
//애님인스턴스 찾아와서 실행해주기
//1. 매쉬에 붙어있는 애님인스턴스 get
//2. 애님인스턴스 -> 내애님인스턴스로 다운캐스팅
auto Animinstance = Cast<UMyAnimInstance>(GetMesh()->GetAnimInstance());
//null이 아니면
if (Animinstance)
{
Animinstance->PlayAttackMontage();
}
}
3. 애님인스턴스 :: 생성자
3-1. 경로에서 몽타주 불러오기
3-2. 몽타주포인터 멤버변수 AttackMontage에 넣기
UMyAnimInstance::UMyAnimInstance()
{
//1.AM에 경로로가서 몽타주 불러오기
static ConstructorHelpers::FObjectFinder<UAnimMontage> AM(TEXT("AnimMontage'/Game/Animations/Greystone_Skeleton_Montage.Greystone_Skeleton_Montage'"));
//2. 불러오기 성공했으면 멤버변수에 넣어주기
if (AM.Succeeded())
{
AttackMontage = AM.Object;
}
}
4. 몽타주 실행<=(멤버변수 이용)
//캐릭터에서 호출해줄 함수
void UMyAnimInstance::PlayAttackMontage()
{
//현재 실행중아니면 실행하기
if (!Montage_IsPlaying(AttackMontage))
{
Montage_Play(AttackMontage, 1.f);
}
}
5.ABP_MyAnim - (2번에서만든)DefaultSlot 연결해주기
'UE5' 카테고리의 다른 글
애니메이션 노티파이 (0) | 2022.08.14 |
---|---|
델레게이트 (0) | 2022.08.14 |
스테이트 머신 (0) | 2022.08.14 |
애니메이션 기초 (0) | 2022.08.14 |
블루프린트 클래스 (0) | 2022.08.11 |