[2D 비주얼 노벨] 구현할 기능 정리하기
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. 애니메이션
= 플레이어 이동 및 상호작용 애니메이션
이렇게 정리해 보았다. 일단은 플레이어 먼저 개발해 보아야겠다.
기본 플레이어 클래스에 세이브 데이터, 이동, 상호작용, 애니메이션으로 분리해서 작업할 계획이다.