Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

Fire 액션에 좌클릭을 매핑하고 Press, Released 이벤트에 함수를 바인딩한다.

 

 

 

UE4 에서의 Additive Animation – BBAGWANG

Additive Animation 이란? 애디티브 애니메이션이란 두 애니메이션 간의 차이를 계산하여 만들어지는 애니메이션을 말한다. 애디티브 애니메이션은 그 자체로는 별로 쓸모가 없는데, 그 이유는 다른

bbagwang.com

 

Additive 애니메이션은 Base Pose(예를 들어 Idle)와의 차이를 계산하여 추가되는 애니메이션이다.

  • 예를 들어, 달리는(Source) 애니메이션에 Idle (Base Pose)과 총을 쏘는(Additive) 애니메이션의 차이만큼 추가된 애니메이션이 적용되면, 최종적으로 달리면서 총을 쏘는 애니메이션이 출력된다.

 

상황에 따라, Layered blend per bone 노드로 해결하는 게 바람직한 경우도 있다.


그냥 총을 들고 쏠 때와 조준하면서 쏠 때의 애니메이션을 Additive로 변경한다.

 


Fire 액션에 총을 발사하기 위해 FireWeapon 애니메이션 몽타주를 생성한다.

 


만약 캐릭터가 A-포즈로 가만히 있는다면, Preview Base Pose를 지정해준다.

 

 

새로운 WeaponSlot 슬롯을 생성해주고, 애니메이션들을 배치한다.

 

새로운 RifleHip, RifleAim 섹션을 생성해주고, 기본 Default 섹션을 삭제해준다.

 


각 섹션은 연속된 동작이 아니기 때문에, Clear 버튼을 눌러 링크를 해제한다.

 

 

캐릭터 클래스에 애니메이션 몽타주를 저장할 FireWeaponMontage 변수를 선언하고, 블루프린트에서 FireWeapon을 지정해준다.

 


애니메이션 몽타주를 재생하는 함수를 선언한다.

 

 

USkeletalMeshComponent::GetAnimInstance() 함수를 통해 애님 인스턴스를 가져온 후, bAiming 값에 따라 적절한 섹션으로 이동해 재생한다.

 

 

전투를 담당하는 Combat 컴포넌트에 Fire 액션에 실행할 함수와 눌렸는지 여부를 저장하는 변수를 선언한다.

 

 

Fire 버튼이 눌렸으면, 캐릭터 클래스의 PlayFireMontage() 함수를 호출해 사격 애니메이션 몽타주를 재생한다.

 

 

캐릭터 클래스에서는 눌렸는지 여부에 따라 전달 인자를 달리 해준다.

 

 

Slot은 애니메이션이 Slot에서 재생되기 시작할 때만, Source 애니메이션을 오버라이드하기 시작한다.

  • Slot에서 재생되지 않는 동안에는 Source 애니메이션이 출력된다.

 

애니메이션 몽타주는 Slot을 사용하여 단독으로 애니메이션을 재생하기 때문에, 애니메이션 몽타주가 작동하려면 애님 그래프에 Slot이 배치되어 있어야 한다.

 

같은 Slot 그룹 내의 다른 몽타주를 재생하면, 기존에 활성화되어 있던 몽타주가 중지된다.

  • 예를 들어, 무기를 재장전하는 몽타주는 능력이나 근접전 공격 몽타주를 재생하기 위해 중단될 수 있다.
  • 가장 최근 몽타주가 이전 몽타주를 중단한다.

 

 

애니메이션 슬롯

애님 그래프에 엔트리 포인트를 삽입하여 슬롯을 사용해 애니메이션을 재생합니다.

docs.unrealengine.com

 


FireWeapon 애니메이션 몽타주를 사용하기 위해, WeaponSlot Slot을 애님 그래프에 배치한다.

 

기존 Equipped 포즈를 Source로 해서 총을 쏘는 Additive 애니메이션을 추가해 재생할 것이기 때문에, 아래와 같이 구성하고 새로운 포즈 캐시를 만든다.

 


Aim Offset에서도 포즈 캐시를 교체해준다.

 


좌클릭을 눌렀지만 작동하지 않는 것처럼 보인다.

  • 작동하고 있지만, 애니메이션 몽타주의 섹션 간에 블렌딩이 발생하면서 너무 미세하게 움직이게 된 것이다.

 


FireWeapon의 Blend In 시간을 0으로 변경한다.

  • 두 섹션은 각각 재생되며 블렌딩이 필요하지 않기 때문에, Blend Out 시간도 0으로 바꾼다.

 

 

좌클릭을 누르면 총을 발사하는 애니메이션 몽타주가 재생된다.

 

'Unreal Engine > UE5 C++ Multiplayer Shooter' 카테고리의 다른 글

발자국 소리 적용  (0) 2023.04.21
부자연스러운 대각선 걷기 애니메이션 수정  (0) 2023.04.20
움직임 개선  (0) 2023.04.19
네트워크 갱신 주기  (0) 2023.04.18
Rotate Root Bone  (0) 2023.04.17
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그