전체 글339 13. 회의 및 짐벌락 문제 해결 & 몬스터 데드 셰이더 구현 회의 및 짐벌락 문제 해결 - 회의 주요 내용은 각자 얼마나 개발했는지와 앞으로의 계획에 대한 것 - 개발 진행 상황의 경우 개인적인 사정으로 인해 많이 개발을 못한 분도 계셨고, 주기적으로 모르는 부분에 대해 질문하여 빠르게 작업해나가신 분도 계셨음 - 나의 엔진 사용법에 대한 불편사항은 없었고, 네임스페이스 사용 여부에 대한 설명과 추후 회의 일정, 미팅 일정을 잡고 회의는 마무리하였음. - 회의 이후 각자 작업하는 도중 짐벌락 문제가 발생했는데, 회전 행렬을 구할 때 Z - Y - X 순으로 곱하다보니, Y축이 90도 회전한 상태에서 X축이 소실되는 짐벌락 문제가 발생했다. - 이 문제를 해결하기 위해 축을 곱하는 순서를 Z - X - Y순으로 변경해서 짐벌락 문제를 피할 수 있었다. 몬스터 데드 .. 2023. 8. 15. 12. 맵 제작 및 자잘한 버그 수정 맵 제작 - 이전 프로젝트에서 유용하게 사용했던 DecoObject와 WallObject를 클래스로 따로 파서 충돌 유무에 따라 적절히 사용할 수 있게 했다. - 하나의 FBX로 묶여 있으나 같은 오브젝트가 여러개 있는 FBX 파일들은 인스턴싱 처리될 수 있도록 블렌더로 분리해서 최적화될 수 있도록 했다. 자잘한 버그 수정 - 협업 과정에서 Github에 업로드되는 파일 중 Engine 프로젝트에서 만들어지는 lib파일이 계속 충돌이 일어나서 gitignore에 lib파일을 업로드하지 않도록 했는데, 외부 라이브러리에서 사용되는 lib파일들이 업로드되지 않아서, 외부 라이브러리 파일들은 프로젝트 외부 폴더에서 따로 관리하도록 수정 PhysX 특성을 가진 오브젝트들을 AddPrefab으로 등록한 후 Get.. 2023. 8. 13. 11. Prefab 기능 구현 및 맵 제작 계획 수립 Prefab 기능 구현 - Prefab는 미리 만들어놓은 오브젝트 템플릿이다. - 이 기능은 사실 툴과 같이 개발되는게 가장 베스트이지만, 이번 프로젝트에서는 툴을 제외하고 그 시간에 다른 부분들에 시간을 투자하자는 전략을 세웠기 때문에 코드상에서 프리펩을 활용할 수 있도록 구현했다. - 내 엔진에선 특정 오브젝트의 상태를 저장하고, 그 오브젝트를 깊은 복사를 통해 불러와서 씬에 추가하는 용도이다. - 신경써서 작업한 부분은 모든 컴포넌트와 스크립트들에 Clone이라는 함수를 정의해서 내부적으로 얕은 복사가 일어나지 않게끔 처리해주는 부분이었다. - 이 기능이 유용하게 쓰이는 부분은 맵에 오브젝트를 배치할 때인데, 충돌체와 화면에 그려지는 FBX를 정렬하기 위해 Transform에서 회전이나 이동값을 미.. 2023. 8. 10. 10. Mesh와 Material 구조 변경 Mesh와 Material 구조 변경- 메쉬 구조의 경우도 이번에 FBX를 로드하면서 바꿔야겠다는 생각이 들었다. - 파일 하나에 여러 개의 메쉬가 존재하는 FBX 파일 특성 상 게임 오브젝트 하나당 하나의 정점 버퍼와 매칭되는 여러 개의 인덱스 버퍼를 가지고 있었던 기존 구조로 소화하기 어려웠다. - 기존 구조에서 이를 구현한다면 하나의 FBX파일을 로드하면 여러 개의 게임 오브젝트가 만들어져야 했기 때문이다. - 때문에 정점 버퍼와 그와 매칭되는 다수의 인덱스 버퍼를 하나의 MeshContainer라는 구조체로 두고, 이 구조체의 배열을 메쉬 클래스에서 관리하고, 렌더링할 때 가진 정점 버퍼와 인덱스 버퍼를 세팅해서 모두 렌더링해주는 방식으로 구현했다. struct IndexBufferInfo { C.. 2023. 8. 6. 이전 1 ··· 21 22 23 24 25 26 27 ··· 85 다음