작성
·
988
·
수정됨
답변 1
0
해당 현상은 coordinate system과 연관이 있어 보입니다.
three.js 에서 사용하는 좌표 체계만 알고 있어도 개발에는 문제가 없지만, 제작된 3D model 들을 받아와서 사용할 때는 다른 프로그램들의 좌표 체계도 알고 있으면 도움이 됩니다.
크게 y-up과 z-up 방식이 있습니다. 이는 Y축을 상하 좌표계로 쓰는지, Z축을 상하 좌표계로 쓰는지의 차이입니다.
three.js 와 Unity 등은 y-up 좌표계를 따릅니다.
Unreal Engine, 3ds Max, Maya 등은 z-up 좌표계를 따릅니다.
아마 질문자님께서 받아오신 모델이 z-up 좌표계를 따르는 모델일 가능성이 큽니다. 저희가 배우는 three.js에서는 y축이 수직, z축이 수평을 담당합니다. 모델이 누워있는 이유가 이것입니다.
이 이슈를 해결하려면 아래의 두 가지 방법이 있습니다 :
직접 모델을 회전시켜서 똑바로 세워둔다
해당 모델을 y-up 좌표계를 따르는 3D프로그램에서 glb로 export하여 사용한다.
답변 감사합니다. 말하신대로 블렌더에서 다시 익스포트시 축 설정을 바꿔서 하면 바로 해결될 줄 알았는데, 이 방법으로는 해결이 되지 않았습니다. 더하는 방법으로는 더한 값이 축에 계속 반영되는게 아니라 매번 초기화 되는거 같은데 제가 제대로 설정을 못하고 있는 것 같습니다. 아래 캐릭터 glb로 받고 원래 강의 코드에서 player import 부분에 적용해보시고 확인 한 번 해보실래요?
https://sketchfab.com/3d-models/majd-the-boy-3ee158cbf94a49789c4a3c3e9df78917