• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

ZIGZAG, 카메라 컨트롤러 질문

22.12.27 21:40 작성 조회수 163

0

안녕하세요! 강의 너무 잘 듣고 있습니다!!

지그재그 강의 CameraController::LateUpdate에서

카메라가 플레이어 타겟을 쫓는 코드 부분에서

카메라 쿼터니언 * 백터3(0, 0, -distance) 부분이 이해가 잘 되지 않습니다 ㅠㅠ

답변 1

답변을 작성해보세요.

1

아.. 제가 답변을 했다고 생각하고 있었네요ㅠㅠ;;

 

오브젝트의 쿼터니온 회전은 현재 오브젝트가 바라보고 있는 방향입니다.

 

오브젝트의 이동은 Vector3(x, y, z)로 x, y, z방향으로 이동합니다.

Vector3(10, 0, 0)이라고 하면 x축 방향으로 10만큼 이동하는거죠

근데 이 x축 방향으로 10만큼 이동은 현재 오브젝트가 보고 있는 방향과 관계없이 무조건 x축으로 이동합니다.

즉, 오브젝트가 회전해서 어떤 방향을 바라보던 월드 기준으로 x축으로만 이동하죠.

 

그래서 "오브젝트가 보고 있는 방향을 기준으로 이동"을 하려면 현재 오브젝트의 회전 정보가 필요합니다.

그걸 수식으로 나타내면 쿼터니온 회전 * Vector3(10, 0, 0)과 같이 나타낼 수 있습니다.

 

앞의 Vector3(10, 0, 0)은 오브젝트의 회전과 관계없이 월드 기준 x축으로 10만큼 이동이고,

쿼터니온 회전 * Vector3(10, 0, 0)은 오브젝트가 바라보고 있는 전방 방향을 기준으로 오른쪽으로 10만큼 이동이 됩니다.

 

이 강의에선 카메라가 플레이어를 바라보고 있기 때문에 플레이어를 바라보고 있는

현재 방향을 기준으로 플레이어 뒤통수 방향으로 -distance만큼 떨어져서 배치되도록 하기 위해

쿼터니온 회전 * (0, 0, -distance)와 같이 작성했습니다.

UniUni님의 프로필

UniUni

질문자

2023.01.07

쉽게 설명해주셔서 너무 좋습니다 ㅠㅠ 감사합니다 !!