UI와 플레이어를 구현하게 되어서 구현에 필요한 내용을 간단하게 정리해보려고 한다.
1. 필요한 UI 종류
(씬을 얼마나, 어떻게 구현할지는 아직 명확하지 않아서 장면 기준으로 UI를 나누겠다.)
1.1. 시작 장면
* New Game 버튼
= 새로운 게임을 시작한다.
= 세이브 데이터가 저장된 창으로 넘어간다.
* Load Game 버튼
= 저장된 데이터를 불러온다.
= 세이브 데이터가 저장된 창으로 넘어간다.
* Setting 버튼
= 세팅 창으로 넘어간다.
* Exit 버튼
= 창이 꺼지면서 게임을 종료한다.
1.2. 세이브 데이터 UI(다이어리)
* 세이브 데이터 버튼
= 유저가 방향키로 이동해서 지정 가능.
(기본은 가장 위쪽 칸.)
= 칸은 총 5개
* 엔딩 도감 버튼
= 엔딩 도감 확인 가능
* 일러스트 도감 버튼
= 일러스트 도감 확인 가능
1.3. 세팅 UI
(계획중)
1.4. 대화 UI
* NPC 이름 텍스트
= NPC 이름이 출력된다.
* NPC 대사 텍스트를 렌더링.
(텍스트는 한 글자씩 타다다닥 쳐지는 애니메이션 사용)
= Z(임의로 설정)키를 클릭 시 다음 대사를 확인하고, 대사가 끝날 시 창이 닫힘.
= 캐릭터 얼굴 UI 추가 여부는 추후에 결정.
++ 침대에서 세이브를 할 경우,
시간 텍스트가 보이면서 00:00이라고 출력.
1.5. 인벤토리 UI
* 아이템 이미지
= 디폴트로 좌측 상단 아이템부터 출력.
= 마우스 클릭/WASD/방향키로 확인 가능.
= 3행으로 이루어짐.
= 아이템이 창에 보여지는 것보다 많을 경우 자동으로 스크롤되면서 다음 칸 보임.
*아이템 확대 이미지
= 아이템 아이콘이 확대된 그림 보여짐.
* 아이템 텍스트
= 아이템에 관한 상세 설명 한 번에 띄워짐.
1.6. 치타 가방 UI
= 인벤토리 U와 아이템 칸, 아이템 확대 그림, 아이템 텍스트 동일
* 치타 프로필 이미지
1.7. 퀘스트 UI
* 메인 퀘스트 버튼
= 누르면 퀘스트 바에 메인 퀘스트 정보들이 출력된다.
= 해당 버튼을 누르면 버튼 색 변경.
* 서브 퀘스트 버튼
= 해당 버튼 누르면 버튼 색 변경.
= 누르면 퀘스트 바에 서브 퀘스트 정보들이 출력된다.
* 퀘스트 이미지
= 퀘스트 바를 클릭 / 아래쪽 방향키로 내릴 경우 퀘스트 설명칸에 퀘스트 정보가 출력된다.
* 퀘스트 설명칸
= 퀘스트 정보가 출력된다.
1.8. 카페 UI
* 캐릭터 상반신 이미지
= 주문한 캐릭터 상반신이 보인다.
* 카운터 이미지
= 배경이미지인 카운터가 출력된다.
(이름, 대사 텍스트는 1.4 대화 UI와 동일)
* 이름 텍스트
= 주문한 캐릭터의 이름이 출력된다.
* 대사 텍스트
= 캐릭터의 대사가 출력된다.
* 레시피 북 버튼
= 클릭시 레시피 북을 확인할 수 있다.
* 장식
= 배경 장식이다.
* 커피 머신
= 배경 장식이다.
* 배달주문리스트
= 배달주문리스트를 확인할 수 있다.
1.9. 배달주문리스트 UI
* 뒤로가기 버튼
= 해당 창이 꺼지고 카페 UI가 보인다.
* 배달 주문 리스트
= 배달 주문 리스트 배경이 보인다.
(음료 이미지, 주문 내용 텍스트, 제작 버튼은 한 그룹이며, 세이브 데이터와 동일한 방식으로 진행된다.)
* 음료 이미지
= 주문이 들어온 음료 사진들이 보인다.
* 주문내용 텍스트
= 음료 정보와 객실 번호가 출력된다.
* 제작 버튼
= 누르면 음료 제작이 시작된다.
1.10. 레시피 북 UI
(음료 이미지, 음료 이름 텍스트1는 하나의 그룹이다.)
* 음료 이미지
= 음료 사진이 보인다.
* 음료 이름 텍스트1
= 음료 이름이 출력된다.
(여기서부터는 인벤토리처럼 음료 종류에 대한 설명이다.)
* 음료 이름 텍스트2
= 음료 이름이 출력된다.
* 레시피 설명
= 레시피가 출력된다.
(어떻게 출력되는지는 미정)
* 음료 전체 모습 이미지
= 아이스 버전, 핫 버전 이미지들이 각각 출력된다.
1.11. 음료 제작창 UI
* 뒤로가기 버튼
= 해당 창을 지우고 카페 UI로 이동한다.
(장식, 커피머신은 이전 UI와 동일하다.)
* 추출 버튼
= 추출 클릭 시 에스프레소 1개 얻음.
* 커피 애니메이션 이미지
= 추출 버튼 누를 시 섞이는 애니메이션 출력.
= 이전에는 이미지만 띄워져 있음.
(핫과 아이스는 둘 중 하나만 선택 가능.)
* 핫 음료 컵 버튼
= 클릭 시 핫 음료로 설정.
* 아이스 컵 버튼
= 클릭시 아이스 음료로 설정.
(2열 종대로 배치되어 있음)
* 재료 버튼
= 원하는 재료를 클릭해서 활성화시킴.
= 다중 재료 선택 가능.
= 짝수 횟수 클릭 시 재료 비활성화.
* 제작 버튼
= 클릭시 활성화된 재료들, 핫/아이스 음료 컵 종류를 선택해서 다 선택했을 경우 음료가 제작되어 손님에게 전달된다.
++ 기타 필요한 창
* 팝업 창
= 세이브 데이터가 가득 찬 상태로 데이터 슬롯을 누를 경우,
2. 플레이어
2.1. 저장 기능
= 침대에서 수면 시 자동저장
2.2 이동 기능
= WASD로 이동한다.
2.3. 저장할 데이터 종류
= 진행한 챕터 인덱스(현재 값만)
= 진행한 메인 퀘스트 인덱스(현재 값만)
= 진행한 서브 퀘스트 인덱스(전부 리스트로 받아올 것)
= 인벤토리 데이터 (아이템 종류, 아이템 개수)
= 카페 재료 데이터 (얻은 아이템 종류 string 배열로 받아오기)
= 해금한 일러스트 데이터(배열)
= 해금한 엔딩 데이터
2.4. 애니메이션
= 플레이어 이동 및 상호작용 애니메이션
이렇게 정리해 보았다. 일단은 플레이어 먼저 개발해 보아야겠다.
기본 플레이어 클래스에 세이브 데이터, 이동, 상호작용, 애니메이션으로 분리해서 작업할 계획이다.