언리얼 엔진 - 게임 프로젝트/리슨 서버 기반 배틀 로얄

프로젝트 세팅 - 6) Lyra 기반의 애니메이션 설정 (2)

monstro 2026. 9. 19. 18:41
728x90
반응형

- 개요

웅크리는 기능을 추가하여 플레이어가 적에게서 몸을 숨길 수 있도록 설정한다

 

- 스크립트 작업

1) SOO_Character 클래스

 

생성자에 위와 같이 로직을 추가한다

캐릭터 클래스의 CharacterMovementComponent에 접근하여 필요한 설정을 적용한다

  • bCanCrouch 설정을 True로 설정하여 ACharacter의 Crouch 함수가 동작할 수 있도록 설정
  • CrouchedHalfHeight 설정을 캡슐 컴포넌트의 반지름과 통일하여 웅크려도 캡슐 컴포넌트가 접히지 않도록 설정
  • MaxWalkSpeedCrouched 설정을 0으로 설정하여 웅크리면 이동할 수 없도록 설정

 

2) SOO_PawnInputComponent 클래스

 

웅크리는 기능은 Ctrl 키를 누르고 있는 동안에만 수행하며 일시적으로 동작한다

따라서 Input_AbilityReleased 함수를 추가하여 입력키를 떼면 로직을 수행하도록 설정한다

 

 

SetupInputBindings 함수에 로직을 추가하여

입력키를 누르고 있다가 떼는 Completed 이벤트에 Input_AbilityReleased 함수를 연결한다

 

 

Input_AbilityReleased 함수의 로직은 위와 같이 구성하여

키를 누르고 있다가 떼면 수행중인 행동을 중단한다

 

3) SOO_Action_Crouch 클래스

 

웅크리는 행동은 키를 누르면 일시적으로 수행하는 행동이므로 Ability 대체 클래스를 이용하여 정의한다

필요한 함수들을 위와 같이 오버라이드한다

 

 

TryActivate 함수를 위와 같이 설정하여 캐릭터가 점프하고 있지 않다면 Crouch 함수를 호출하여 웅크린다

 

 

Cancle 함수를 위와 같이 오버라이드하여 UnCrouch 함수를 호출하여 웅크림을 해제한다

 

4) SOO_AnimInstance 클래스

 

프로젝트에서 사용하는 AnimInstance 클래스에 위와 같이 멤버변수를 추가한다

  • bIsCrouching 멤버변수 : 멤버변수나 수학 로직을 처리하는 멀티 스레드에서 사용할 멤버변수
  • bCachedIsCrouching 멤버변수 : 게임 스레드에서 캐싱하여 사용할 멤버변수
  • 두 개의 불리언 변수 모두 현재 캐릭터가 웅크리고 있는지 판단

 

 

NativeUpdateAnimation 함수에 로직을 추가하여 게임 스레드에서 캐릭터의 웅크림 여부를 캐싱한다

 

 

NativeThreadSafeUpdateAnimation 함수에 로직을 추가하여 멀티 스레드에서 캐싱된 값을 반영하여 갱신한다

 

- 애셋 작업

1) IA_Crouch 애셋

 

Ctrl 키를 누르고 있어야 웅크리는 액션을 수행하므로 값 타입을 Bool로 설정한다

 

2) DA_PlayerInputConfig 데이터애셋

 

웅크리는 행동은 키를 누른 경우에만 수행하므로 Ability Input Action 멤버변수에 추가하고

위와 같이 행동을 발동시키기 위한 Tag와 Input Action을 연결하여 저장한다

 

3) IMC_PlayerInputContext 애셋

 

IA_Crouch 액션을 발동시키기 위한 입력 키(Ctrl)를 위와 같이 연결한다

 

4) BP_ActionCrouch 블루프린트와 BP_ActionJump 블루프린트

BP_ActionCrouch 블루프린트

 

BP_ActionJump 블루프린트

 

웅크리는 행동 중일때는 점프 행동을 할 수 없도록 설정하고 점프 행동 중일때는 웅크리는 행동을 할 수 없도록 설정한다

 

5) BP_Player 블루프린트

 

플레이어 캐릭터가 수행할 수 있는 행동에 BP_ActionCrouch를 추가하여 웅크리는 행동을 할 수 있도록 설정한다

 

6) ABP_CharacterAnimInstance 애니메이션 블루프린트

 

Main States 스테이트 머신에 위와 같이 웅크리는 포즈를 추가한다

포즈간의 전환은 다음과 같다

  • bIsCrouching 변수가 True인 경우에 Landing 포즈에서 Crouch 포즈로의 전환
  • bIsCrouching 변수가 True인 경우에 Locomotion 포즈에서 Crouch 포즈로의 전환
  • bIsCrouching 변수가 False인 경우에 Crouch 포즈에서 Locomotion 포즈로의 전환

 

- 최종 실행 결과

728x90
반응형