카테고리 없음

[2D 비주얼 노벨] 구현할 기능 정리하기

mazayong 2024. 6. 13. 23:28

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. 애니메이션

= 플레이어 이동 및 상호작용 애니메이션

 

 

이렇게 정리해 보았다. 일단은 플레이어 먼저 개발해 보아야겠다.

기본 플레이어 클래스에 세이브 데이터, 이동, 상호작용, 애니메이션으로 분리해서 작업할 계획이다.