상세 컨텐츠

본문 제목

레이싱 게임의 3D 모델과 3 in 1 게임 개발일지 #10

개발 일지

by UTRO 2020. 3. 18. 22:58

본문

 또 무덤 뚫고 나온 우트로입니다. 방학이 너무 길어지니 나른해지는군요. 극복할 수 있도록 해야겠습니다. 여하튼 지난번의 트랙이 보이지 않던 문제를 해결하였습니다. 알고 봤더니 obj를 d3d로 변환하지 않아 생긴 문제더군요. 파일을 변환한 후 트랙에 임시로 씌울 이미지까지 만들어 내었습니다.

그리고 저번에 한번 시도했다가 실패했던 차량들을 3D 모델을 이용하여 표현하는 것을 다시 시도하였습니다. 확실히 이렇게 하면 도트로 일일이 그려내는 것보다는 간편하게 됩니다. 다만 이전에 실패했던 이유를 생각해보면 이것을 성공할 수 있을지 솔직히 잘 모르겠습니다. 이전에 이것을 포기했던 이유는 차량의 3D 모델을 회전시키려 하니까 다른 오브젝트도 전부 같이 회전하는 바람에 결국 해결책을 못 찾아서였는데 다른 사람이 만든 것을 참고해보면 전혀 저에게 발생한 문제가 발생하지 않았습니다. 뭔가 방법이 있을 것이라고 생각한 저는 결국 다시 이것을 도전하게 된 것입니다. 일단 저에게 발생하는 문제를 좀 더 파악해본 결과 d3d_transform_add_rotation_z와 d3d_transform_add_translation 쪽의 문제인 것으로 판단하였습니다. 이 둘을 건들게 되면 카메라를 제외한 모든 오브젝트가 동시에 움직여버려 도저히 답이 없어 보이는 상황이 연출되어 버립니다. 그런데 그 와중에 카메라는 멀쩡하더군요. 분명 카메라도 오브젝트인데 말입니다. 사실 카메라의 코드는 제가 짠 것이 아닌 인터넷에서 찾은 강좌에서 코드를 복사해 온 것입니다. 그래서 전 "혹시 카메라의 코드를 끌고 오면 될 수도 있지 않을까?"라고 생각하였고 그것을 실행에 옮겼습니다.

그랬더니 이 사달이 나버리더군요. (차량 내부 2D 이미지는 잠깐 주석을 걸어놓았습니다.) 바닥이 아예 사라져 버렸습니다.

그나마 다행인 것은 이제 차량 모델을 회전시킬 때 2D 이미지 및 트랙이 더 이상 같이 움직이지 않는다는 것입니다. 

그러나 왜 모델이 카메라 위에 올라가게 된 것인지는 의문입니다. (x, y 좌표는 카메라와 같도록 했었습니다.) 그리고 좌표값을 좀 조정해주고 보니 회전축이 많이 이상하더군요. 아무래도 회전축이 카메라로 세팅되어있는 것 같았습니다. 일단 이 현상을 수정해야 했기에 이것저것 건드려 보다가 d3d_set_projection를 주석화 시켜보았습니다. 그랬더니 바닥이 다시 보이게 되었습니다. 다만 이번에는 차량 모델이 회전을 하지 않아 다시 되돌렸습니다. 그러고 몇 시간 후, 저는 스스로 해결하기 어렵다고 판단해 인터넷을 이용하였습니다. 그러고 d3d_transform_add_translation와 d3d_transform_set_identity를 추가하여 결국 바닥도 정상적으로 나오고 모델을 회전시킬 때 다른 오브젝트도 같이 회전하던 현상도 완전히 없어지게 되었습니다. 다만 차량 모델의 회전축은 여전히 어긋나 있습니다.

관련글 더보기

댓글 영역