Isomatric View의 고질적인 문제입니다
해당시점과 같은 쿼터뷰는 게임내의 오브젝트가 플레이어를 가리거나
카메라가 물체 바깥에 있는 곳을 보여주는 문제점이 존재합니다
현재 저의 카메라 시점 설정코드입니다
코드를수정해주겠습니다
// Camera Hit
SpringArmComponent->bDoCollisionTest = true;
SpringArmComponent->ProbeSize = 12.0f;
SpringArmComponent->ProbeChannel = ECC_Camera;
// Camera Move
SpringArmComponent->bEnableCameraLag = true;
SpringArmComponent->CameraLagSpeed = 10.0f;
카메라 암 컴포넌트의 bDoCollisionTest옵션을 true로 하여 충돌 감지를 하며
카메라가 벽에 붙으면 카메라암의 위치를 부드럽게 앞으로 앞당깁니다
벽에 너무 가까이 가면 플레이어와 카메라가 너무 가까이 붙어버리는
하드 클리핑현상이 일어납니다
또한 카메라가 너무 한번에 붙어버리니 먼가 어색합니다
자연스러운 보간이동을 사용하여 조금더 자연스럽게
카메라 이동을 해보도록하겠습니다
보간이동을 위해 필요한 변수 그리고 함수를 선언하겠습니다
//Isomatric View Camera Moving
float originArmLength = 800.0f;
float minArmLength = 400.0f;
float currentArmLength = 800.0f;
float armLengthChangeSpeed = 5.0f;
UFUNCTION()
void UpdateCameraArmLength(float DeltaTime);
void ASwordCharacter::UpdateCameraArmLength(float DeltaTime)
{
float detectArmLength = SpringArmComponent->TargetArmLength;
//min
float minArmDesiredLength = FMath::Max(originArmLength, minArmLength);
float dynamicInterpSpeed = armLengthChangeSpeed * DeltaTime;
currentArmLength = FMath::FInterpTo(currentArmLength, minArmDesiredLength, DeltaTime, dynamicInterpSpeed);
SpringArmComponent->TargetArmLength = currentArmLength;
}
해당 함수는Tick에서 작동됩니다
카메라는 자연스럽게 보간이동하여 하드클리핑 방지를하며 카메라가 벽에 부딪히면
플레이어에게 자연스럽게 카메라가 이동합니다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal - 페이드 인 / 아웃 (0) | 2025.05.15 |
---|---|
Unreal - GameMode로 맵마다 설정을 변경하기 (0) | 2025.05.15 |
Unreal - AI의 회피 알고리즘( RVO ) (0) | 2025.05.10 |
Uneal - EQS Strafe이동 (0) | 2025.05.10 |
Unreal - AI에게 HP 프로그래스바 붙히기 (0) | 2025.05.09 |