Character
Use Controller Desired Rotation
이 옵션이 활성화되면, 캐릭터는 컨트롤러의 회전값을 따르게 됩니다. 즉, 컨트롤러가 바라보는 방향으로 캐릭터가 회전합니다.
- 용도: 주로 FPS(First-Person Shooter) 게임이나, 컨트롤러가 캐릭터의 시점을 직접 제어하는 게임에서 사용됩니다.
- 특징:
- 컨트롤러의 회전 값(Yaw)을 캐릭터에 직접 반영합니다.
- 캐릭터가 이동할 때 항상 컨트롤러가 바라보는 방향을 유지합니다.
- 주로 마우스나 조이스틱의 방향으로 캐릭터가 회전하는 경우에 유용합니다.
Orient Rotation to Movement
이 옵션이 활성화되면, 캐릭터는 이동 방향에 따라 회전합니다. 즉, 캐릭터가 움직이는 방향으로 회전하게 됩니다.
- 용도: 주로 TPS(Third-Person Shooter) 게임이나, 이동 방향에 따라 자연스럽게 회전하는 것이 중요한 게임에서 사용됩니다.
- 특징:
- 캐릭터가 이동할 때의 방향을 기반으로 회전합니다.
- 이동하지 않을 때는 기존의 회전을 유지합니다.
- 캐릭터가 이동하는 동안 이동 방향으로 서서히 회전하게 됩니다.
두 옵션을 함께 사용
이 두 옵션은 서로 배타적이지 않으며, 특정 게임플레이 요구 사항에 따라 함께 사용될 수도 있습니다.
- Use Controller Desired Rotation을 켜고 Orient Rotation to Movement를 끄면, 캐릭터는 항상 컨트롤러가 바라보는 방향을 유지합니다.
- Orient Rotation to Movement를 켜고 Use Controller Desired Rotation를 끄면, 캐릭터는 이동 방향에 따라 회전합니다.
- 두 옵션을 모두 켜면, 이동 중에는 이동 방향에 따라 회전하고, 이동을 멈추면 컨트롤러의 회전 방향을 따르게 설정할 수도 있습니다.
// 캐릭터 클래스의 생성자에서 초기 설정
AYourCharacter::AYourCharacter()
{
// 캐릭터 이동 컴포넌트 가져오기
CharacterMovement = GetCharacterMovement();
// 컨트롤러의 회전값을 사용할지 설정
CharacterMovement->bUseControllerDesiredRotation = true;
// 이동 방향에 따라 회전할지 설정
CharacterMovement->bOrientRotationToMovement = true;
// 회전 속도 설정
CharacterMovement->RotationRate = FRotator(0.f, 540.f, 0.f);
}
Spring Arm
Spring Arm이 소유하고 있는 Pawn의 컨트롤러 회전을 따르도록 설정하는 옵션입니다. 이 옵션을 사용하면 Spring Arm과 그에 붙어있는 카메라가 Pawn의 컨트롤러 회전에 따라 회전하게 됩니다.
Use Pawn Control Rotation의 역할과 동작
- 기능: Spring Arm이 Pawn의 컨트롤러 회전을 따라가도록 합니다.
- 효과: 카메라가 Pawn의 시점 변화에 따라 움직이게 됩니다.
이 옵션을 사용하면 캐릭터를 조작할 때, 카메라가 캐릭터의 회전 방향을 따라가도록 만들 수 있습니다. 이는 특히 TPS(Third-Person Shooter) 게임이나, 캐릭터의 뒤를 따라다니는 카메라를 구현할 때 유용합니다.
사용 예시
Spring Arm의 Use Pawn Control Rotation 옵션을 설정하는 방법은 다음과 같습니다.
- Spring Arm 컴포넌트 생성 및 설정:
- Spring Arm 컴포넌트를 캐릭터 블루프린트 또는 C++ 클래스에 추가합니다.
- Spring Arm 컴포넌트의 Use Pawn Control Rotation 옵션을 활성화합니다.
// 캐릭터 클래스의 생성자에서 Spring Arm 설정
AYourCharacter::AYourCharacter()
{
// Spring Arm 컴포넌트 생성
SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
SpringArm->SetupAttachment(RootComponent);
// Spring Arm 길이 설정
SpringArm->TargetArmLength = 300.0f;
// Pawn의 컨트롤러 회전을 사용할지 설정
SpringArm->bUsePawnControlRotation = true;
// Spring Arm의 회전하지 않도록 설정 (선택 사항)
SpringArm->bInheritPitch = false;
SpringArm->bInheritYaw = false;
SpringArm->bInheritRoll = false;
// 카메라 컴포넌트 생성 및 Spring Arm에 첨부
Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);
Camera->bUsePawnControlRotation = false; // 카메라 자체는 회전하지 않도록 설정
}
// 캐릭터 클래스의 Tick 함수에서 카메라 설정 업데이트
void AYourCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 필요한 경우 추가적인 카메라 로직 구현
}
Camera
UsePawnControlRotation은 카메라가 Pawn의 컨트롤러 회전을 따라가도록 설정하는 옵션입니다. 이 옵션을 설정하면, Pawn이 회전할 때 카메라도 함께 회전하여 플레이어의 시점이 변경됩니다.
bUsePawnControlRotation의 역할과 동작
- 기능: 카메라가 Pawn의 컨트롤러 회전을 따라가도록 합니다.
- 효과: 카메라가 Pawn의 시점 변화에 따라 움직이게 됩니다.
이 옵션은 특히 1인칭(FPS) 또는 3인칭(TPS) 게임에서 유용합니다. 이를 통해 플레이어가 캐릭터의 방향을 변경할 때, 카메라도 함께 회전하여 시점이 자연스럽게 변화합니다.
사용 예시
- Spring Arm과 카메라 설정:
- Spring Arm을 사용하여 카메라를 캐릭터에 부착할 수 있습니다.
- Spring Arm과 카메라 모두 bUsePawnControlRotation 옵션을 사용할 수 있습니다.
// 캐릭터 클래스의 생성자에서 카메라 설정
AYourCharacter::AYourCharacter()
{
// Spring Arm 컴포넌트 생성
SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
SpringArm->SetupAttachment(RootComponent);
// 카메라 컴포넌트 생성
Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
Camera->SetupAttachment(SpringArm);
// Spring Arm 설정
SpringArm->TargetArmLength = 300.0f;
SpringArm->bUsePawnControlRotation = true; // Spring Arm이 컨트롤러 회전을 따르도록 설정
// 카메라 설정
Camera->bUsePawnControlRotation = false; // 카메라는 Spring Arm을 통해 회전
}
// 캐릭터 클래스의 Tick 함수에서 카메라 설정 업데이트
void AYourCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 필요한 경우 추가적인 카메라 로직 구현
}
Character Movement
Rotation Rate
Rotation Rate는 캐릭터가 회전할 때의 속도를 정의합니다. 이는 초당 회전 각도(degrees per second)로 설정됩니다.
- X: Pitch 회전 속도 (캐릭터가 위아래로 고개를 드는 속도)
- Y: Roll 회전 속도 (캐릭터가 좌우로 기울어지는 속도)
- Z: Yaw 회전 속도 (캐릭터가 좌우로 회전하는 속도)
이미지에서 X와 Y는 0.0으로 설정되어 있고, Z는 360.0으로 설정되어 있습니다. 이는 캐릭터가 초당 360도까지 Yaw 방향으로 회전할 수 있다는 것을 의미합니다.
Use Controller Desired Rotation
Use Controller Desired Rotation 옵션은 캐릭터가 컨트롤러의 회전값을 따를지 여부를 결정합니다. 이 옵션이 활성화되면, 캐릭터는 컨트롤러의 회전 방향을 따라 회전하게 됩니다.
- 비활성화 상태: 이미지에서 이 옵션은 비활성화 상태입니다. 따라서 캐릭터는 컨트롤러의 회전값을 따르지 않습니다.
Orient Rotation to Movement
Orient Rotation to Movement 옵션은 캐릭터가 이동 방향에 따라 회전할지 여부를 결정합니다. 이 옵션이 활성화되면, 캐릭터는 이동하는 방향으로 회전합니다.
- 비활성화 상태: 이미지에서 이 옵션은 비활성화 상태입니다. 따라서 캐릭터는 이동 방향에 따라 자동으로 회전하지 않습니다.
'Unreal' 카테고리의 다른 글
[Unreal5] Trace(추적시스템)와 충돌 (1) | 2024.06.11 |
---|---|
[Unreal5] 데이터관리 (GameplayeTags, AssetManager, DataSet) (0) | 2024.06.05 |
[Unreal5] 입력 설정 함수 (0) | 2024.06.05 |
[Unreal5] Input Action와 Input Mapping Context 사용방법 (0) | 2024.06.03 |
[Unreal5] Component 추가 및 속성 변경 (0) | 2024.05.30 |