실제 데모 시나리오 3종
본 문서는 부스 또는 발표 환경에서 실제 기능 단위를 보여주기 위한 데모 시나리오만 정리한 문서이다.
각 시나리오는 독립 실행을 전제로 한다. 같은 앱 빌드 안에서 이어서 보여줄 수도 있지만, 시연 안정성을 위해 데모 계정과 시작 데이터는 시나리오별로 분리한다.
데모 1. 첫 만남과 관계 시작
1. 시연 목적
방문자가 캐릭터 후보를 직접 살펴보고, 한 명을 선택하고, 이름을 정하고, 첫 기억이 남는 과정을 보여준다.
이 시나리오의 핵심은 “앱을 시작했다”가 아니라 “내가 고른 존재와 관계가 시작됐다”는 느낌을 전달하는 것이다.
2. 권장 시연 시간
3분 내외.
3. 시작 상태
| 항목 | 값 |
|---|---|
| 계정 상태 | 로그인 전 로컬 임시 계정 |
| 튜토리얼 상태 | 시작 전 |
| 선택 캐릭터 | 없음 |
| 시작 방 | 비어 있는 기본 방 |
| 시작 재화 | 데모용 기본 지급 전 |
| 권한 상태 | 알림, 위치, HealthKit 요청 전 |
4. 준비 데이터
| 데이터 | 값 |
|---|---|
| 선택 가능 캐릭터 | 라나, 셀레네, 스피카, 마야, 리오나 |
| 기본 지급 아이템 | 작은 달력, 기본 책상, 첫 만남 기념품 |
| 기본 기억 제목 | 처음 만난 날 |
| 방문자 기본 호칭 | 선생님 또는 유저 입력값 |
| 데모 선택 캐릭터 | 라나 권장 |
라나는 반응이 빠르고 감정 표현이 직관적이므로, 짧은 부스 시연에서 선택의 결과가 가장 선명하게 보인다. 단, 실제 데모 화면에서는 다른 캐릭터도 선택 가능해야 한다.
5. 시연 흐름
| 순서 | 발표자 조작 | 화면 출력 | 저장 결과 |
|---|---|---|---|
| 1 | 앱을 처음 실행한다. | 어두운 기본 방 또는 책상 위에 다섯 개의 별자리 코어가 놓여 있다. 각 코어는 캐릭터의 대표 색으로 약하게 빛난다. | tutorialStep = first_launch |
| 2 | 화면을 터치한다. | 별자리 코어들이 차례로 반응하고, 각 캐릭터의 실루엣과 짧은 반응 연출이 나타난다. | tutorialStep = character_select |
| 3 | 라나 카드를 터치한다. | 라나가 앞으로 튀어나오듯 등장한다. 오른손 장갑의 양자리 회로가 켜지고, 빛의 띠가 유저 쪽으로 뻗는다. | previewCharacterId = lana |
| 4 | 다른 캐릭터 카드를 한두 번 눌러 비교한다. | 셀레네, 스피카, 마야, 리오나도 각자 다른 말투와 동작으로 반응한다. 선택하지 않은 캐릭터는 사라지지 않고 뒤쪽에서 대기한다. | previewCharacterId 갱신 |
| 5 | 다시 라나를 선택하고 이 아이와 시작하기를 누른다. |
라나의 장갑 회로가 밝게 빛나고, 회로 모양의 빛띠가 화면 밖 유저 손목 쪽으로 감기는 연출이 나온다. 이후 홈 화면으로 전환된다. | characterId = lana |
| 6 | 유저 호칭을 입력한다. 예: 루카 |
라나가 입력한 호칭을 확인하고 짧게 반응한다. | userCallName = 루카 |
| 7 | 캐릭터 이름을 기본명으로 확정한다. | 라나라는 이름이 표시되고, 라나가 기뻐하는 짧은 모션을 한다. |
characterDisplayName = 라나 |
| 8 | 기본 방에 진입한다. | 라나가 기본 방 한가운데에 서 있고, 하단에 대화, 프로필, 가구, 상점 버튼이 열린다. | tutorialStep = home_entered |
| 9 | 지급된 작은 달력을 방에 놓는다. | 달력이 벽 또는 책상 위에 배치되고, 알림 기능 버튼이 잠금 상태에서 안내 상태로 바뀐다. | initialRewardGranted = true, itemId = tutorial_calendar, roomPlacement 저장 |
| 10 | 프로필 버튼을 누른다. | 프로필에 이름, 별자리 모티브, 처음 만난 날짜, 최근 기억이 표시된다. | firstMeetingAt 저장, memoryCreated = 처음 만난 날 |
6. 예상 반응 방향
| 상황 | 예상 반응 |
|---|---|
| 첫 등장 | 라나는 연결이 시작된 것을 직감하고, 놀람과 반가움이 섞인 적극적인 반응을 보인다. |
| 선택 직전 | 라나는 유저와 함께 무언가를 시작하고 싶어 하는 태도를 보인다. 부담을 주기보다는 가볍게 출발을 권하는 느낌이다. |
| 호칭 입력 후 | 라나는 유저가 입력한 호칭을 빠르게 받아들이고, 앞으로 그 호칭으로 부르겠다는 친근한 반응을 보인다. |
| 방 입장 후 | 라나는 비어 있는 기본 방을 아쉬워하기보다 앞으로 채워갈 수 있는 공간으로 받아들이며 기대감을 보인다. |
| 첫 달력 배치 후 | 라나는 달력을 유저와 함께 하루를 기록하고 챙기는 물건으로 인식하며, 앞으로의 생활 루프를 자연스럽게 암시한다. |
7. 종료 상태
| 항목 | 값 |
|---|---|
| 튜토리얼 상태 | 홈 진입 완료 |
| 선택 캐릭터 | 라나 |
| 방 상태 | 기본 방, 작은 달력 배치 완료 |
| 프로필 상태 | 첫 만남 날짜와 첫 기억 생성 |
| 권한 상태 | 아직 요청하지 않음 |
8. 성공 기준
- 방문자가 캐릭터를 직접 골랐다는 느낌을 받는다.
- 선택한 캐릭터만 홈 화면에 등장한다.
- 첫 만남 정보가 프로필과 기억에 남는다.
- 권한 요청 없이도 기본 홈, 대화, 프로필, 방 배치가 가능하다.
- 튜토리얼 도중 앱을 종료해도 마지막 완료 단계 다음부터 재개할 수 있다.
데모 2. 하루 플레이 루프와 보상 반영
1. 시연 목적
실제로 구현하고자 하는 활동 축인 대화, 하루 성장 목표, 산책 또는 걸음 수 목표, 보상, 아이템 도감, 방 꾸미기, 기억 생성을 하나의 짧은 하루 루프로 보여준다.
이 시나리오의 핵심은 “걸음 수를 체크했다”가 아니라 “캐릭터와 함께 보낸 시간이 성장, 보상, 공간, 추억으로 남았다”는 느낌을 전달하는 것이다.
2. 권장 시연 시간
4~5분 내외.
3. 시작 상태
| 항목 | 값 |
|---|---|
| 계정 상태 | 데모 계정 |
| 선택 캐릭터 | 라나 |
| 튜토리얼 상태 | 완료 |
| 방 상태 | 기본 방, 작은 달력 배치 완료 |
| 재화 | 데모 재화 120 |
| 오늘의 목표 | 미완료 |
| 도감 상태 | 발자국 러그 미보유 |
| 활동 데이터 | 데모용 걸음 수 요약값 준비됨 |
| 권한 상태 | HealthKit 권한 팝업은 시연하지 않음 |
라나는 산책과 야외 활동을 좋아하는 캐릭터이므로, 실제 구현 활동 중 하나인 산책 또는 걸음 수 목표를 보여주기에 적합하다.
4. 준비 데이터
| 데이터 | 값 |
|---|---|
| 오늘의 목표 | 라나와 가볍게 걷기 |
| 미션 ID | daily_walk_lana_001 |
| 활동 판정 | 데모용 추가 걸음 수 2,000보 이상 |
| 시작 걸음 수 | 2,100보 |
| 완료 걸음 수 | 4,620보 |
| 이동 거리 요약 | 1.6km |
| 미션 보상 | 데모 재화 50, 유대 증가, 발자국 러그 |
| 아이템 ID | footprint_rug |
| 기억 제목 | 라나와 처음 산책한 날 |
| 성장 표시 | 성장도 +5 또는 상태 문구 조금 더 가까워짐 |
걸음 수, 이동 거리, 재화량, 성장량은 데모용 값이다. 실제 HealthKit 권한 튜토리얼, 성장 공식, 경제 밸런스는 이 시나리오에서 확정하지 않는다.
5. 시연 흐름
| 순서 | 발표자 조작 | 화면 출력 | 저장 결과 |
|---|---|---|---|
| 1 | 홈 화면에서 라나를 터치한다. | 라나가 가볍게 몸을 흔들며 산책을 제안한다. 오늘의 목표 배지가 캐릭터 근처에 뜬다. | 최근 상호작용 시간 갱신 |
| 2 | 오늘의 목표 버튼을 누른다. | 라나와 가볍게 걷기 미션 카드가 보인다. 목표 조건, 현재 걸음 수, 보상 미리보기가 표시된다. |
missionStatus = ready |
| 3 | 시작하기를 누른다. |
산책 준비 화면이 열린다. 라나의 장갑 회로가 짧게 빛나고, 목표가 진행 중으로 바뀐다. |
missionStatus = in_progress, activityStartSteps = 2100 |
| 4 | 발표자가 데모 빌드의 활동 요약 불러오기를 누른다. |
걸음 수가 2,100보에서 4,620보로 증가한 요약 카드가 표시된다. 이동 거리 1.6km가 함께 표시된다. | activityEndSteps = 4620, walkDistance = 1.6km |
| 5 | 목표 완료 확인을 누른다. | 목표 완료 결과 화면이 나오고 라나의 장갑 회로가 밝게 켜진다. |
missionStatus = completed |
| 6 | 보상 받기를 누른다. |
데모 재화 50, 발자국 러그, 유대 증가 결과가 순서대로 표시된다. | currencyDelta = +50, itemId = footprint_rug, collectionState = owned |
| 7 | 아이템 도감을 연다. | 발자국 러그가 NEW 상태로 등록되어 있고, 획득 경로가 첫 산책 목표 보상으로 표시된다. |
도감 획득 날짜 저장 |
| 8 | 가구 배치 화면으로 이동한다. | 발자국 러그를 침대 앞, 문 앞, 창가 중 원하는 위치에 배치할 수 있다. | roomPlacement 저장 |
| 9 | 홈으로 돌아온다. | 방에 발자국 러그가 보이고, 라나가 러그 위에서 가볍게 뛰는 생활 모션을 한다. | 홈 상태 갱신 |
| 10 | 프로필의 최근 기억을 확인한다. | 라나와 처음 산책한 날 기억이 추가되어 있다. |
memoryCreated = 라나와 처음 산책한 날 |
6. 예상 반응 방향
| 상황 | 예상 반응 |
|---|---|
| 홈에서 터치 | 라나는 날씨나 기분을 핑계로 가벼운 산책을 제안한다. 활동량을 지적하기보다는 같이 나가고 싶어 하는 느낌이 중심이다. |
| 미션 시작 | 라나는 목표 달성을 강요하지 않고, 유저와 함께 출발한다는 기대감을 보인다. |
| 활동 요약 확인 | 라나는 걸음 수 증가를 보고 기뻐하며, 유저와 같이 움직였다는 사실에 만족감을 표현한다. |
| 완료 직후 | 라나는 짧은 산책도 충분히 의미 있는 활동으로 받아들이고, 성공 경험을 긍정적으로 마무리한다. |
| 러그 배치 후 | 라나는 발자국 러그를 오늘 산책의 흔적으로 받아들이며, 방 안에 추억이 남았다는 느낌을 준다. |
7. 종료 상태
| 항목 | 값 |
|---|---|
| 오늘의 목표 | 완료 |
| 재화 | 데모 재화 170 |
| 도감 | 발자국 러그 보유 |
| 방 상태 | 발자국 러그 배치 완료 |
| 프로필 | 최근 기억 추가 |
| 성장 상태 | 유대 또는 성장도 증가 연출 완료 |
8. 성공 기준
- 미션 완료가 단순 체크가 아니라 캐릭터와 함께 산책한 결과처럼 보인다.
- 대화, 하루 목표, 산책 또는 걸음 수, 보상, 도감, 방 꾸미기, 기억이 하나의 루프로 이어진다.
- 보상이 숫자, 아이템, 방 변화, 기억으로 연결된다.
- 도감에서 획득 경로와 획득 날짜를 확인할 수 있다.
- 보상 중복 지급이 발생하지 않는다.
- HealthKit 원본 데이터, 스트레스 공식, 경제 밸런스가 확정된 것처럼 보이지 않는다.
데모 3. 현실 정보 반영과 복귀 유도
1. 시연 목적
날씨, 도시 선택, HealthKit 요약, 알림, 위젯이 캐릭터의 생활과 홈 화면에 어떻게 반영되는지 보여준다.
이 시나리오의 핵심은 “현실 정보를 많이 수집한다”가 아니라 “필요한 정보만 조심스럽게 받아 캐릭터의 반응과 생활감으로 바꾼다”는 느낌을 전달하는 것이다.
2. 권장 시연 시간
4분 내외.
3. 시작 상태
| 항목 | 값 |
|---|---|
| 계정 상태 | 데모 계정 |
| 선택 캐릭터 | 마야 |
| 튜토리얼 상태 | 완료 |
| 방 상태 | 기본 방, 작은 달력 배치 완료 |
| 위치 설정 | GPS 미사용, 도시 선택 사용 |
| 선택 도시 | 서울 |
| 날씨 상태 | 비 |
| 알림 권한 | 데모에서는 허용 상태 |
| HealthKit 상태 | 데모 요약값 준비됨 |
| 위젯 크기 | 상단 화면 절반 |
마야는 생활 균형을 살피는 캐릭터이므로, 날씨, 수면, 일정, 알림을 묶은 시연에 적합하다.
4. 준비 데이터
| 데이터 | 값 |
|---|---|
selectedCity |
Seoul |
weatherState |
rain |
weatherPresetId |
rainy_room |
ownedOutfitOnly |
true |
healthSummary.steps |
4,210 |
healthSummary.sleep |
6시간 20분 |
healthSummary.workout |
없음 |
reminderTitle |
물 마시기 |
reminderTime |
21:30 |
widgetSize |
top_half |
HealthKit 값은 원본 데이터가 아니라 데모용 요약값이다. 화면에서도 원본 기록 목록이 아니라 요약 카드로만 표시한다.
5. 시연 흐름
| 순서 | 발표자 조작 | 화면 출력 | 저장 결과 |
|---|---|---|---|
| 1 | 홈 화면을 연다. | 창밖은 비 오는 배경이고, 방 안 조명은 흐린 날씨에 맞게 어둡게 조정되어 있다. 마야는 기본 보유 복장 안에서 비 오는 날 반응을 보인다. | 마지막 확정 날씨 상태 표시 |
| 2 | 날씨 설정을 연다. | 위치 권한 대신 도시 선택으로 서울이 설정되어 있음을 보여준다. GPS를 사용하지 않아도 도시 기준 날씨를 사용할 수 있어요라는 안내가 보인다. |
locationMode = city_fallback |
| 3 | 날씨 프리셋을 확인한다. | 비 오는 방 프리셋이 적용 중이다. 보유하지 않은 의상은 자동 착용되지 않는다는 안내가 보인다. |
weatherPresetId = rainy_room |
| 4 | HealthKit 요약 카드를 연다. | 걸음 수 4,210, 수면 6시간 20분, 운동 기록 없음이 요약 상태로 표시된다. 원본 수면 구간이나 상세 심박수는 보이지 않는다. | healthSummary 조회 |
| 5 | 마야의 반응을 확인한다. | 마야가 오늘의 생활 균형에 대해 짧게 말한다. 수치 압박이나 죄책감 표현은 없다. | 최근 반응 상태 갱신 |
| 6 | 작은 달력에서 알림 만들기를 누른다. | 알림 생성 화면이 열리고 제목, 시간, 반복 여부를 입력할 수 있다. | reminderDraft 생성 |
| 7 | 물 마시기, 21:30, 오늘만을 입력하고 저장한다. |
알림이 저장되고, 알림 목록에 새 항목이 추가된다. | reminderId = drink_water_2130, notificationPermission = allowed |
| 8 | 위젯 미리보기를 연다. | 상단 화면 절반 크기의 위젯에 마야, 비 오는 방 배경, 다가오는 알림 21:30 물 마시기가 표시된다. |
위젯 스냅샷 갱신 |
| 9 | 데모용 알림 도착 버튼을 누른다. | 알림 배너가 뜨고, 배너를 누르면 앱의 알림 상세 화면으로 이동한다. | 딥링크 진입 로그 저장 |
| 10 | 알림 상세에서 완료를 누른다. | 마야가 짧게 반응하고, 알림은 완료 상태로 바뀐다. | reminderStatus = completed |
| 11 | 프로필의 최근 기억을 확인한다. | 비 오는 날, 물 마시기 알림을 완료했다는 요약 기억이 추가되어 있다. |
memoryCreated 또는 패턴 기억 후보 저장 |
6. 예상 반응 방향
| 상황 | 예상 반응 |
|---|---|
| 비 오는 홈 화면 | 마야는 비 오는 날의 무거운 분위기를 인식하고, 유저가 무리하지 않도록 차분하게 받아주는 반응을 보인다. |
| HealthKit 요약 확인 후 | 마야는 수면과 활동 요약을 근거로 오늘의 목표를 작게 잡는 쪽을 제안한다. 수치 압박이나 죄책감 유도는 피한다. |
| 알림 생성 후 | 마야는 알림이 등록되었음을 확인하고, 필요한 시간에 한 번 챙겨주겠다는 안정적인 반응을 보인다. |
| 위젯 미리보기 | 마야는 앱 밖에서도 방 상태와 일정이 이어진다는 느낌을 주되, 계속 확인하라고 압박하지 않는다. |
| 알림 완료 후 | 마야는 작은 행동이 생활 균형을 유지하는 데 도움이 된다는 식으로 부드럽게 긍정한다. |
7. 권한 거절 상태 대체 연출
알림 권한이 꺼져 있는 상태도 짧게 보여줄 경우, 같은 화면에서 다음 대체 연출을 사용한다.
| 상황 | 화면 출력 |
|---|---|
| 알림 권한 꺼짐 | 알림은 앱 내부 목록에 저장된다. |
| 권한 안내 | 화면 상단에 기기 알림이 꺼져 있어요. 앱 안에서는 일정을 확인할 수 있어요. 배너가 표시된다. |
| 사용자 선택 | 설정으로 이동과 나중에 버튼을 제공한다. |
| 캐릭터 반응 | 캐릭터는 권한 거절을 탓하지 않고, 앱 안에서 확인할 수 있다고 안내한다. |
8. 종료 상태
| 항목 | 값 |
|---|---|
| 위치 설정 | 도시 선택 기반 날씨 사용 |
| 홈 배경 | 비 오는 방 프리셋 반영 |
| HealthKit | 요약값만 표시 |
| 알림 | 물 마시기 알림 생성 및 완료 |
| 위젯 | 홈의 마지막 확정 상태와 일치 |
| 프로필 | 알림 완료 또는 생활 균형 관련 기억 추가 |
9. 성공 기준
- 위치 권한 없이도 날씨 기반 배경이 동작한다.
- 홈 화면, 날씨 설정, 위젯의 배경 상태가 일치한다.
- HealthKit 원본 데이터가 아니라 요약값만 표시된다.
- 알림은 앱 내부 일정과 기기 알림을 구분해서 처리한다.
- 알림을 눌렀을 때 관련 상세 화면으로 이동한다.
- 권한 거절 상태에서도 핵심 게임 진행이 막히지 않는다.