3. 2주차 진행사항

  1. 작업 목록
  2. Editor UI
  3. FSM Editor
  4. Tile, Collider Editor
  5. UI 오브젝트



1주차에서 미진했던 에디터의 보충 제작으로 인해 시간이 소요되어 아직 플레이어 / 몬스터 제작을 시작하지 못함.

다만, 스테이지 & FSM 관련 에디터는 구현이 끝나 각 레벨은 제작만 하면 됨. (텍스트 렌더링 오류는 해결 필요)

3주차는 스크립트 작성에 집중해 일단 플레이 가능한 데모 스테이지를 제작하는 것을 목표로 한다.




1. Editor UI

  • Material, Flipbook 을 ImGui를 통해 생성 가능



2. FSM Editor

alt text

  • Engine 라이브러리를 사용하는 외부 라이브러리에서 State 클래스를 상속받아 상태를 스크립트처럼 구현하고 추가할 수 있도록 함.

  • CodeGen 코드 생성기를 이용해서 자동으로 등록용 클래스가 만들어지고, 클라이언트 실행 시 엔진에 등록되어 사용할 수 있음.

  • 상태 변경 조건 Trigger 함수 또한 CodeGen 에서 함수 구조를 분석 후 구조가 일치하는 함수를 포인터로 넘겨 엔진에 등록시킴.

  • 엔진에서는 ImGui를 통해 등록받은 State 와 상태 변경 조건 Trigger 함수를 조합해서 사용할 수 있음.




3. Tile, Collider Editor

alt text

  • Tile 크기와 해당 타일맵에서 사용하는 아틀라스 이미지를 고르고, 에디터를 통해 타일 스프라이트를 선택해서 브러시처럼 타일을 배치할 수 있음.

alt text

  • 충돌체의 속성(시뮬레이션/쿼리/트리거) 설정 및 충돌 대상 레이어 선택, 크기 와 오프셋을 입력받아 강체에 추가할 수 있음



4. UI 오브젝트

alt text

  • FSM과 비슷한 구조로, 외부 라이브러리에서 스크립트로 구현된 이벤트 함수를 등록받아 클릭/키다운 시 해당 이벤트 함수를 호출해 준다.

  • 단, ImGui를 통해 선택하는 것이 아닌 스크립트 쪽에서 초기에 등록시켜야 한다.

  • 스크립트에서는 UI의 상태를 받아와 추가적인 동작을 정의할 수 있다. (클릭 시 텍스쳐 변경 등)

  • 폰트와 문자열을 입력받아 텍스트를 렌더링할 수 있다.




0. 작업 목록

Editor

작업 대상 작업 내용 작업 현황
Material Material을 새로 생성하는 기능 ✅ Completed
Flipbook Flipbook 생성 및 오브젝트 추가 기능 ✅ Completed
FSM State 클래스와 Trigger 함수로 구현 ✅ Completed
State FSM 컴포넌트와 연계 ✅ Completed
UI 클릭 및 키다운 상호작용 이벤트 구현 ✅ Completed
UI UI에 연결할 이벤트 함수를 스트립트로부터 설정하는 기능 ✅ Completed
Font & UI 폰트 파일로 입력받은 텍스트를 UI 위치에 출력하는 기능 ✅ Completed
TileRender 타일 편집기 ✅ Completed
PhysX 충돌체를 추가/편집/제거하는 기능 ✅ Completed


Level

작업 대상 작업 내용 작업 현황
Level 시작 레벨 만들기 ⏳ In Progress
Level 스테이지 만들기 ⏳ In Progress


Player/Monster

작업 대상 작업 내용 작업 현황
Player 기본 이동 구현 (이동, 점프, 벽 점프, 등반) ⏳ In Progress
Player 로프 액션 구현 ❌ Incomplete
Monster Player 와 공격 상호작용 ❌ Incomplete


기타 작업

작업 대상 작업 내용 작업 현황
AssetMgr FindAsset 을 Load 로 대체 ✅ Completed
AssetMgr Content 자동 로딩 및 동기화 ✅ Completed


현재 확인된 문제

오류 대상 오류 내용 해결 현황
Particle Play/Stop 전환 중 파티클이 비정상적으로 생성되는 현상 있음 ❌ Incomplete
Particle m_MaxParticle 값이 같을 때 이전 파티클 데이터가 남아있음 ❌ Incomplete
Transform 쿼터니언 회전 문제 - y축 회전 시 90도에서 매끄럽게 전횐되지 않음 ❌ Incomplete
ImGui 다른 PC 에서 실행 시 UI 렌더링에 오차 발생 ✅ Completed
PhysX 레벨 Play 도중 Level 변경 시 삭제된 이전 레벨의 오브젝트 충돌 ContactEnd 호출됨 ✅ Completed
Font UI 컴포넌트 텍스트 렌더링 시 위치에 오류가 있음 ❌ Incomplete