오늘 휴가쓰고 쉬는날인데 하루종일 이것만 하고 있는 것 같다.
오늘은 공격에 밋밋함을 없애줄 이펙트를 추가해보자.
이펙트 추가는 생각보다 쉽다. 물론 직접 만들어서 뭔가를 한다면
오래걸리겠지만, 나는 만들어진걸 활용하고 있기 때문에..
일단 MyCharacter.h에 아래 소스 추가.
public:
UPROPERTY(VisibleAnywhere, Category = Effect)
UParticleSystemComponent* PowerUpEffect;
UPROPERTY(VisibleAnywhere, Category = Effect)
UParticleSystemComponent* AttackEffect;
UPROPERTY(VisibleAnywhere, Category = Effect)
UParticleSystemComponent* DamageEffect;
이름을 보면 대강 알겠지만,
UPROPERTY(VisibleAnywhere, Category = Effect)
UParticleSystemComponent* PowerUpEffect;
말 그래도 파워업을 할때 나올 이펙트다.
나는 마우스 우클릭시 데미지 증가 버프를 주게끔 나중에 추가해 주려하고 있다.
이후 MyCharacter.cpp에
PowerUpEffect = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("PowerUpEffect"));
PowerUpEffect->SetupAttachment(RootComponent);
PowerUpEffect->bAutoActivate = false;
AttackEffect = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("AttackEffect"));
AttackEffect->SetupAttachment(RootComponent);
AttackEffect->bAutoActivate = false;
DamageEffect = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("DamageEffect"));
DamageEffect->SetupAttachment(RootComponent);
DamageEffect->bAutoActivate = false;
생성자에 위와 같이 이펙트를 만들어주고,
해당 소스까지 완료하고 실행하면 캐릭터 블루프린트에 Effect가 아래와 같이 추가되어 있을거다.
이를 클릭하면 오른쪽 디테일에서 이펙트를 선택할 수 있다.
이렇게 하고 난 후 다시 소스로 돌아와서,
MyCharacter.cpp에 원하는 동작에 이펙트를 활성화 시켜주면 끝이다.
void AMyCharacter::Attack()
{
//if (IsAttacking) return;
if (MyAnim)
{
AttackEffect->Activate();
MyAnim->PlayAttackMontage();
IsAttacking = true;
}
}
void AMyCharacter::AttackHitNotifyR()
{
if (PowerUpEffect->IsActive())
PowerUpEffect->Deactivate();
else
PowerUpEffect->Activate();
}
float AMyCharacter::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)
{
...
DamageEffect->Activate();
MyAnim->SetDead();
}
나는 각각의 역할에 맞게,
Attack안에서는 AttackEffect를 실행,
마우스 우클릭 안에서 PowerUpEffect 실행, 한번 더 누르면 꺼지게끔 해뒀다.
그리고 데미지를 받는 곳에서 DamageEffect를 활성화 해줬다.
이제 플레이 해보면..
이펙트가 들어간 걸 볼 수 있다.
이걸 확인하는 과정에서 문제가 생겼는데,
피격판정이 한번밖에 안되는 것 같다. 이건 왜 이러는거지 또..
오늘은 너무 오래해서 피곤하니,
좀 쉬고 다음 글에서 확인 해봐야겠다..
'언리얼엔진' 카테고리의 다른 글
언리얼 엔진 활용하기 - 10. 캐릭터 위젯 추가하기2 (0) | 2023.02.27 |
---|---|
언리얼 엔진 활용하기 - 9. 캐릭터 위젯 추가하기 (0) | 2023.02.24 |
언리얼 엔진 활용하기 - 7. 피격모션 추가하기 (Collision) (0) | 2023.02.20 |
언리얼 엔진 활용하기 - 6. Animation Montage(공격 모션 추가) (0) | 2023.02.20 |
언리얼 엔진 활용하기 - 5. 캐릭터 애니메이션 추가하기2 점프 추가 (0) | 2023.02.20 |