본문 바로가기

전체 글330

5. 타일 출력 및 정렬 구현 타일 출력 - 클릭된 타일의 인덱스를 가져와서 화면에 뿌려주는 로직인데 이 부분은 간단하게 구현함 - LBUTTON CLICK 이벤트가 발생하면, 현재 마우스에 Preview Tile의 위치값을 받아서 타일을 생성하였음 타일 정렬 - 타일은 일정한 간격으로 배치되어야 하므로 타일 크기로 나눈 다음 나머지를 버린 몫을 취해서 다시 타일 크기를 곱해주는 것으로 쉽게 구현이 가능하다. - 그 후 그리드와 타일의 위치를 맞춰 주는 수작업을 통해 실제 타일 칸에 타일이 찍히는 로직을 구현했다. 툴 탭 및 옵션 추가 - 현재 TilePallete에서 타일을 선택하는 부분이 있고, 옵션을 선택하는 부분이 있는데(충돌체, 그리는방식(연속,단일) 등등) 이런 기능들을 한 GUI안에 집어넣으면 복잡하기 때문에, 탭을 나눠.. 2023. 3. 15.
4. Tool Pallete 기능 개선 및 Grid 구현 Pallete 클래스에 필요한 기능 추가 - 우클릭 시 마우스 커서 위치에 있던 타일 텍스쳐 제거 - 이 과정에서 발견한 버그 중 하나는 SRV 레지스터가 초기화되고 있지 않다는 것 - 팔레트 버튼 클릭 시 버튼 인덱스에 맞는 텍스쳐를 Resources에서 가져오는데, Tool 쪽에서 텍스쳐를 nullptr로 보내줘도 SRV 레지스터가 초기화가 안되니 커서 위치의 타일이 화면에서 지워지지 않는 버그 - 이 부분을 개선하기 위해 Material에서 해당 SRV 레지스터에 보낼 텍스쳐가 없는 경우 nullptr을 가진 ShaderResourceView를 보내줘서 해결 Grid 구현 - Grid는 일반 GameObject에 GridScript를 추가해서 사용했다 - Grid를 그려주는 부분은 Shader 코드.. 2023. 3. 14.
3. Pallete 클래스 작업_230313 Pallete 클래스 - 이 클래스는 타일 맵 툴에서 사용될 녀석이다 - 마우스로 Pallete에 있는 타일을 클릭해서 화면상에 찍어 주면, 그 타일이 화면에 출력된다 - 이렇게 맵에 타일을 깔아주면, 그 타일들이 모여서 맵이 만들어진다. - 이렇게 맵 단위로 만들게 되면 당연히 그 맵에 몬스터도 같이 추가시킬 것이기 때문에 나중에 추가할 Prefab 기능을 고려해서 작성하고 있다. ImGui::ImageButton - 이 함수는 첫 번째 인자로 ShaderResourceView를 받고, 두번째 인자로 사이즈를 받는다. - Pallete의 전체적인 로직은 메인 함수에서 툴을 초기화할 때 특정 경로에 있는 타일들을 다 텍스쳐로 로드한 후, - 그 텍스쳐를 Resources (리소스 매니저)에 저장함과 동시.. 2023. 3. 13.
2. 툴 구상 및 설계 - 우선 맵 툴/ 애니메이션 툴 모두 IMGUI를 이용하여 제작할 생각이다. - 그러므로 먼저 IMGUI를 익혀야 한다 (커리큘럼 상 툴이 후순위기 때문에 스스로 습득해야 함) 툴을 먼저 만드는 이유는? 1. 초반에 틀을 잡아둬야 이후 작업이 편리하다 (이 틀을 기반으로 확장해나가기 때문) 2. 초안을 일찍 잡아두면 실제 작업할 때 개선 사항을 그때 그때 반영할 수 있다. -때문에 구조를 러프하게 잡고 확장에 유연한 방법들을 생각해봐야겠다 타일 맵 툴 - 팔레트에 스프라이트에서 가져온 이미지들을 정리한다. - 그 정돈된 이미지(혹은 텍스쳐와 좌표값의 모음)를 불러와서 마우스 클릭 등을 활용해서 찍어준다 (이 부분은 레이캐스팅을 구현해야 할듯) 애니메이션 툴 - 포토샵처럼 큰 스프라이트 이미지를 띄워두고 .. 2023. 3. 10.