전체 글 (842) 썸네일형 리스트형 Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-9 Crouching Setup캐릭터 앉기 동작인 Crouching 동작을 구현해보자.앉기 여부를 나타낼 bool 변수 선언 및 초기화를 해주자. 그리고 getter() 함수 또한 생성해주자. 앉기 키 설정을 위한 액션 매핑도 해주자. 이어서 바인딩 작업도 해줄 것이다. 우선은 공중 여부를 체크하고, 크라우칭 상태를 반전 시키는 내용만 구현하였다.매핑된 키를 통해 앉았다 일어났다를 반복하게 될 것이다. AnimInstance 클래스에도 bool 변수를 선언해줄 것이다. 해당 변수는 애니메이션 속성 업데이트 함수에서 ShooterCharacter로 부터 얻은 크라우칭 여부를 저장해주자. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-8 Lean Blendspace이제 기울기를 적용해보자.기존의 RunnngBlendSpace를 이용할 것이다. 기울기 애니메이션의 경우 Circle을 검색하면 종류별로 확인이 가능하다. 이를 Lean 값에 따라 적절히 배치해주자. 이제 저번 강의에서 만들었던 YawDelta 변수를 적용해주자. 이제 실행해보면 기울기가 적용되어있다.하지만 애니메이션이 다소 덜컥거리는 현상이 존재한다.이를 고치기 위 CharacterYaw 값을 출력하여 체크해보자.이를 통해 확인해보면 캐릭터가 기울이며 이동하면서 -180에서 180도로 회전 값이 급격하게 변하는 것을 볼 수있다. 이를 해결하기 위해서 기존 변수를 FRotator로 바꾸자. 초기화도 새롭게 해주자. 이제 회전값 토대로 정규화를 해줄 것이다.정규화된 값을 사용하면.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-7 Lean추가적으로 기울이는 동작을 추가해보자.먼저 기존에 사용하던 CharacterYaw 변수와 CharacyerYawLastFrame 변수 앞에 구별을 위해 TIP 단어를 붙여주자.(TIP = Turn In Place) 그리고 기울이는 함수를 작성해줄 것이다. 그리고 이에대한 CharacterYaw 변수와 CharacyerYawLastFrame 변수를 새롭게 생성해주자.YawDelta 값 또한 같이 생성해주자. 이제 Yaw 값을 할당해주고, 해당 값들을 통해 회전 차이를 구하고 이를 DeltaTime으로 나눠서 속도를 구하자.그리고 해당 속도를 보간하여 설정해줄 것이다.이때 범위를 -90~90으로 지정해줄 것이다.이제 YawDelta 값을 디버깅 메시지로 출력하도록 해서 확인해보자. 그리고 YawDel.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-6 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을 사용할 지, .. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-5 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 값을 얻고, 반.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-4 Turn in Place using Curve Values만든 커브 값을 이제 적용해보자.기존의 TurnInPlace() 함수에 추가로 작성해줄 것이다.우선 기존의 RootYawOffset 값은 -180~180 값의 범위를 넘지 않도록 NormalizeAxis 함수를 사용한 코드로 수정하였다.다음으로 커브 값을 가져와 우선 변수에 저장해주었다. 이후 필요한 변수를 선언해주자.회전 커브 값과 직전 회전 커브 값이 필요하다. 이를 토대로 다시 구현을 이어서 해주자.직전에 저장한 Turning 값이 0보다 크다면 회전 애니메이션이 재생 중인 것이다.각 회전 커브 값을 할당해주고, 둘의 회전 차이 값을 저장해주자. 이후 RootYawOffSet 값을 토대로 0보다 크다면 회전 값을 빼주고, 0보다 작다면 회전 .. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-3 Animation Curves현재 애니메이션은 제대로 회전하는 것이 아니라 제자리를 도는 애니메이션이다.이를 제대로 구현하기 위해 Animation Curve를 이용할 것이며, 이번 강의는 이를 만드는 내용이다.먼저 우리가 만들었던 trimmed 애니메이션의 Curves 항목을 보자. 예시로 DistancCurve 항목을 보면 저렇게 곡선의 형태로 이루어진 것을 볼 수 있다. 이제 이러한 Curve를 직접 만들어보자. 3개의 키를 둘 것이며 각각 (0, -90 / 0.35, -45 / 0.65, 0)이다. 3개의 점을 모두 드래그하고 Auto를 눌러주자. 이제 가운데를 조절하여 적절한 곡선으로 만들어 주자. 그리고 MEtadata Entry도 생성해주자.이는 애니메이션 커브가 특정 기능을 하도록 도와주는.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-2 Turn in Place Animations이제 애니메이션을 할당해보자.기존 애니메이션 중 Idle_Turn_90_Left와 Idle_Turn_90_Right 애니메이션을 복사하여 사용할 것이다. 각각의 애니메이션의 필요없는 뒷부분을 삭제해주자. 이제 Idle 애니메이션을 고쳐줄 것이다.우리는 아래 부분만 움직일 것이기에 기존 애니메이션 삭제후 2가지 스테이트 머신을 새로 생성해주자.각각 상체와 하체를 담당한다. 상체의 경우 변화가 없기에 기존에 사용하던 애니메이션을 그대로 사용해주면 된다. 하체의 경우 90도 왼쪽 회전과 90도 오른쪽 회전 2가지가 추가 된다. 먼저 Idle -> Idle_Turn_90_Left_trimmed 조건이다.움직이지 않아야하고, Root Yaw Off set 값이 90을 .. 이전 1 2 3 4 5 6 7 ··· 106 다음