2024. 8. 20. 00:15ㆍUnreal Engine
애니메이션 몽타주 계속
왜 이전 글에서 "spine_03"을 넣어서 몽타주의 기준을 정해주었는지 살펴보자.
상단 우측에 해골모양 Skeleton 정보 클릭
예상했던 것처럼 spine_03을 기준으로 위쪽은 Blend Poses 0, 아래쪽은 Base Pose가 적용되는 것이었다.
총이 캐릭터와 같이 움직이게 하기
소켓을 만들기 위해서, BP_Player에서 Mesh를 클릭한 상태로 우측에서 [Skeletal Mesh Asset]을 더블클릭한다.
hand_r에 마우스 우클릭해서 [Add Socket] 선택
참고로, 위쪽에 [Character] - [Bones] - [All Hierarchy] 하면 모든 리깅을 볼 수 있다.
다시 BP_Player로 돌아와서,
sniper1 총을 선택한 후 우측에 [Sockets]에서 hand_r Socket을 넣어준다.
총 위치를 다시 맞추기 위해서, Mesh 클릭하고 우측에 [Animations] - [Advanced] - [Pause Anims]를 체크한다.
sniper 총 위치 맞추기
유탄발사기 SK_FPSGun도 소켓 설정
SK_FPGun GrenadeGun 위치 수정
다시 Mesh에서 PauseAnim을 체크해제한 후 살펴본다.
달릴 때 쏘는 총이 조금 이상한 것을 볼 수 있다.
APB_Player에서,
[Layered blend per bone] 노드를 선택한 후 [Mesh Space Rotation Blend]를 체크한다.
아직 쏠 때만 총을 드는 것이 어색해보인다.
New_Fire_Rifle_Ironsight_Montage를 더블클릭해서 몽타주를 연다.
[Blend In] - [Blend Time]을 0.1에서 0.05로 줄이고, [Blend Out] - [Mode]를 Exponential In으로 수정한다.
이제 달리면서 연속으로 쏴도 어색하지 않게 되었다.
카메라 셰이크 효과
Blueprints 폴더에서 Blueprint Class를 하나 생성한다.
"camerashake" 검색한 후 CameraShakeBase 선택 후 생성
만든 블루프린트를 더블클릭하여 들어가면 우측에 [Camera Shake Pattern]이 이미 만들어져 있는 것을 볼 수 있다.
디테일 설정으로, Location은 사용하지 않을 것이므로 0으로 설정. Rotation 중 총 반동에 의한 위아래 회전 값인 Pitch 회전만 사용하므로 Yaw와 Roll은 0으로 설정했다. Timing은 알아서.
BP_Player의 EventGraph로 간다.
Fire 부분 초반에 [Start Camera Shake] 노드를 끼워넣고 [Get Player Camera Manager]를 [Target]에 연결한다. 컴파일하고 실행하면 총을 발사할 때마다 카메라가 흔들리는 것을 볼 수 있다.
*참고로 [Set View Target with Blend] 노드를 사용하면 특정 키를 눌렀을 때, 다른 블루프린트가 바라보는 뷰로 카메라가 자연스럽게 이동될 수 있다.
BP_CameraShake에서 [Root Shake Pattern]을 [Sequence Camera Shake Pattern]으로 바꾸면?
새로운 Camera Animation Sequence를 만들었다.
더블클릭하여 열고 Viewport 아래에 고정했다.
Transform 속성 값 추가해서 그 중 Pitch Rotation을 변경할 예정이다.
확대하여 짧은 시간에 회전 값을 변형시켜줄 것이다.
0에서 3까지 총 4개의 Pitch 키프레임을 넣었다. 1프레임 일 때는 2.0, 2프레임 일 때는 -1.0, 3프레임일 때는 다시 0으로.
카메라가 잘 흔들리는 것을 볼 수 있다.
총 사운드 넣기
BP_Player로 간다.
발사하는 노드쪽에 [Play Sound 2D] 노드를 추가하여 사운드도 넣었다.
적 만들기
Character로 블루프린트 클래스를 하나 생성한다. 이름은 BP_Enemy로 지었다.
Enemy 에셋 다운로드
압축 풀어서 Content 폴더 아래에 탐색기를 켜서 옮긴다. uasset 파일은 프로젝트에 드래그 앤 드랍이 아니고 탐색기에서 이동. 파일 이동 후 에디터 재시작
BP_Enemy를 열고 Mesh를 선택한 후 [Skeletal Mesh Asset]에 적 모델링을 넣는다.
Transform 값 설정