ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Muzzle Flash
    Game Programming/언리얼 2023. 9. 30. 16:44

    왼쪽 손에 barrel_socket을 추가해줬다.

    x,y,z 방향이 총 방향과 일치하도록 적절히 회전시켰다.

    	/* Flahs spawnd at BarrelSocket*/
    	UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true"));
    	class UParticleSystem* MuzzleFlash;
    
    	/* Flahs spawnd at BarrelSocket*/
    	UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true"));
    	class UParticleSystem* MuzzleFlash2;

    파티클 시스템을 헤더파일에 추가했다.

     

    	static ConstructorHelpers::FObjectFinder<UParticleSystem> MuzzleFlashAsset(
    		TEXT("/Game/Voyager/Demo/Particles/P_AssaultRifleMuzzle.P_AssaultRifleMuzzle")
    	);
    	MuzzleFlash = MuzzleFlashAsset.Object;
    
    	static ConstructorHelpers::FObjectFinder<UParticleSystem> MuzzleFlashAsset2(
    		TEXT("/Game/Voyager/Demo/Particles/P_AssaultRifleMuzzle.P_AssaultRifleMuzzle2")
    	);
    	MuzzleFlash2 = MuzzleFlashAsset2.Object;

    MuzzleFlash를 에셋에서 읽어 온 뒤

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

    소켓을 가져와, SpawnEmitterAtLocation 함수를 사용했다.

    Transform을 가져 온 뒤 위치와 회전 이런걸 계산했겠지..?

    'Game Programming > 언리얼' 카테고리의 다른 글

    라인 트레이스 추가  (0) 2023.10.03
    Animation Montage  (0) 2023.10.03
    사운드 추가  (0) 2023.09.30
    Fire Weapone  (0) 2023.09.29
    Rotator Character to Movement  (0) 2023.09.29
Designed by Tistory.