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 |