
Tweaking Parameters새로운 내용으로 넘어가기 전에 몇 가지 값들을 수정해줄 것이다.우선 현재 에임 조준시 에임의 위치가 낮아보여서 캐릭터의 위치를 더 뒤에서 보도록 카메라 값을 조정할 것이다. 그리고 FOV 값 또한 언리얼에서 편집하기 위해 EditAnywhere을 추가해주자. 이 상태에서 컴파일을 해보면 에임 위치가 조정되어 보이고, 줌 했을 시 더 확대되는 모습을 나타낸다.또한 마우스 회전 속도도 추가로 조절해주었다. 마지막으로 AimingPose를 수정해줄 것이다.현재 총기가 다소 기울어져 보여서 해당 애니메이션을 통해 총기 위치를 회전시켜줄 것이다.기존 애니메이션을 복사해서 사용하자. 이제 수정된 애니메이션을 할당해주자.

Interp Capsule Half Height캐릭터에는 캡슐 컴포넌트가 있고 해당 컴포넌트가 충돌을 담당하게 된다.하지만 Crouching 자세일 때는 기존 캡슐 컴포넌트보다 작은 범위만을 가지게 되기에 이에 맞게 조절해줄 필요가 있다.먼저 게임에서 캡슐 컴포넌트가 보이도록 해주자. 먼저 앉은 자세에 맞춰 카메라 값을 다소 조정해줄 것이다. 그리고 캡슐 컴포넌트 조절을 위한 변수를 추가 및 초기화 해주자. 그리고 캡슐 컴포넌트 값 조절을 위한 함수도 생성해주자.bCrouching 값에 따라서 캡슐 컴포넌트 값을 조절하게 된다.그리고 보간을 통해 목표 캡슐 컴포넌트 값을 할당해줄 것이다. 이제 컴파일 해보면 앉았을 때 기존의 절반이 되는 것을 볼 수 있다. 하지만 캐릭터가 바닥에 다소 묻히게 되는 현상이..
Crouch Walking Blendspace / Crouch WalkingCrouch Movement Speed and Jump 위 3개의 강의는 기존에 다운받은 애니메이션이 있어야 실습이 가능하며,해당 애니메이션들은 기존의 Belica 애니메이션으로 유사하게 대체할 수 있는 것이 아에 없어 강의만 시청하였다. 간단하게 내용을 요약하면 웅크린 상태에서의 이동을 위한 내용을 다룬다.

Crouch Recoil Weight총기 반동에 대해 애니메이션에 따라 다르게 설정해주자.이를 위해서 blend per bone의 weight 값을 조절해줄 것이며 이를 위한 변수와 제자리 회전 체크를 위한 변수가 필요하다. 먼저 제자리 회전 여부부터 확인하여 체크해주자.TurnInPlace() 함수에서 메타데이터인 Turning 값이 1이라면 true고 아니면 false일 것이다.그리고 해당 bTurningPlace 변수 값에 따라 RecoilWeight 값을 설정해주자. 먼저 제자리 회전 중일 때이다.만약 해당 케이스에서 장전 중이면 1, 아니면 제자리 회전 중 반동을 없앨 것이기에 0을 할당한다. 제자리 회전이 아닐 때도 살펴보자.만약 웅크린 상태라면 마찬가지로 장전 중일 때 체크하여 장전 중이면 ..

Crouch Turn in Place Anim BP이제 애니메이션을 적용해보자.그전에 리타겟팅을 한 애니메이션을 약간 수정해줄 것이다. 우리는 애니메이션 자체가 회전하며 이동하는 것을 원하지 않는다.따라서 회전만 하도록 고쳐보자. 끝 부분으로 가서 루트를 90도 돌려서 정면을 바라보도록 만들자.그리고 해당 부분에 키를 설정해주었다. 이를 맨 앞부분에서도 앞을 바라보도록 각도를 수정해주자. 이후 오른쪽 회전에 대해서도 똑같이 작업해주자. 이제 이렇게 얻은 제자리 (이동 x) 회전 애니메이션을 가지고 애니메이션 블루프린트에서 적용시켜줄 것이다.먼저 CoruchIdle 스테이트에서 Layered blend Per Bone 함수를 생성해주자. 그리고 스테이트 머신을 하체 상체에 관해 2개 만들어줄 것이다.기본..

