ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 카메라 흔들리는 효과
    Game Programming/언리얼 2023. 10. 11. 16:40
    void AMyCharacter::StartFireTimer()
    {
    	if (bShouldFire)
    	{
    		FireWeapon();
    		bShouldFire = false;
    		GetWorldTimerManager().SetTimer(
    			AutoFireTimer,
    			this,
    			&AMyCharacter::AutoFireReset,
    			AutomaticFireRate);
    
    		GetWorldTimerManager().SetTimer(
    			AutoFireLightTimer,
    			this,
    			&AMyCharacter::AutoFireLightOnOff,
    			AutomaticFireLightRate);
    
    		GetWorldTimerManager().SetTimer(
    			AutoCameraShakeRoll,
    			this,
    			&AMyCharacter::AutoCameraShakeRollFunc,
    			AutoCameraShakeRollRate);
    	}
    }

    왼쪽 마우스를 클릭하면 시작하는 함수에서 동작하는 타이머를 실행했다.

    void AMyCharacter::AutoCameraShakeRollFunc()
    {
    	FRotator rot;
    	double dYaw = FollowCamera->GetRelativeRotation().Yaw;
    	static bool bYaw = false;
    
    	if (bYaw)
    		rot.Roll = -0.6f;
    	else
    		rot.Roll = 0.6f;
    
    	bYaw = !bYaw;
    
    	FollowCamera->SetRelativeRotation(rot);
    }

    타이머 안에서 Roll 축에 대한 회전을 줬다. 

    음,,,내가 참고하는 게임을 보면 Roll 뿐만 아니라, Yaw에 대해서도 회전을 주는거 같다.

     

    void AMyCharacter::AutoCameraShakeRollFunc()
    {
    	double dYaw = FollowCamera->GetRelativeRotation().Yaw;
    	static bool bYaw = false;
    
    	if (bYaw)
    	{
    		rotFiringCameraShake.Roll = -0.6;
    		rotFiringCameraShake.Pitch = 0.6;
    	}
    	else
    	{
    		rotFiringCameraShake.Roll = 0.6;
    		rotFiringCameraShake.Pitch = -0.6;
    	}
    
    	bYaw = !bYaw;
    	FollowCamera->SetRelativeRotation(rotFiringCameraShake);
    }

    최종 수정 코드 ㅎ

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

    아이템, 기본 무기 추가  (0) 2023.10.11
    점프 애니메이션 추가  (0) 2023.10.11
    Cross hair Factor  (0) 2023.10.10
    Add CrossMultiplier to HUD  (0) 2023.10.10
    Aiming 애니메이션 추가  (0) 2023.10.09
Designed by Tistory.