관람자 카메라를 만들어야 하는 이유
VR영상을 시청하곤 할 때 많은 시청자들이 멀미를 느끼게 됩니다.
물론, 가상현실 게임을 하고 있는 유저 또한 카메라 흔들림 문제로 인해 멀미를 느끼곤 하지만 간접적으로 영상을 시청하는 사람보다는 카메라 흔들림 문제에 대해 덜 부정적 경험을 받습니다.
그 이유로는
사용자가 VR에서 자신의 움직임과 행동을 능동적으로 제어할 때 카메라에 대한 통제력을 갖게 되므로 자신의 행동과 카메라의 움직임이 일치되어 멀미가 덜 나게 됩니다(운전하는 사람이 멀미가 덜 나는 이유). 또한, 플레이어는 가상환경 안에 존재하므로 가상환경에 더욱 집중할 수 있어서 멀미가 덜 나게 됩니다.
VR 관중이 직면한 문제
위 영상을 시청해보면 VR 플레이어가 어디를 볼지 어떻게 행동할지 예측할 수 없고, 그저 플레이어가 바라보는 시선으로 화면이 렌더링 되다 보니 매끄럽지 않고 멀미가 나게 됩니다!
해결법
그렇다면, 관중 카메라에 어떤 조치를 취할 수 있을까요?
플레이어의 시선을 예측하는 방법은 어려우므로 간단한 보정법에 대해 설명해보겠습니다!
영상을 시청해보면 보정 없는 카메라에 비해 떨림 현상이 덜 하므로 시각적으로 좀 더 편안하게 시청할 수 있게 되었습니다!
코드
using UnityEngine;
public class SmoothCameraController : MonoBehaviour
{
[Range(0, 1)] public float PositionDamping;
[Range(0, 1)] public float RotationDamping;
public Transform Target;
private Vector3 velocity = Vector3.zero;
private void Awake()
{
transform.position = Target.position;
transform.rotation = Target.rotation;
}
void FixedUpdate()
{
transform.position = Vector3.SmoothDamp(transform.position, Target.position, ref velocity, PositionDamping);
transform.rotation = Quaternion.Slerp(transform.rotation, Target.rotation, RotationDamping);
}
}