Unreal Engine - 캐릭터 앉기 및 구르기

2025. 3. 5. 02:28·Unreal Engine

1. 앉기


1 - 1. 애니메이션

  • 애니메이션은 Game Animation Sample 프로젝트에서 이주해와서 리타게팅 시켰다.
    • 해당 프로젝트 사용할 때 5.4 버전을 다운로드해야 애니메이션 에셋들이 존재하는 것 같다.
    • 5.5 버전을 다운받으면 애니메이션이 없었음
  • 이후 모션매칭 관련해 정리한 글 을 따라서 진행하였고, Cache pose로 저장했다.

  • Main State 안에서 조건에 따라 crouch가 되도록 수정하였다.
    • crouch 도중 땅에 떨어지면, Locomotion으로 바꾸고 싶은데, 아직 해당 부분은 수정중이다.
    • 현재는 crouch 도중 땅으로 떨어져도 crouch 상태가 유지된다.
    • 트랜지션 룰은 isCrouch 라는 변수를 조건으로 주었다. (cpp에서 컨트롤하는 변수)

 

1 - 2. 설정

  • cpp에서 movement 관련해서 설정을 해주어야 캐릭터가 crouch 를 하게 된다. (생성자에서)
    • 첫번째 설정은 crouch를 하도록 하는 설정이고
    • 두번째 설정은 crouch 상태에서 떨어지지 않는 현상을 수정하는 설정이다. (떨어지도록 하는 코드)
    • 추가로 #include "GameFramework/CharacterMovementComponent.h" 해줘야 GetMovementComponent()를 쓸 수 있다.
if (GetMovementComponent())
{
	GetMovementComponent()->GetNavAgentPropertiesRef().bCanCrouch = true;				
}
if (GetCharacterMovement())
{
	GetCharacterMovement()->bCanWalkOffLedgesWhenCrouching = true;
}

 

1 - 3. 영상

 

 

2. 구르기


구르기는 애님 몽타주를 통해 구현했다.

  • 특정 상황에서 구르기를 하지 못하도록 처리를 해주고 Montage_Play를 하면 된다.
void APlayerCharacter::Roll(const FInputActionValue& value)
{
	if (bMoveForward && !bIsReloading && !bIsRolling)
	{
		UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance();
		if (AnimInstance)
		{
			bIsRolling = true;
			AnimInstance->Montage_Play(RollingAnimMontage);
		}
	}
}

 

애님 몽타주를 쓸때는 slot과 노티파이를 잘 사용해야 한다.

  • 구르기 애니메이션은 총을 들고 있을 때와 총을 들고 있지 않을때 두 경우 모두 같은 애니메이션을 쓰려고 아래와 같이 구성하였고
  • 애님 노티파이를 통해 특정 값 설정을 할 수 있다.

 

느낀점...

  • 위와 같은 코드에서 여러 변수로 캐릭터의 상태를 다루는 것이 별로 좋지 않다는 것을 느꼈다.
  • 상태를 저장하는 enum이나 구조체를 통해서 관리해야겠다는 생각이 들었다.

 

'Unreal Engine' 카테고리의 다른 글

Unreal Engine - Sound play & Effect spawn  (0) 2025.03.05
Unreal Engine - 애님 몽타주  (0) 2025.03.05
Unreal Engine - TSubclassOf & StaticClass  (0) 2025.02.27
Unreal Engine - 총기 반동, 데칼, 탄피 효과  (0) 2025.02.27
UE5 Issues : 총기 스폰 및 포인터  (0) 2025.02.27
'Unreal Engine' 카테고리의 다른 글
  • Unreal Engine - Sound play & Effect spawn
  • Unreal Engine - 애님 몽타주
  • Unreal Engine - TSubclassOf & StaticClass
  • Unreal Engine - 총기 반동, 데칼, 탄피 효과
gbleem
gbleem
gbleem 님의 블로그 입니다.
  • gbleem
    gbleem 님의 블로그
    gbleem
  • 전체
    오늘
    어제
    • 분류 전체보기 (189)
      • Unreal Engine (73)
      • C++ (19)
      • 알고리즘(코딩테스트) (32)
      • TIL (60)
      • CS (4)
      • 툴 (1)
  • 블로그 메뉴

    • 홈
    • 카테고리
  • 링크

    • 과제용 깃허브
    • 깃허브
    • velog
  • 공지사항

  • 인기 글

  • 태그

    C++
    BFS
    상속
    character animation
    blend pose
    addonscreendebugmessage
    cin함수
    applydamage
    Vector
    motion matching
    gamestate
    additive animation
    const
    템플릿
    싱글턴
    map을 vector로 복사
    DP
    enhanced input system
    actor 클래스
    매크로 지정자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gbleem
Unreal Engine - 캐릭터 앉기 및 구르기
상단으로

티스토리툴바