본문 바로가기
Unreal

[Unreal] 부모 객체의 스케일 변경이 자식 객체의 위치에 영향을 준다

by imagineer_jinny 2024. 6. 7.

<요약>

 

이슈: 부모 객체의 스케일 변경이 자식 객체의 위치에 영향을 줄 수 있음

해결 방법: 상위 부모를 따로 만들고 관련된 자식들을 따로 빼거나, 아예 자식에서 빼서 작업하거나 알아서 생각해서 하기

 

 

- 트랜스폼 계층 구조

자식 객체는 부모 객체의 로컬 좌표계를 기준으로 자신의 트랜스폼을 계산하도록 함

 

 

- 로컬 좌표계와 월드 좌표계

  • 로컬 좌표계: 자식 객체는 부모 객체의 좌표계를 기준으로 자신의 위치, 회전, 스케일을 정의
  • 월드 좌표계: 최종적으로 렌더링되는 위치는 로컬 좌표계를 통해 월드 좌표계로 변환됨
  • 부모 객체의 스케일이 변경되면, 자식 객체의 로컬 좌표도 그에 따라 변환됨

 

- 스케일 변환의 영향

부모 객체의 스케일이 변경되면, 자식 객체의 위치는 부모 객체의 스케일을 곱한 값으로 변환됨

 

ex.

  • 원래 부모 객체의 스케일이 (1, 1, 1), 자식 객체의 로컬 위치가 (10, 0, 0)일 때:
    • 자식 객체의 월드 위치는 (10, 0, 0)이 됩니다.
  • **부모 객체의 스케일이 (2, 1, 1)**로 변경되면:
    • 자식 객체의 로컬 위치는 여전히 (10, 0, 0)입니다.
    • 하지만 월드 좌표계에서의 위치는 부모 스케일을 곱하여 계산되므로, (2 * 10, 1 * 0, 1 * 0) = (20, 0, 0)이 됩니다.

이 예제에서 보듯이, 부모 객체의 스케일 변경이 자식 객체의 최종 위치에 직접적인 영향을 미칩니다.

 

 

- 요약

부모 객체의 스케일 변경이 자식 객체의 위치에 영향을 미치는 이유는 자식 객체의 위치가 부모 객체의 로컬 좌표계를 기준으로 정의되기 때문

부모 객체의 스케일이 변경되면, 이 로컬 좌표계가 변경되면서 자식 객체의 위치가 변환된 좌표계에 맞게 재계산됨

 

 

댓글