Retargeting Anims with Different Skeletons 강의에서 사용되는 리타겟팅 매니저가 언리얼 5에는 존재하지 않는다.따라서 따로 Youtube 강의를 통해 리타겟팅을 진행하였다. 참고링크 : https://www.youtube.com/watch?v=_sLnCqBaElI 먼저 IK Rig를 생성해주자.Belica와 다운받은 스켈레톤에 대해서 각각 필요하다. 제일 먼저 뷰포트에 아무것도 없는 상태이므로 Preview Mesh를 선택해주자. 다운받은 스켈레톤의 경우 맨 위의 Hips를 Root로 리타겟을 해주자. 다음으로 각 파트별로 Chain을 생성해줄 것이다. 다른 부위들도 묶어서 Chian을 생성해주자. Chain 작업을 계속 해주면 대략 다음과 같다. Belica 스켈레톤에..

Crouching Turn Animations웅크린 상태에서 회전하는 애니메이션도 만들어보자.해당 애니메이션은 Mixamo라는 사이트에서 따로 다운 받아서 사용하게 된다.참고 링크 : https://www.mixamo.com/#/ Mixamo www.mixamo.com 여기서 Crouching 애니메이션을 찾아서 다운로드하자. 우측 상단의 다운로드를 하면 되는데 하나는 With Skin, 하나는 WithOut SKin으로 다운로드할 것이다.With Skin의 경우 포함된 Skin들도 다운로드하여 시간이 조금 더 걸리게 된다. 이제 해당 파일을 임포트해주자.이때 Import Animations도 활성화를 해주어야 해당 애니메이션도 포함된다. 다음으로 without skind으로 다운한 것도 임포트해주자..

Crouching AnimBP저번 강의에 이어서 애니메이션을 할당해주자.Ground locomotion에서 CrouchStart로 가는 조건을 만들어 줄 것이다.그리고 이어서 CrouchIdle -> CrouchEnd -> Idle로 애니메이션 할당 및 조건을 설정해줄 것이다. 이외에도 JogStart, JogStop, Run 상태에서도 CrouchStart로의 전환이 가능할 것이다.이에 대한 조건도 설정해주자. 이제 컴파일 하고 할당한 키인 Left Shift를 누르면 Crouch 자세를 취하게 된다.

Crouching Animations이제 애니메이션을 살펴볼 것이다.해당 강의에서 사용되는 애니메이션이 예전에 다운받아서 사용했던 AnimStarterPack에 속한 애니메이션이다. 해당 애니메이션을 리타켓팅해서 사용하게 되는데, 저번과 똑같이 내가 현재 사용 중인 언리얼 버전과 호환성 문제로 사용이 불가하여 일단 앉은 자세가 있는 에셋으로 대체하였다.이후 강의에 따라 실습을 따라해보거나 아니면 단순 강의 시청만 하게될 것 같다. 우선 고른 에셋은 다음과 같다.stun되어 앉아있는 모션을 가진 애니메이션이다.해당 애니메니션에 우선 강의와 똑같이 Key를 3가지 추가해주었다. 다음으로 서있다가 앉는 모션의 애니메이션이다.대체한 애니메이션은 Stun 되기 시작하는 애니메이션이다.앉아 있는 프레임을 체크하고,..

Crouching Setup캐릭터 앉기 동작인 Crouching 동작을 구현해보자.앉기 여부를 나타낼 bool 변수 선언 및 초기화를 해주자. 그리고 getter() 함수 또한 생성해주자. 앉기 키 설정을 위한 액션 매핑도 해주자. 이어서 바인딩 작업도 해줄 것이다. 우선은 공중 여부를 체크하고, 크라우칭 상태를 반전 시키는 내용만 구현하였다.매핑된 키를 통해 앉았다 일어났다를 반복하게 될 것이다. AnimInstance 클래스에도 bool 변수를 선언해줄 것이다. 해당 변수는 애니메이션 속성 업데이트 함수에서 ShooterCharacter로 부터 얻은 크라우칭 여부를 저장해주자.

