[UE5 FPS 프로젝트] 6. ADS(조준) 시스템

2024. 6. 18. 14:21·언리얼엔진5/FPS 게임 1인 프로젝트

 

 

ADS(Aim Down Sight, 조준) 시스템

 

    Timeline 을 이용해서 ADS 시스템을 만들었습니다. 동작 원리는 간단한게 우클릭 시 FOV 를 조정해주고,메쉬를 중앙에 이동시킨 뒤, 팔에 알맞은 애니메이션을 재생해 주면 됩니다.

 

void AVICharacter::ADSTimeLineFunc(float value)
{
	D("TimeLine")
	if (bEquippedWeapon)  // AK47
	{
		GetCamera()->SetFieldOfView(FMath::Lerp(90.0f, 45.0f, value));
		FirstPersonMesh->SetRelativeLocation(FMath::Lerp(FVector(1.6f, 7.8f, -23.6f), FVector(1.6f, 0.0f, -16.5f), value));
		FirstPersonMesh->SetRelativeRotation(FRotator(0.0f, -1.0f, 0.0f));

	}
	else  // Glock
	{
		GetCamera()->SetFieldOfView(FMath::Lerp(90.0f, 45.0f, value));
		FirstPersonMesh->SetRelativeLocation(FMath::Lerp(FVector(1.6f, 7.8f, -23.6f), FVector(1.6f, 0.0f, -16.0f), value));
		FirstPersonMesh->SetRelativeRotation(FRotator(0.0f, -1.0f, 0.0f));

	}
}

 

 

    Lerp 보간 함수를 통해 0.15초 동안 실행되는 Timeline 을 타고 transfrom 이 일어나도록 하였습니다. 따라서 알파 값(value) 에 따라 부드럽게 실행되는 걸 볼 수 있습니다. 무기마다 정 중앙에 위치하기 위한 높이 및 위치가 달라 분기해 주었습니다.

    C++ 에서의 Timeline 구현에 대한 내용은 아래 게시글에 정리해 두었습니다.

 

 

 

AnimGraph 에서는 알맞게 애니메이션이 재생되도록 blend 해 주었습니다.

 

불리언을 통해 블렌딩 되는 모습.

 

 

 

ConstructorHelpers

 

 

     이미 하드코딩이 심한 관계로  몽타주 애니메이션들은 블루프린트에서 지정 해 주었습니다.

 

에셋 지정

 

 

 

 

실행 영상

 

 

 

레퍼런스

 

[Unreal Engine 4] Timeline을 이용하여 부드럽게 앉기 구현 (Smooth Crouching)

기본적인 Crouch() 함수를 사용해 캐릭터의 앉는 기능을 구현하면 부자연스럽게 뚝뚝 끊어져 보이는 것처럼 앉게 된다. 3인칭이나 사이드뷰같은 경우 SpringArm의 CameraLag을 통해 부드러운 앉기를 구

sheep-adult.tistory.com

 

'언리얼엔진5 > FPS 게임 1인 프로젝트' 카테고리의 다른 글

[UE5 FPS 프로젝트] 5. 총 추가 구현 및 Swap  (0) 2024.06.17
[UE5 FPS 프로젝트] 4. 총알 궤적, 총구 화염, 총알 자국, 탄퍼짐 구현  (0) 2024.06.14
[UE5 FPS 프로젝트] 3. HUD 및 피격 구현  (0) 2024.06.13
[UE5 FPS 프로젝트] 2. 발사 및 재장전 구현  (0) 2024.06.13
[UE5 FPS 프로젝트] 1. 1인칭 구현 및 무기 부착  (0) 2024.06.12
'언리얼엔진5/FPS 게임 1인 프로젝트' 카테고리의 다른 글
  • [UE5 FPS 프로젝트] 5. 총 추가 구현 및 Swap
  • [UE5 FPS 프로젝트] 4. 총알 궤적, 총구 화염, 총알 자국, 탄퍼짐 구현
  • [UE5 FPS 프로젝트] 3. HUD 및 피격 구현
  • [UE5 FPS 프로젝트] 2. 발사 및 재장전 구현
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (184) N
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (63) N
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (11) N
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      실전 C프로그래밍 실습문제
      c언어
      C언어 실습문제
      티스토리챌린지
      언리얼엔진5
      c++ 17298
      언리얼엔진 eqs c++
      실전 C프로그래밍 나중채
      실전 C프로그래밍
      핸즈온 머신러닝
      실전C프로그래밍 실습문제
      오블완
      실전C프로그래밍 나중채
      언리얼엔진5 fps 프로젝트
      핸즈온 머신러닝 2판
      언리얼엔진 eqs generator
      언리얼엔진
      실전 C 프로그래밍
      언리얼엔진 eqs 커스텀
      실전C프로그래밍
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [UE5 FPS 프로젝트] 6. ADS(조준) 시스템
    상단으로

    티스토리툴바