Skeletal Mesh 에서 Weapon Socket 생성

Untitled

Weapon 에 Barrel 이라는 소켓을 생성했다

Untitled

그러고 소켓의 위치를 총구로 옮기고 X 축이 총구의 앞을 가르키도록 90도 회전을 시켰다.

코드에서 파티클생성

코드에서 파티클을 생성하는 코드를 짰다, 위에서 만든 소켓의 트랜스폼을 토대로 생성을 하는 코드를 작성했다.

ParticleSystem 을 생성한 후

ParticleSystem 을 생성한 후

void AShooterCharacter::FireWeapon()
{
	UE_LOG(LogTemp, Warning, TEXT("Fire Weapon."));
	if (FireSound)
	{
		UGameplayStatics::PlaySound2D(this, FireSound);
	}

	const USkeletalMeshSocket* BarrelSocket = GetMesh()->GetSocketByName("BarrelSocket");
	if (BarrelSocket)
	{
		const FTransform SocketTransform = BarrelSocket->GetSocketTransform(GetMesh());
		
		if (MuzzleFlash)
		{
			UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), MuzzleFlash, SocketTransform);
		}
	}
}

파티클 변경

기본 캐릭터의 파티클은 3점사 형식이여서 복사를 해서 3점사를 단발로 바꿀 예정이라고 한다.

Untitled

Untitled

이펙트 에디터에서 각각의 이펙트들의 Spawn 을 누르고 Burst 부분에서 Burst 의 원소가 3개인 것을 하나로 줄이면 3점사를 그냥 단발로 설정할 수 있게 된다.

변경 후

변경 후

변경 전

변경 전

최종 결과

GIF 2023-02-26 오후 7-14-26.gif

두다다다다다다다닫ㄷ다ㅏ