Lean Blendspace이제 기울기를 적용해보자.기존의 RunnngBlendSpace를 이용할 것이다. 기울기 애니메이션의 경우 Circle을 검색하면 종류별로 확인이 가능하다. 이를 Lean 값에 따라 적절히 배치해주자. 이제 저번 강의에서 만들었던 YawDelta 변수를 적용해주자. 이제 실행해보면 기울기가 적용되어있다.하지만 애니메이션이 다소 덜컥거리는 현상이 존재한다.이를 고치기 위 CharacterYaw 값을 출력하여 체크해보자.이를 통해 확인해보면 캐릭터가 기울이며 이동하면서 -180에서 180도로 회전 값이 급격하게 변하는 것을 볼 수있다. 이를 해결하기 위해서 기존 변수를 FRotator로 바꾸자. 초기화도 새롭게 해주자. 이제 회전값 토대로 정규화를 해줄 것이다.정규화된 값을 사용하면..

Lean추가적으로 기울이는 동작을 추가해보자.먼저 기존에 사용하던 CharacterYaw 변수와 CharacyerYawLastFrame 변수 앞에 구별을 위해 TIP 단어를 붙여주자.(TIP = Turn In Place) 그리고 기울이는 함수를 작성해줄 것이다. 그리고 이에대한 CharacterYaw 변수와 CharacyerYawLastFrame 변수를 새롭게 생성해주자.YawDelta 값 또한 같이 생성해주자. 이제 Yaw 값을 할당해주고, 해당 값들을 통해 회전 차이를 구하고 이를 DeltaTime으로 나눠서 속도를 구하자.그리고 해당 속도를 보간하여 설정해줄 것이다.이때 범위를 -90~90으로 지정해줄 것이다.이제 YawDelta 값을 디버깅 메시지로 출력하도록 해서 확인해보자. 그리고 YawDel..

Aiming Aim Offset조준 했을 때 기준의 Aim Offset도 만들어보자이번엔 Idle_AO_가 아닌 RMB(Right Mouse Button)_AO_ 애니메이션들을 사용할 것이다. 조준 시에는 -180~180도 까지는 필요없기에 -90~90까지만 범위를 지정해줄 것이다. 그리고 애니메이션들을 할당해주자. 할당하다보면 화면에 캐릭터가 사라지는데 RMB_AO_CC 애니메이션이 할당되어서 그렇다.이를 조준시 Zero_Pose인 RMB_Zero_Pose로 바꿔주자.할당할 때마다 사라지므로 모두 할당 후에 바꿔주자. 모두 할당해준 모습 다음으로 이번엔 AnimInstance 클래스에 열거형을 하나 만들어줄 것이다.OffsetState에 대한 것을 나타내며, 이를 통해 일반 Offset을 사용할 지, ..

Hip Aim Offset지금은 위아래 또는 좌우로 돌렸을 때 aim이 해당 방향을 향하지 않는다.이번엔 이에 대한 조정을 해줄 것이다.먼저 이를 위한 Aim Offset을 생성해주자. 다음으로 Axis 값을 설정해주자.Yaw 해당 하는 값은 -180 ~ 180으로, Pitch에 해당 하는 값은 -90 ~ 90으로 값을 설정해주자. 다음으로 애니메이션을 할당해주자.AO를 검색해보면 Idle에 대한 애니메이션이 나온다.CC의 경우 센터의 센터, CD의 경우 센터의 다운, CU의 경우 센터의 업이다.LBC의 경우는 left back center이다.이러한 약자를 참고하여 애니메이션 위치를 할당해주자. 이제 해당 AimOffset을 이용해 Yaw 값을 적용시켜보자.Root Yaw Off set 값을 얻고, 반..