[UE5] TIL - 24 <SpawnEmitterAtLocation, UParticleSystem, UParticleSystemComponent>

ChangJin·2024년 4월 22일
0

Unreal Engine5

목록 보기
52/114
post-thumbnail

2024-04-22

깃허브!
https://github.com/ChangJin-Lee/ARproject
https://github.com/ChangJin-Lee/ToonTank

느낀점
SpawnEmitterAtLocation로 projectile를 스폰시키는 방법, UParticleSystem, UParticleSystemComponent로 파티클을 추가하는 방법을 배웠다. 게임의 디테일을 완성하는 단계에서 쓰인다. UParticleSystem과 UParticleSystemComponent의 차이점을 잘 알아두도록 하자.

TIL

  • SpawnEmitterAtLocation
  • UParticleSystem
  • UParticleSystemComponent

SpawnEmitterAtLocation

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/SpawnEmitterAtLocation/1?application_version=5.3


  • Plays the specified effect at the given location and rotation, fire and forget.
  • 주어진 위치와 회전에대해 이펙트를 재생한다.
  • 이펙트가 끝난후에 system은 사라진다.

  • 다음처럼 사용한다. 매개변수가 여러개 있는데 상당히 자세하게 있으므로 잘 보고 사용하자.

if(OtherActor && OtherActor != this && OtherActor != MyOwner)
	{
		if(HitParticles)
		{
			UGameplayStatics::SpawnEmitterAtLocation(this, HitParticles, GetActorLocation(), GetActorRotation());
		}
	}


UParticleSystem

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Particles/UParticleSystem?application_version=5.3

  • A ParticleSystem is a complete particle effect that contains any number of ParticleEmitters.
  • Created with UGameplayStatics::SpawnEmitterAtLocation
  • 몇 개의 ParticleEmitters를 포함하는 완성된 파티클 이펙트이다.
  • 하나의 싱글 시스템에서 보이는 파티클 이펙트를 만들 수 있다.
  • Syntax는 다음과 같다
class UParticleSystem : public UFXSystemAsset  
  • 다음처럼 private 헤더파일에 노출시키고 블루프린트에서 이펙트를 추가해주면 된다
UPROPERTY(EditAnywhere, Category="Combat")
UParticleSystem* HitParticles;


UParticleSystemComponent

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Particles/UParticleSystemComponent?application_version=5.3

  • A particle emitter.
  • Created with CreateDefaultSubobject
  • 파티클 이미터. 라고 아주 짧게 설명이 나와있다
  • UParticleSystemComponentsms는 UParticleSystem을 관리하는 컴포넌트이다.
  • UParticleSystem은 UGamePlaystatics::SpawnEmitterAtLocation을 통해 월드에 스폰되거나 UParticleSystemComponent를 통해 제어될 수 있다
AProjectile::AProjectile()
{
	PrimaryActorTick.bCanEverTick = false;

	TrailParticles = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("Smoke Trail"));
	TrailParticles->SetupAttachment(RootComponent);
	
}


UParticleSystem vs UParticleSystemComponent

  • UParticleSystem은 UGameplayStatics::SpawnEmitterAtLocation와 함께 만들어지고 필요할때 나온다

  • UParticleSystemComponent은 CreateDefaultSubobject로 만들어진다. RootComponent에 attach 할 수 있다. 그리고 Template variable
    을 가지고 있다. 게임동안 항상 나오게 한다.

profile
게임 프로그래머

0개의 댓글