PetAI 데모 시나리오
캐릭터와 놀아 얻은 재화로 방을 꾸미면, 가구가 실제 스마트폰 기능으로 이어진다. 캐릭터는 함께한 게임과 사용자의 기억을 바탕으로 대화한다.
데모 전체 흐름
세 시나리오는 한 사용자의 첫날로 이어진다. 데모에서는 세 캐릭터 중 A — 엘레나를 선택한다.
| 순서 | 장면 | 관객이 이해해야 하는 것 |
|---|---|---|
| 1 | 첫 시작 | 캐릭터를 고르고, 최초 1회 필요한 AI 모델을 준비한다 |
| 2 | 게임과 구매 | 게임으로 번 재화가 가구와 실제 기기 기능으로 이어진다 |
| 3 | 개인화 대화 | 엘레나가 이전 대화의 기억과 현재 게임 기록을 구분해서 사용한다 |
데모에서 사용할 값
| 항목 | 값 |
|---|---|
| 시작 재화 | 0 LINK |
| 리듬게임 1회 보상 | 60 LINK |
| 벽시계 가격 | 50 LINK |
| 벽시계 구매 후 잔액 | 10 LINK |
| 리듬게임 길이 | 약 30초, 22박 |
| 리듬게임 성공 기준 | 14/22 이상 |
| 시연 기록 | 18/22 |
별빛 레코드 플레이어와 우편함은 처음부터 방에 놓여 있다. 레코드 플레이어는 리듬게임, 우편함은 앱 공지와 미션 보상을 담당한다.
상점에는 다음 가구가 보인다.
| 가구 | 가격 | 열리는 기능 |
|---|---|---|
| 느린 구름 벽시계 | 50 LINK | 알람·타이머 |
| 메모 보드 | 50 LINK | 예약 푸시 알림 |
| 만보기 | 50 LINK | 오늘·어제 걸음 수 |
| 달력 | 80 LINK | 캘린더 일정 |
이번 데모에서 실제로 구매하는 것은 벽시계 하나다.
시나리오 1. 첫 시작
1. 로고와 시작 화면
앱을 실행하면 검은 화면 위에 팀 로고가 나타난다. 로고 주변의 별이 하나씩 켜지고, 별을 잇는 선이 생기면서 별자리 배경으로 전환된다.
화면 중앙에는 다음 문구가 나타난다.
작은 별 하나가, 당신을 기다리고 있어요.
잠시 뒤 화면 아래에서 TOUCH TO START가 천천히 점멸한다. 사용자가 화면을 누르면 로그인 선택지가 열린다.
- Apple 로그인
- Google 로그인
- 게스트로 시작
핵심 데모에서는 게스트로 시작을 선택한다.
2. 최초 1회 모델 다운로드
게스트로 시작하면 모델이 없는 첫 실행에서만 다운로드 안내가 나온다. 사용자에게 모델의 내부 구성은 보여 주지 않는다.
안내 문구:
게임을 시작하려면 최초 1회 AI 모델 다운로드가 필요해요.
버튼:
AI 모델 받기
다운로드가 시작된 뒤에는 화면 제목이 별도의 설명 문구가 아니라 현재 상태를 그대로 보여 준다.
| 상태 | 화면 문구 |
|---|---|
| 다운로드 중 | AI 모델을 준비하고 있어요. |
| 파일 확인 중 | 다운로드한 모델 파일을 확인하고 있어요. |
| 완료 | 로컬 AI 준비 완료 |
다운로드 중에는 하나의 진행 막대와 전체 진행률만 보인다. 완료되면 계속 버튼이 활성화된다.
3. 사용자 프로필
다음 화면에서 사용자의 이름과 생일을 입력한다.
제목:
어떻게 불러 드리면 될까요?
데모 입력값:
- 이름:
지우 - 생일:
5월 14일
다음을 누르면 캐릭터 선택 화면으로 넘어간다.
4. 캐릭터 선택
반투명한 별자리 배경 위에 세 캐릭터 카드가 나란히 보인다.
| 카드 | 캐릭터 |
|---|---|
| A | 엘레나 |
| B | 라미 |
| C | 플레이스홀더 캐릭터 |
각 카드의 그림과 소개 문구는 프론트엔드의 캐릭터 정본을 그대로 사용한다. 이 문서에서 성격이나 배경을 새로 정의하지 않는다.
데모에서는 A — 엘레나를 선택한다. 선택된 카드가 밝아지고 화면 아래 버튼이 활성화된다.
버튼:
결정
5. 캐릭터 이름
다음 화면에서는 선택한 캐릭터의 이름을 정한다.
입력창에는 선택한 캐릭터의 기본 이름인 엘레나가 회색으로 보인다. 사용자가 따로 입력하지 않고 결정을 누르면 실제 이름도 엘레나로 저장된다.
이후의 채팅 이름, 프로필, 페르소나 프롬프트에서는 저장된 캐릭터 이름을 사용한다.
6. 방으로 전환
별자리의 선 하나가 화면 아래로 길게 떨어진다. 별빛이 걷히면 작은 방이 나타나고, 방 중앙에서 엘레나가 눈을 뜬다.
첫 대사는 현재 코드의 엘레나 페르소나와 첫 만남 장면 라우트를 사용한다. 프론트엔드가 별도의 고정 대사를 덮어쓰지 않는다.
카메라가 방을 짧게 훑는다.
- 왼쪽에는
별빛 레코드 플레이어가 있다. - 벽에는 아직 시계를 놓을 빈자리가 있다.
- 오른쪽에는
우편함이 있다. - 상단 LINK 표시는
0이다.
레코드 플레이어 위에 작은 음표가 한 번 떠오른다. 별도의 긴 튜토리얼 없이 다음에 눌러 볼 물건만 알려 준다.
7. 첫 대화와 기억
방에 들어온 사용자는 엘레나와 자연스럽게 첫 대화를 나눈다. 대화 중 사용자가 밤에 카페인을 마시면 잠을 잘 못 잔다는 생활 습관이 드러나고, 엘레나는 그때의 맥락과 자신의 성격에 맞춰 자연스럽게 답한다.
말풍선 옆에 작은 별이 반짝이고 기억했어가 잠깐 나타난다. 이 정보는 시나리오 3에서 다시 사용된다.
시나리오 1은 엘레나가 레코드 플레이어 쪽을 바라보며 끝난다.
시나리오 2. 게임, LINK, 벽시계
1. 레코드 플레이어
사용자가 방 왼쪽의 별빛 레코드 플레이어를 누른다. 레코드가 돌기 시작하고 별무늬가 리듬에 맞춰 빛난다.
미니게임 카드가 열린다.
오늘의 레코드 · 우리만의 박자
빛나는 순간에 맞춰 화면을 눌러 주세요.
한 번 플레이하면 60 LINK를 받을 수 있어요.
버튼:
엘레나와 시작하기
2. 리듬게임
게임은 약 30초 동안 진행된다. 총 22번의 박자가 나오며, 중앙의 큰 원이 빛나는 순간에 화면을 누른다.
화면에는 필요한 정보만 보인다.
남은 시간 24초박자 5/22성공 4
박자를 맞히면 엘레나가 즐거운 애니메이션으로 반응하고, 놓치면 바로 다음 박자로 넘어간다. 게임 중 임의의 고정 대사를 추가하지 않는다.
시연 결과는 18/22로 잡는다.
3. 첫 기록과 보상
게임이 끝나면 결과 카드가 열린다.
첫 기록 18/22
오늘의 레코드 완료
보상 60 LINK
60 LINK 받기를 누르면 상단 숫자가 0 → 60으로 올라간다. 우편함에도 오늘의 레코드 보상 60 LINK가 한 건 들어온다.
이 장면에서 관객은 게임 결과가 말로 끝나는 것이 아니라 재화와 게임 기록으로 남는다는 것을 본다.
4. 상점
사용자가 상점을 연다. 화면 상단에는 보유 60 LINK가 보인다.
발표자는 느린 구름 벽시계를 선택한다.
느린 구름 벽시계
알람을 맞추고 타이머를 시작할 수 있어요.
50 LINK
버튼:
50 LINK로 구매
구매를 누르면 잔액 변화가 짧게 보인다.
60 LINK → 10 LINK
5. 벽시계 배치와 기능 해금
구매가 끝나면 상점이 닫히고, 방의 빈 벽에 시계가 자동으로 걸린다. 엘레나가 시계 아래로 걸어가 올려다본다.
화면 중앙에 해금 메시지가 뜬다.
벽시계를 방에 놓았어요
새로운 기능: 알람 · 타이머
상단 잔액은 10 LINK다. 가구 구매가 방의 외형 변화와 실제 기능 해금으로 동시에 이어지는 장면이다.
6. 채팅으로 타이머 실행
사용자가 채팅창에 다음 문장을 입력한다.
“20초 집중 타이머 시작해줘.”
요청은 create_timer로 라우팅된다. 벽시계를 보유하고 있으므로 기능 잠금을 통과한다.
첫 사용이라면 iOS 권한 창이 나타난다. 사용자가 허용하면 실제 기기 타이머가 생성되고, 대화창에는 실행 결과가 명확하게 보인다.
집중 타이머 · 20초 시작
채팅 상단에는 작은 상태가 보인다.
집중 · 00:19 남음
20초가 지나면 iOS의 실제 타이머 화면과 소리가 작동한다. 앱 안의 연출이 아니라 실제 네이티브 기능이 실행되는 장면이다.
7. 현재 상태를 활용한 답변
타이머가 끝나기 전에 사용자가 한 번 더 묻는다.
“지금 무슨 타이머 돌아가고 있어?”
답변에는 현재 활성화된 타이머의 이름과 남은 시간이 들어간다. 말투는 엘레나 페르소나가 결정한다.
이 정보는 과거 대화를 추측해서 만드는 것이 아니다. iOS가 가진 현재 타이머 목록을 대화 시점에 전달받는다. 타이머가 끝나면 현재 상태에서도 사라진다.
시나리오 3. 개인화 대화
1. 기억과 게임 상태를 함께 묻기
타이머를 끄고 앱으로 돌아온 사용자가 엘레나에게 묻는다.
“조금 더 집중하려는데 지금 뭐 마시는 게 좋을까? 내 리듬게임 최고 기록도 알려줘.”
답변에는 다음 두 내용이 함께 들어간다.
- 첫 대화에서 기억한
밤에는 카페인이 맞지 않음 - 현재 게임 상태의
최고 기록 18/22
정확한 문장과 말투는 엘레나 페르소나가 만든다. 점수는 장기 기억에 문장으로 저장하지 않고, 대화할 때 현재 게임 상태에서 바로 가져온다.
2. 답변의 출처
발표자는 엘레나의 말풍선을 길게 눌러 이 답변에 사용한 정보를 연다.
| 답변 내용 | 출처 |
|---|---|
사용자 이름 지우 |
프로필 |
| 밤에는 카페인이 맞지 않음 | 이전 대화 기억 |
리듬게임 최고 기록 18/22 |
현재 게임 상태 |
이 화면은 모델의 내부 프롬프트가 아니라, 실제 답변에 사용한 정보의 출처만 보여 준다. 관객은 엘레나가 왜 그런 답을 했는지 바로 이해할 수 있다.
3. 사실과 페르소나
사용자가 이어서 묻는다.
“18점이면 잘한 거야?”
답변은 성공 기준 14/22와 현재 최고 기록 18/22를 근거로 한다. 엘레나는 이 사실을 현재 코드에 정의된 자신의 말투로 짧게 표현한다.
- 성공 기준과 최고 기록은 게임 데이터다.
- 그 사실을 말하는 방식은 엘레나의 페르소나다.
즉, 사실은 게임과 기억에서 가져오고, 표현은 선택한 캐릭터의 페르소나가 만든다.
4. 마지막 장면
홈으로 돌아온다.
- 레코드 플레이어에는 방금 플레이한 레코드가 돌아가고 있다.
- 벽에는 새로 산 시계가 걸려 있다.
- LINK는 10이 남아 있다.
- 우편함에는 리듬게임 보상 기록이 있다.
엘레나가 레코드 플레이어와 벽시계를 번갈아 본 뒤 사용자 쪽을 바라본다. 이 장면으로 데모가 끝난다.
게임을 한다 → LINK를 얻는다 → 가구를 산다 → 실제 기능이 열린다 → 그 경험이 다음 대화에 반영된다.
발표 전에 구현을 맞춰야 하는 부분
| 구현 영역 | 데모 목표 |
|---|---|
| 재화 | 시작 0, 리듬게임 1회 60, 벽시계 50 |
| 기본 방 | 우편함과 별빛 레코드 플레이어 기본 배치 |
| 리듬게임 진입 | 레코드 플레이어를 누르면 기존 리듬게임 실행 |
| 온보딩 | 사용자 이름·생일·A/B/C 캐릭터 선택·캐릭터 이름 저장 |
| 캐릭터 | A 엘레나, B 라미, C 플레이스홀더를 프론트 정본으로 표시 |
| 페르소나 | 선택한 캐릭터의 기존 페르소나와 장면 라우트 사용 |
| 기능 해금 | 벽시계 구매 후 create_timer 사용 가능 |
| 개인화 | 프로필·장기 기억·게임 상태·현재 타이머를 한 대화 경로에 주입 |
| 설명 화면 | 말풍선에서 답변에 사용한 정보의 출처 확인 |
데모의 중심은 리듬게임에서 시작한 한 번의 행동이 재화, 방의 변화, 네이티브 기능, 개인화 대화까지 끊기지 않고 이어지는지를 보여 주는 것이다.