Appearance
[250902] 프론티아 스튜디오 기획 문서 v0.3
Status: Released created: September 1, 2025 10:13 PM 앱/웹/스튜디오: 스튜디오
0. 용어 정리 (픽스!!)
크리에이터: 에피소드를 설계하는 유저
플레이어: 에피소드를 플레이하는 유저
에피소드: 유저가 창작하고 즐기게 되는 스토리 콘텐츠로, 1개 이상의 이벤트로 구성되어 있음
이벤트: 에피소드 내에서 설계된 이야기 단위
- 사용 목적에 따라 프롤로그, 메인 이벤트, 서브 이벤트, 엔딩(스토리 엔딩, 상태 기반 엔딩)으로 나뉨
- 프롤로그: 기존 캐릭터 챗에서 이야기하는 ‘첫메시지’이며, 필수로 존재해야함.
- 메인 이벤트: 에피소드의 주요 스토리를 이끄는 이벤트들
- 메인 이벤트가 트리거되면 미리 작성된 이벤트 씬이 출력되며, 이후 스토리 가이드라인에 적힌대로 AI가 이후 이야기를 생성해감.
- 이에 따라 플레이어는 메인 이벤트를 따라 에피소드를 진행하게 됨.
- 따라서, 메인 이벤트는 다음 이벤트 목록에 반드시 하나 이상의 메인 이벤트를 포함해야 함
- 서브 이벤트: 메인 스토리 외에 주로 단발적으로 발생하는 이벤트.
- 활성화 가능한 시점과 트리거에 의해 실행되며, 메인 스토리와의 충돌을 방지하기 위해 이후 스토리 가이드라인과 미션이 존재하지 않음.
- 플레이어는 서브 이벤트를 거치지 않고서도 메인 이벤트만 따라 플레이를 진행할 수 있음.
- 엔딩: 메인 이벤트와 같은 형식이나 에피소드가 끝났음을 알리기 위해 타입을 구분함.
- 기본적으로 엔딩의 이벤트 씬이 출력 완료되면 엔딩 화면이 보여지며, 플레이어의 선택에 따라 엔딩 이후에도 플레이를 진행할 수 있음.
- 메인 엔딩: 메인 이벤트에 연결되어 있는 엔딩으로 스토리 상 의도된 엔딩
- 서브 엔딩: 메인 이벤트 트리거와 상관없이 상태 조건에 따라 등장하는 엔딩 (주로 사망 엔딩)
- 메인 플로우: 프롤로그, 메인 이벤트, 메인 엔딩을 묶어서 부르는 용어로, 스토리에 영향을 주는 메인 단위의 묶음
- 사용 목적에 따라 프롤로그, 메인 이벤트, 서브 이벤트, 엔딩(스토리 엔딩, 상태 기반 엔딩)으로 나뉨
LLM: 크리에이터가 지정한 이벤트 씬 외에서 플레이를 이끌어가는 언어 모델
- 사용하는 언어 모델의 종류는 gemini, claude 등 다양할 수 있음 (MVP 시점에는 gemini만 될 가능성이 유력함)
- LLM은 역할에 따라 메인 모델과 서브 모델로 나뉨
- 메인 모델: 플레이를 이끌어가는 주요 역할, 캐릭터의 감정 상태 추적
- 서브 모델
- 선택지 모델: 플레이어 선택지 제안
- 상태값 모델: 플레이어와 캐릭터의 상태값 추적
- 메모리 모델: 플레이 내용이 많아지는 경우 이전 내용을 요약해서 저장함
스크립트: 선택지와 선택지 사이의 내용으로 전처리를 한 번 거친 상태 (전처리 거치기 전 상태는 raw 스크립트)
- 메인 모델이 출력한 스크립트와 크리에이터가 직접 입력한 스크립트(=이벤트 씬 내용)로 구분됨
씬: 선택지와 선택지 사이의 모든 프레임의 묶음
- 스크립트가 프레임 단위로 해체된 것을 씬이라고 함
프레임: 실제로 유저에게 보여지는 내용의 출력 단위 (텍스트, 미디어 에셋 등 한 화면에서 보여지는 정보)
텍스트(=라인)는 현재는 줄바꿈(\n) 기준으로 잘려서 출력됨
프레임의 예시
[이미지 누락: play.png]
에셋: 에피소드 플레이에 필요한 이미지(배경 이미지, 캐릭터 이미지, 상황별 이미지), 비디오, 오디오(배경 오디오, 상황별 오디오) 형식의 미디어 에셋.
- 스튜디오에서 크리에이터는 에피소드 단위로 사용가능한 에셋을 업로드하게 됩니다.
- 캐릭터 에셋과 미디어 에셋으로 구분
- 캐릭터 에셋: 캐릭터 이미지
- 미디어 에셋: 배경 에셋, 상태별 에셋, 비디오
- 에셋을 LLM이 임의로 출력 가능하게 할지 여부를 설정할 수 있습니다. (참고)
- 에셋을 특정 이벤트에서만 출력 가능하도록 설정할 수 있습니다.
캐릭터: 크리에이터가 미리 설계해둔 캐릭터를 의미. 스토리 진행에 필요한 캐릭터.
- 에피소드 설정에서만 생성 가능하며, 생성한 이후 관리/삭제는 캐릭터 관리에서 할 수 있습니다.
플레이: 플레이어는 에피소드를 ‘플레이’ 합니다.
플레이 프로필: 특정 에피소드에서 적용되는 플레이의 프로필 (크랙에서의 대화 프로필)
플레이어는 본인의 플레이 프로필을 여러 개 만들 수 있고, 반드시 하나는 기본값으로 설정해야 합니다.
크랙 대화 프로필 예시
[이미지 누락: 예시 넣어뒀어요! @Anonymous ]
예시 넣어뒀어요! @Anonymous
에피소드마다 다른 플레이 프로필을 적용할 수 있으며, 중간에 변경도 가능합니다.
플레이 프로필은 크리에이터가 만든 플레이어 캐릭터 설정과 합쳐져 에피소드 플레이에 적용됩니다.
상태값: 캐릭터 상태, 플레이어 상태에 존재
상태: 관계, 물리적 상태, 감정, 아이템 등 상태의 종류
상태값: 실제 값 (예: ‘아픔’, ‘슬픔’, ‘연인’, ‘슬라임 방울’)
예시:
상태 상태값 호감도 79 관계 애정 현재 상태 아픔
1. 프론티아 스튜디오
[이미지 누락: image.png]
1. 에피소드 생성
- [에피소드 관리] 탭 설명: 크리에이터는 스튜디오의 첫 화면([에피소드 관리])에서 내가 만든 에피소드 리스트를 확인할 수 있습니다.
- 에피소드 리스트에서 에피소드 썸네일과 이름, 발행 상태(공개, 링크 공개, 비공개, 미발행), 마지막 편집일을 확인할 수 있습니다.
- 에피소드 생성: 크리에이터는 [에피소드 생성] 버튼을 눌러 새로운 에피소드를 생성할 수 있으며, 에피소드 생성 시점에 에피소드 이름을 작성합니다.
- 에피소드 편집: 크리에이터는 생성된 에피소드를 클릭하여 에피소드 편집 화면으로 이동할 수 있습니다.
2. 에피소드 편집
- 크리에이터는 생성된 에피소드를 클릭하여 에피소드 편집 페이지로 진입할 수 있습니다.
편집 항목:
기본 설정
- 에피소드 설정: 기본 프롬프트 작성 + 플레이 진행 설정(모델, 문체 등)
- 캐릭터
- 미디어 에셋
- 이벤트 설계
- 에피소드 발행
고급 설정 (접어두기)
- 키워드북
- 상태값 (Beta)
- 크리에이터는 기존에 존재하는 에피소드 중 원하는 에피소드의 최신 draft의 내용을 복사해올 수 있습니다.
- 캐릭터의 경우 원본이 있고 복사본이 별도로 생기는게 아니라 같은 캐릭터 id를 공유하는 캐릭터가 생기게 됩니다.
- 크리에이터는 왼쪽 상단에서 현재 에피소드 이름을 볼 수 있으며 에피소드 이름을 클릭하여 다른 에피소드로 이동할 수도 있습니다.
- 크리에이터는 왼쪽 상단에서 현재 에피소드의 발행 상태를 확인할 수 있습니다.
- 발행 상태: 공개 / 링크 공개 / 비공개 / 미발행
- 발행 버전: 버전
- 최신 발행일: 날짜
2-1. 에피소드 설정
- 크리에이터는 [에피소드 설정] 메뉴에서 기본 프롬프트와 플레이 진행 방식을 설정할 수 있습니다.
- 기본 프롬프트: 세계관 및 플레이 규칙 정보를 입력할 수 있습니다.
- 💡설명: 에피소드의 세계관과 플레이 규칙에 대해 입력합니다. 에피소드를 이해하고 진행하는데 필요한 주요 배경, 인물 정보 및 플레이 규칙을 작성해주면 더욱 일관성 있고 몰입도 높은 스토리가 완성돼요.
- 텍스트로만 작성 가능합니다.
- 플레이 진행 방식: 서술 모델, 플레이어 자유도, 그 외 고급 옵션을 설정할 수 있습니다.
서술 모델: Gemini-2.5-pro (일단 모델 1개로 생각 중)
플레이어 자유도: 작음, 보통, 큼
→ 사용자가 자유롭게 의도대로 진행할지(큼) vs 에피소드의 규칙 안에서만 진행하게 할지(작음)
고급 설정
- 플레이어 대사 출력 금지 ON/OFF (캐릭터챗에 유저 사칭 금지 넣는 것과 같은 옵션)(고급 설정)
선택지 작성 방식: 텍스트로 입력원하는 경우에 크리에이터가 선택지 프롬프트를 직접 작성할 수 있습니다.
피그마 화면 참고 (아래 화면에서 서술 방식, 선택 빈도 삭제)
[이미지 누락: image.png]
- 기본 프롬프트: 세계관 및 플레이 규칙 정보를 입력할 수 있습니다.
2-2. 캐릭터
- 💡
설명이 에피소드에 등장하는 캐릭터들의 정보를 입력합니다. 인물별 이미지, 말투, 역할을 설정해 각자 다른 개성을 표현할 수 있도록 도와주세요.
- 크리에이터는 [캐릭터] 메뉴에서 플레이어 캐릭터 정보를 입력할 수 있습니다.
- 플레이어 캐릭터 설정
- 플레이어 캐릭터는 한 에피소드에 1개만 존재하며, 삭제 및 추가 생성은 불가능합니다.
- 플레이어 캐릭터는 이미지 설정 불가능합니다.
- 플레이어 캐릭터 설명: 성별, 나이, 외형, 성격, 상태, 관계 등을 텍스트로 자유롭게 작성할 수 있습니다.
- 설명 필요한 것:
- 플레이어 캐릭터 설명은 플레이어가 직접 설정한 플레이어 프로필과 합쳐져서 들어갑니다.
- 작성 가이드 필요: 구체적인 프로필 정보 보다는 에피소드 안에서의 주인공 맥락정보에 대해 설명해주세요.
- (참고) 앱에서 플레이어에게도 대화 프로필 작성시 안내 필요: 이름, 나이, 성별, 특징 등 개체 자체의 특성에 대해서 서술해주세요.
- 플레이어 캐릭터 이름은 플레이어가 직접 설정한 플레이어 이름으로 설정됩니다.
- 플레이어 캐릭터 설명은 플레이어가 직접 설정한 플레이어 프로필과 합쳐져서 들어갑니다.
- 플레이어 캐릭터 설정
- 크리에이터는 [캐릭터] 메뉴에서 캐릭터 정보를 로드/생성/수정할 수 있습니다.
- 에피소드 내 캐릭터는 최대 10개까지 넣을 수 있습니다.
- 캐릭터 생성
- 새로운 캐릭터를 생성할 수 있습니다
- 캐릭터가 발행되면가 생성된 후 draft에 저장되면 캐릭터 id가 발급되며, id와 이름이 고정되고 [캐릭터 관리]에도 캐릭터가 표시됩니다.
- [캐릭터 관리]에 있는 캐릭터가 원본이 되고 에피소드에서는 이 캐릭터 id를 공유하는 형태가 됩니다.
- 에피소드 내 캐릭터 삭제
- 해당 캐릭터가 삭제되어도 에피소드에서만 제외되고 [캐릭터 관리]에는 여전히 남아있습니다.
- 캐릭터를 완전히 삭제하려면 [캐릭터 관리]에서 삭제해야 합니다. (안내 필요)
- 캐릭터 로드
- 한 번이라도 발행저장되어 캐릭터 id가 [캐릭터 관리]에 리스트업된 캐릭터를 로드할 수 있습니다.
- 이때 캐릭터 설정값은 가장 최근에 저장된 draft의 캐릭터 설정값이 불러와집니다.
- 로드된 캐릭터는 [캐릭터 관리]에 있는 고정된 캐릭터 id와 이름을 공유합니다. (캐릭터 설명은 달라질 수 있습니다.)
- 캐릭터 설정 수정
- 기본 항목: 캐릭터 id(최초 발행 시점에 생성자동 생성, 수정 불가), 이름(최초 발행 후 고정, 크리에이터가 id처럼 활용할 것으로 예상. 만약 발행 전에 이름이 변경되면 모든 이름이 같이 수정됨)
- 설정 항목**😗* 캐릭터 키워드, 캐릭터 설명
- 캐릭터 키워드: 캐릭터 키워드가 등장하면 캐릭터 정보를 활용합니다. 키워드북과 동일하게 작동합니다.
- 캐릭터 설명: 성별, 나이, 외형, 성격, 상태, 관계 등을 텍스트로 자유롭게 작성할 수 있습니다.
- 캐릭터 별 기본 이미지: 캐릭터 별로 기본 이미지를 볼 수 있습니다.
- 설정은 불가능하고 보기 전용이며, 캐릭터 설정 시 이미지를 참고할 수 있게 하기 위함입니다.
- 이미지가 없는 경우 [미디어 에셋]의 [캐릭터 이미지]로 이동할 수 있는 버튼을 두어 어디서 추가할 수 있는지 알 수 있게 합니다.
2-3. 미디어 에셋
💡
설명에피소드에 삽입할 이미지, 배경음악, 효과음, 영상 등을 관리합니다. 장면의 분위기를 더 풍부하게 만들 수 있어요.지원 파일 형식:
- 이미지: 'jpg', 'jpeg', 'png', 'webp', 'gif' (최대 10MB)
- 동영상: 'mp4', 'mov', 'avi' (최대 500MB)
- 오디오: 'mp3', 'wav' (최대 20MB)
참고: 미디어 출력 정책
- 캐릭터 이미지
- 캐릭터 등장 시 해당 캐릭터의 이미지를 출력한다.
- ex) 라이언:: 다들 점심먹고와요 → “라이언” 이미지 출력
- 캐릭터 상태출력
- 캐릭터 상태 출력이 나오는 경우 해당 캐릭터 상태이미지를 출력한다.
- 대사는 원본 캐릭터가 한 것으로 한다.
- ex) 라이언_분노:: 다들 점심먹고와요!!!! → “라이언_분노” 이미지 출력, UI에는 “라이언"으로 표기
- 캐릭터 이미지는 등장하는 프레임을 포함해서 4 프레임 동안 나온다.
- 캐릭터 이미지가 남아있을 때, 다음 캐릭터 이미지가 나오는 경우, 오른쪽에 출력한다. 개별 캐릭터 이미지는 각자 4 프레임 동안 나왔다가 사라진다.
- 캐릭터 이미지가 2개 남아있을 때, 다음 캐릭터 이미지가 나오는 경우, 가장 오래된 캐릭터 이미지를 내리고 그 곳에 다음 캐릭터 이미지를 출력한다. (왼쪽)
- 상황별 이미지는 캐릭터 이미지에 우선한다. 상황별 이미지의 프레임 카운트 최초 4턴까지는 캐릭터 이미지가 등장하지 않는다.
- 캐릭터 등장 시 해당 캐릭터의 이미지를 출력한다.
- 상황별 이미지, 오디오
- 상황별 이미지 출력 시 이전의 캐릭터 이미지, 상황별 이미지 등을 모두 날리고 출력한다.
- 이미지,오디오 동시 존재 경우
- 한 키워드에 상황별 이미지와 오디오가 동시에 존재하는 경우 동시에 출력한다.
- ex) {media::천둥} (이미지,오디오 존재) → 천둥.png , 천둥.mp3 둘 다 출력
- 이미지는 이미지끼리, 충돌하는 경우 바뀜. 다른 형식인 경우 겹칠 수 있음.
- 오디오는 충돌하는 경우 바뀌지 않고, 계속 쌓임
- ex) {media::천둥} (이미지,오디오 존재) {media::비} (오디오 존재) → 출력중이라면 비 오디오도 동시 출력 {media::바위} (이미지 존재) → 바위 이미지로 변경(비 계속 출력) {media::드래곤등장} (이미지,오디오 존재) → 드래곤 이미지로 변경, 오디오 동시 출력
- 한 키워드에 상황별 이미지와 오디오가 동시에 존재하는 경우 동시에 출력한다.
- 상황 이미지는 등장 후 10 프레임 동안 나타난다.
- 상황 이미지 나올 때 배경 이미지는 dim처리 됩니다.
- 배경 이미지, 오디오
- 한 키워드에 배경음악과 배경이미지가 동시에 존재하는 경우 동시에 출력한다.
- 이미지는 이미지끼리, 오디오는 오디오끼리 충돌하는 경우 바뀜. 다른 형식인 경우 겹칠 수 있음.
- 배경 이미지가 처음 등장하는 경우 배경 이미지만 단독으로 보여주는 프레임이 존재한다.
- 이 경우 이전에 떠있던 모든 이미지 에셋(캐릭터, 상황, 배경)이 사라진다.
- 배경 오디오는 loop됩니다.
- 비디오
- 비디오 프레임에서는 비디오만 출력된다. (배경도 보이지 않는다.)
- 이후 프레임에서는 배경이미지, 배경오디오가 유지된다.
- 캐릭터 이미지
- 크리에이터는 [미디어 에셋]-[캐릭터 이미지]에서 각 캐릭터의 이미지를 업로드/변경/삭제할 수 있습니다.
- 캐릭터 기본 이미지
- 기본 캐릭터 이미지는 필수로 1개만 업로드 가능 합니다.
- 지원 파일 형식: png, webp, jpg, jpeg, gif
- 배경 없는 캐릭터 이미지 권장
- 배경 제거 기능이 추가될 수 있음
- 캐릭터 상태 이미지
- 각 캐릭터마다 상태별 이미지를 추가할 수 있으며, 상태는 최대 5개까지 추가 가능합니다.
- 캐릭터가 특정 상태일 때 내보내는 이미지를 N개(최대 5개) 업로드 가능합니다.
- 상태는 10자 이내 텍스트로 짧게 작성 **→ 작성한 상태값 중에 LLM이 하나를 고르면 해당 이미지가 나가는 방식
- 지원 파일 형식: png, webp, jpg, jpeg, gif
- 배경 없는 캐릭터 이미지 권장
- 캐릭터 이미지 출력 정책: 캐릭터 이미지는 등장 후 {2} 프레임 뒤에 사라집니다.
- 캐릭터 기본 이미지
- 크리에이터는 [미디어 에셋]-[배경 에셋]에서 배경 이미지와 배경 오디오를 업로드/변경/삭제할 수 있습니다.
설명장면의 무드를 결정하는 배경 이미지와 배경 음악을 설정합니다.- 업로드 시 작성 필요한 내용
- 이미지 파일: 특정 상황에 나타나는 배경 이미지 N개 (최대 5개)
- 오디오 파일: 특정 상황에 나타나는 배경 오디오 N개 (최대 5개)
- 이름: 텍스트
- 상황: 어떤 상황에서 이미지/오디오가 나타나는지 텍스트로 서술
- 이미지와 오디오 중 파일 1개 이상 필수
- 💡
설명이미지와 오디오 파일이 2개 이상일 때는 해당 에셋 이름이 등장하면 랜덤으로 1개씩 제공됩니다.
- 크리에이터는 [미디어 에셋]-[상황별 에셋]에서 상황 이미지와 상황 오디오를 업로드/변경/삭제할 수 있습니다.
설명특정 장면에서 강조하고 싶은 요소(효과음, 컷인 이미지 등)를 삽입합니다.- 업로드 시 작성 필요한 내용
- 이미지 파일: 특정 상황에 나타나는 상황 이미지 N개 (최대 5개)
- 오디오 파일: 특정 상황에 나타나는 상황 오디오 N개 (최대 5개)
- 이름: 텍스트
- 상황: 어떤 상황에서 이미지/오디오가 나타나는지 텍스트로 서술
- 이미지와 오디오 파일이 2개 이상일 때는 해당 에셋 이름이 등장하면 랜덤으로 1개씩 제공됩니다.
- 이미지와 오디오 중 파일 1개 이상 필수
- 상황 이미지는 캐릭터 이미지와 중복으로 나올 수 없습니다.
- 크리에이터는 [미디어 에셋]-[비디오]에서 비디오를 업로드/변경/삭제할 수 있습니다.
- 💡
설명영상 컷신이나 특별한 장면을 비디오로 표현하고 싶을 때 사용하세요. - 업로드 시 작성 필요한 내용
- 비디오 파일: 특정 상황에 나타나는 비디오 N개
- 이름: 텍스트
- 상황: 어떤 상황에서 비디오가 나타나는지 텍스트로 서술
- 설명: 어떤 내용인지 설명 (LLM에게 전달하기 위함)
- 비디오 파일이 2개 이상일 때는 해당 에셋 이름이 등장하면 랜덤으로 1개씩 제공됩니다.
- 💡
- 크리에이터는 [미디어 에셋]에 올라온 모든 에셋에 대해 LLM 출력 가능 여부를 설정해야 합니다.
- LLM 출력 가능: LLM에게 리스트가 전달되어서, LLM이 이야기를 생성해가며 자유롭게 에셋을 활용하게 됩니다.
- LLM 출력 불가: LLM에 리스트가 전달되지 않으며, 이에 따라 LLM이 에셋을 활용할 가능성이 거의 없습니다. 크리에이터가 특정 씬에서 한 번만 출력하고자 할때 사용합니다.
- 기본값: LLM 출력 가능
- 크리에이터는 [미디어 에셋]에 올라온 모든 에셋에 대해 이벤트 별로 출력 여부를 설정할 수 있습니다.
- 크리에이터는 [미디어 에셋] 메뉴에서 이미지 배치를 미리 확인해볼 수 있습니다.
- 입력 항목
- 화면 비율: 대표적인 것 몇개만 지원. 아래는 예시
- 360 × 800 pxcss → 실제 1080 × 2400 (약 19.5:9), 전체 11.3% 점유율
- 390 × 844 pxcss → 실제 1170 × 2532 (iPhone)
- 412 × 915 pxcss → 실제 1230 × 2730 (Android 일부, 19.5:9 전후)
- 이미지
- 배경 이미지: [미디어 에셋]에 존재하는 배경 이미지 중 택1
- 캐릭터 이미지1: [캐릭터]에 존재하는 캐릭터 이미지 중 택1
- 캐릭터 이미지2: [캐릭터]에 존재하는 캐릭터 중 캐릭터 이미지1을 제외한 이미지 중 택1
- 상황별 이미지: [미디어 에셋]에 존재하는 상황 이미지 중 택1
- 텍스트
- 캐릭터 이름: 텍스트로 자유 입력
- 캐릭터 대사: 텍스트로 자유 입력
- 화면 비율: 대표적인 것 몇개만 지원. 아래는 예시
- 입력 항목
2-4. 이벤트 설계
- 크리에이터는 [이벤트 설계] 메뉴에서 이벤트를 생성/수정/삭제할 수 있습니다.
💡
설명에피소드 안에서 발생하는 주요 사건을 작성합니다. 특정 조건을 만족했을 때 일어나는 ‘트리거형 이벤트’를 구성해 분기 구조를 만들 수 있어요.해당 메뉴는 이벤트 구조를 확인할 수 있는 캔버스 뷰로 구성되어 있습니다.
캔버스뷰 예시 - 디트로이트: 비컴 휴먼
[이미지 누락: image.png]
보여지는 이벤트 내용: 1) 현재 이벤트 이름, 2) 이벤트 타입
예시:
[이미지 누락: image.png]
해당 캔버스 뷰에서는 값을 수정할 수 없고(view모드), 눌러서 이벤트 설정을 변경하면 변경 내용이 캔버스 뷰에도 적용됩니다.
- 이벤트 기본값: 에피소드가 처음 생성되면 [이벤트 설계] 메뉴에 자동으로 프롤로그만 생성되어 있습니다.
- 프롤로그는 생성 혹은 삭제 불가능합니다.
- 이벤트 생성: 크리에이터는 [이벤트] 생성 시 메인 이벤트, 서브 이벤트, 메인 엔딩, 서브 엔딩 중에 1종류를 골라 생성할 수 있습니다.
- 생성 후에 이벤트 형식은 변경이 불가합니다.
- 이벤트 수정: 크리에이터는 이벤트 노드를 눌러 해당 이벤트 설정 내용을 수정할 수 있습니다.
이벤트 설정 항목과 입력 형식
항목 설명 입력 형식 이벤트 정보 이벤트 타입 이벤트의 타입. 생성 시 선택하며 이후 수정 불가 입력 불가. 보기 전용. 이벤트 생성 시 선택 가능 이름 이벤트의 이름 텍스트 발행 시점에 고정되며 이후 수정 불가 트리거 가능 시점 (서브 이벤트, 서브 엔딩에만 존재) 이벤트 트리거 가능한 시점 미디어 에셋 사용의 이벤트별 출력 여부 설정 UI와 동일하게 트리거 가능 시점을 선택할 수 있습니다. 기본적으로 모두 on이나, 한 메인 이벤트에서 연결 트리거 이벤트 후보가 최대 10개로 제한되기 때문에 이미 10개가 찬 이벤트의 경우 on이 불가능합니다. (안내 필요) 트리거 이벤트가 트리거되는 조건 텍스트 이벤트 씬 이벤트 씬 내용 해당 이벤트가 트리거되는 시점에 고정적으로 출력할 대화 혹은 에셋 텍스트 + 에셋 선택 - 에셋은 정해진 포맷(예: {media::배경이미지})으로 작성 | | 플레이어 선택지 | 시작 씬 이후에 나오는 선택지를 최대 3개까지 작성해둘수 있음. 선택지가 0개일 때만 LLM이 생성 | 텍스트 | | 스토리 전개 가이드 | | | | 미션 | 플레이어에게 주어지는 미션 | 텍스트 | | AI 스토리 가이드 | 시작 씬 이후 다음 이벤트 전까지 플레이어가 어떤 내용을 플레이하게 되는지 작성 (LLM에게 주어지는 가이드) | 텍스트 | | 다음 이벤트 | 다음에 이어서 활성화될 수 있는 이벤트의 이름 | 입력 불가. 보기 전용. 캔버스에서 노드 연결을 통해 수정 가능 |
이벤트 타입에 따라 달라지는 입력값
프롤로그 메인 이벤트 서브 이벤트 메인 엔딩 서브 엔딩 이벤트 정보 이벤트 타입 필수 고정 필수 고정 필수 고정 필수 고정 필수 고정 이름 필수 (발행 후 고정) 필수 (발행 후 고정) 필수 (발행 후 고정) 필수 (발행 후 고정) 필수 (발행 후 고정) 트리거 가능 시점 X X 필수 X 필수 트리거 X 필수 필수 필수 필수 이벤트 씬 이벤트 씬 내용 필수 선택 선택 필수 필수 플레이어 선택지 선택 선택 선택 X X 스토리 전개 가이드 미션 선택 선택 X 선택 선택 AI 스토리 가이드 선택 선택 X 선택 선택 다음 이벤트 선택 고정 선택 고정 선택 고정 X X 작성 예시:
- 플레이어는 항상 메인 이벤트 1개를 진행 중인 상태로 플레이하게 됩니다.
- 활성화 조건: 메인 이벤트에는 활성화 조건이 없고 트리거만 있습니다. 서브 이벤트는 메인 이벤트에 귀속되어 있기 때문에, 특정 메인 이벤트를 진행 중인 경우(=활성화 가능 시점에서 설정)에 활성화 됩니다.
- AI 작성 가이드: 메인 이벤트에는 스토리 가이드라인이 존재하고, 서브 이벤트에는 존재하지 않습니다. LLM이 스토리를 끌고 나가는데 있어 겹치면 헷갈리기 때문임.
- 다음 이벤트: 메인은 메인 이벤트와 메인 엔딩만, 서브는 서브 이벤트만 다음 이벤트로 지정할 수 있음
- 서브 이벤트와 메인 이벤트가 같이 트리거 되는 경우에는 메인 이벤트가 우선이 됩니다.
- 이벤트 삭제: 프롤로그를 제외한 모든 이벤트는 이벤트 설정창 내에서 삭제가 가능합니다.
2-5. 에피소드 발행
- 크리에이터는 [에피소드 발행]에서 에피소드의 기본 정보, 발행, 공개 여부 설정 등을 할 수 있습니다.
- 크리에이터는 홈과 에피소드 상세 페이지에서 보여질 기본 정보를 입력할 수 있습니다.
- 💡
설명추가해둘게요 : 에피소드 리스트에서 플레이어들에게 노출됩니다.
- 에피소드 이름(필수): 텍스트
- 썸네일: 정적 이미지 (png, webp, jpg, jpeg)
- 설명 이미지: 에피소드를 설명할 수 있는 이미지를 최대 510개까지 등록할 수 있습니다. 정적 이미지 (png, webp, jpg, jpeg)
- 에피소드 설명(필수): 에피소드에 대한 설명
- 장르 (필수): 에피소드 장르 택 1
- 장르 카테고리: 연애/로맨스, SF/판타지, 로판(로맨스판타지), BL, GL, 일상/현대, 무협, 역사/시대, 액션, 학원, 스포츠, 코믹(코미디), 공포/스릴러, 추리/미스터리, 전쟁/밀리터리, 기타
- 세이프티 작품 여부(연령 제한)
- 검색 태그
- 직접 작성하여 태그를 등록할 수 있습니다. 최대 10개까지 등록 가능합니다.
- 기본으로 장르 태그를 추천해줍니다: 로맨스, 로판, SF, 판타지, 일상, 현대, 무협, 시대, BL, GL, 공포, 미스테리, 추리, 시뮬레이션, 롤플레잉, …
- 💡
- 에피소드 공개 여부
- 발행된 에피소드의 공개 여부를 설정할 수 있습니다.
- 공개: 모든 유저에게 보여집니다.
- 링크 공개: 모든 유저에게 보이는게 아니라 링크를 통해 진입한 유저만 플레이할 수 있습니다.
- 앱 내에서 에피소드 공유를 통해 링크를 복사하여 공유할 수 있습니다.
- 비공개: 앱 내에서 다른 유저에게 보여지지 않습니다. 내 프로필에서만 나만 볼 수 있습니다.
- 기존에 플레이하고 있던 유저는 이어서 플레이가 불가능해지며, 기존 내용을 확인할 수 있습니다.
- 플레이어들이 더이상 새로운 플레이를 할 수 없다는 안내가 필요합니다. 플레이어에게도 플레이 시도했을 때 안내 필요합니다.
공개/링크공개/비공개 비교
공개 링크 공개 비공개 상세 페이지 진입 홈/탐색/검색을 통해 에피소드 상세 페이지로 진입 가능 링크를 통해서만 에피소드 상세 페이지로 진입 가능 상세 페이지로 진입 불가 (나는 가능) 에피소드 플레이 시작 가능 가능 불가능 (나는 가능) 기존 플레이 이어서 진행 가능 가능 불가능 (나는 가능) [에피소드 public/linkonly/private 변경 정책] (참고 슬랙 링크) - 9/18 추가
- public → linkonly : 기존 플레이어들 계속 사용 가능
- public → private : 기존 플레이어들 사용 불가
- public → private → pubic : 기존 플레이어들 다시 사용 가능
- 에피소드 발행
참고: 저장, 발행 개념의 구분
[이미지 누락: image.png]
아직 발행 전인 에피소드라면 [발행] 버튼을 눌러 최초 발행이 가능합니다.
[발행] 버튼을 눌러 가장 최신 버전의 에피소드를 앱에 업데이트할 수 있습니다.
에피소드 내 필수값이 모두 채워져 있어야 발행이 가능합니다.
발행을 위해 필요한 필수값:
기본 설정
- 에피소드 설정*: 1) 기본 프롬프트 작성* 2) 플레이 진행 설정(모델, 문체 등)*
- 캐릭터: 선택 항목
- 미디어 에셋*: 배경 이미지 1개 이상 등록 필수(캐릭터가 있으면 기본 이미지 등록 필수)
- 이벤트 설계*: 프롤로그 등록 필수
- 에피소드 발행*: 1) 에피소드 기본 정보* 2) 공개 여부*
고급 설정 (선택항목)
- 키워드북
- 상태값 (Beta)
validation: 발행 버튼을 누르는 시점에 validation하고, 발행 조건에 맞지 않는 것을 알려줌.
- 발행 버튼은 에피소드 설정, 미디어 에셋, 이벤트 설계 탭에서 저장이 1번 이상 눌렸을 때
- 알려주는 방법: 텍스트로 줄줄이해서 냅다 모달로 띄우기.
- 에피소드 삭제: 에피소드를 삭제할 수 있습니다.
- 에피소드를 삭제하면 에피소드 내용이 다 사라지고 되돌릴 수 없으므로 에피소드 이름이나 문구를 작성하고 삭제하는 등 보호조치 (예: ‘세상의 모든 것들은 의미가 있다.’, ‘사라진다는 건 마음이 아픈 일이지.’, ‘캐릭터이름: 그동안 고마웠어.’)
- 발행 중인 에피소드를 삭제하는 경우 앱에서 해당 에피소드가 사라지며, 기존에 플레이하던 유저들도 플레이가 불가능하게 됩니다.
- 플레이어들이 더이상 새로운 플레이를 할 수 없다는 안내가 필요합니다. 플레이어에게도 플레이 시도했을 때 안내 필요합니다.
2-6. 고급 설정
2-6-1. 키워드북
- 크리에이터는 [키워드북] 메뉴에서 키워드 이름, 활성화 단어, 설명을 넣을 수 있습니다.
- 설명: 특정 키워드가 등장했을 때 참고할 수 있는 정보를 입력합니다. 스토리 진행에 중요한 키워드와 설명을 작성해두면 더욱 자세하고 일관된 플레이가 가능해요.
- 활성화 단어가 감지될 시 설명도 함께 LLM 인풋에 들어가게 됩니다.
- 키워드를 드래그하여 우선순위를 조정할 수 있습니다.
- 프롬프트 성능 때문에 키워드는 최대 3개까지만 참고할 수 있도록 제한되어 있기 때문에 우선순위 조정이 필요합니다.
2-6-2. 상태값 (Beta)
- 크리에이터는 [상태값]-[플레이어 상태값]에서 플레이어 상태값을 설정할 수 있습니다.
- 💡
설명에피소드 내에서 추적할 플레이어의 상태값을 설정합니다. 현재 위치, 시간, 소지 아이템 등 스토리 흐름에 따라 변화할 정보를 정의해두세요. - 최대 5개까지 생성 가능합니다.
- 설정 항목: 이름, 초기값, 설명, 대표값 설정, 화면 표시 여부
- 이름(텍스트): 상태 이름
- 초기값(텍스트): 플레이어가 해당 상태에 대해 갖는 초기값 (작성 안하는 경우 LLM이 알아서 판단)
- 설명(텍스트): 상태값을 추적하고 업데이트하기 위해 필요한 정보
- 대표값 설정: 엔딩 화면에서 플레이어의 상태를 대표로 보여주는 값 1개 설정 가능 (상태값 표시가 on되어있는 항목이 존재하는 경우 1개 필수)
- 💡
설명추가해둘게요: 이 에피소드 플레이 중 가장 주요하게 변화할 수 있는 상태값을 골라주세요. 가장 상단에 보여지며, 엔딩 화면에도 표시됩니다.
- 상태값 표시 설정이 on으로 되어있는 것 중에서만 선택 가능하며, 딱 1개만 선택 가능.
- 💡
- 화면 표시 여부: 여러 상태값 중 플레이 화면에서 표시하고 싶은 값 선택 (최소0개~최대5개)
- 작성 예시: 마왕국 에피1 플레이어 상태값
- 💡
- 크리에이터는 [상태값]-[캐릭터 상태값]에서 캐릭터 상태값을 설정할 수 있습니다.
- 💡
설명에피소드 내에서 추적할 등장 캐릭터들의 상태값을 설정합니다. 각 캐릭터가 플레이어에 대해 갖는 감정, 상태 등 플레이에 재미를 더할 상태 정보를 정의해두세요. - 최대 3개까지 생성 가능합니다.
- 설정 항목: 이름, 설명, 캐릭터별 초기값, 대표값 설정, 화면 표시 여부
- 이름(텍스트): 상태 이름
- 초기값(텍스트): 캐릭터가 해당 상태에 대해 갖는 초기값 (작성 안하는 경우 LLM이 알아서 판단)
- 설명(텍스트): 상태값을 추적하고 업데이트하기 위해 필요한 정보
- 대표값 설정: 엔딩 화면에서 캐릭터의 상태를 대표로 보여주는 값 1개 설정 가능 (상태값 항목이 존재하는 경우 1개 필수)
- 화면 표시 여부: 여러 상태값 중 플레이 화면에서 표시하고 싶은 값 선택 (최소0개~최대5개)
- 작성 예시: 마왕국 에피1 캐릭터 상태값
- 💡
3. 에피소드의 저장
크리에이터는 에피소드 각 탭마다 [저장] 버튼을 눌러 내용을 저장할 수 있습니다.필수 입력 항목을 채우지 않아도 저장이 가능합니다.브라우저 레벨에서 자동 임시 저장 기능 지원합니다. 실수로 다른 화면으로 넘어갔거나 끄는 경우 복구해주기 위한 보호 조치.
저장을 하지 않은 상태로 다른 탭으로 이동하려고 하는 경우 저장할 것인지 묻는 안내 모달이 나타납니다.- (9/26 업데이트) 에피소드 편집 내 모든 내용은 필드값들이 바뀔 때마다 실시간으로 저장됩니다.
- 저장 상황(저장 중, 저장 완료)을 유저가 인디케이터 등을 통해 알 수 있습니다.
- 저장이 되기 전에 나가는 경우, 저장되지 않은 내역이 있다는 안내 모달이 뜨고, 저장안한 채로 나갈 것인지 페이지에 머무를 것인지 선택할 수 있습니다.
- 브라우저 임시 저장 기능 제공 안함
4. 캐릭터 관리
설명모든 캐릭터들을 한 곳에서 모아 볼 수 있어요.
- 크리에이터는 [캐릭터 관리]에서 모든 캐릭터의 리스트를 볼 수 있습니다.
- [캐릭터 관리]에 한 번 리스트업된 캐릭터는 이후 귀속된 에피소드가 삭제되어도, 캐릭터가 직접 삭제되기 전까지 리스트에 남습니다.
- [캐릭터 관리]에서 발행된 캐릭터와 발행되지 않은 캐릭터를 나눠서 보여줍니다. (후자 삭제 용이를 위한 것으로 정렬 혹은 필터 문제.)
- 크리에이터는 [캐릭터 관리]에서 캐릭터가 어느 에피소드에 소속되어있는지 확인할 수 있
고, 채팅 설정을 할 수 있습니다.- 확인/수정 가능한 캐릭터 정보
- 캐릭터 id: 캐릭터 첫 생성시 자동으로 발급되는 id (수정 불가)
- 캐릭터 이름(id): 발행된 캐릭터면 발행 캐릭터 이름, 발행 전이면 가장 최신 draft 기준의 캐릭터 이름 (수정 불가)
- 소속 에피소드: 해당 캐릭터가 어떤 에피소드에 소속되어있는지 확인할 수 있고(발행 유무와 무관), 링크를 누르면 해당 에피소드의 [캐릭터] 탭으로 이동합니다. 에피소드가 삭제되는 경우에는 소속 에피소드 링크도 사라집니다.
- 확인/수정 가능한 캐릭터 정보
- 크리에이터는 [캐릭터 관리]에서 캐릭터를 삭제할 수 있습니다.
- [캐릭터 관리]에서 캐릭터를 삭제하면, 연결되어 있는 모든 에피소드에서 제외됩니다.
- 빡센 안내 필요!
- [캐릭터 관리]에서 캐릭터를 삭제하면, 연결되어 있는 모든 에피소드에서 제외됩니다.