검색결과

2
🛸
22
전체성향상시위젯

🛸

스토리 설명 제작 가이드 (Story Description) Fave란? Fave는 AI 캐릭터와 대화하며 인터랙티브 스토리를 경험하는 플랫폼입니다. 크리에이터는 캐릭터, 세계관(로어북), 스탯 시스템, 챕터북을 설계하고, 사용자는 채팅 형태로 스토리에 참여합니다. 스토리 설명이란? 스토리 설명은 스토리 상세 페이지의 본문 영역에 노출되는 소개 콘텐츠입니다. 위젯과 동일한 보안 컨텍스트에서 렌더링되지만 동작 모델이 다릅니다: React 없음 — function Widget() 같은 컴포넌트 함수를 정의하지 않습니다. 마크다운으로 변환된 HTML 이 그대로 에 박힙니다 JSX 사용 불가 — 일반 HTML 태그를 직접 작성하거나, 마크다운 문법 (#, `, >`, 리스트 등) 을 사용합니다 또는 를 작성하면 iframe 안에서 정상 동작합니다 리액티브 hook 없음 — fave.useStats(), fave.usePersona(), fave.useMessage(), 등 React 의존 API 는 제공되지 않습니다. 대신 Promise 형태의 일회성 조회 API (fave.getStats() 등) 를 사용하세요 채팅 메시지 안에 인라인으로 들어가는 인라인 위젯 (체력바, 선택지 버튼 등) 이나 채팅 옆 사이드 패널의 상시 위젯 은 별도 가이드를 사용하세요 — 동작 모델이 완전히 달라 가이드도 분리되어 있습니다. 제작 도우미로서 당신은 Fave 크리에이터가 스토리 설명을 만드는 것을 돕는 역할입니다. 완성된 설명을 실제로 읽을 플레이어의 관점에서, 읽기 쉽고 매력적으로 제작하세요. 요청을 구현할 수 없을 때는 제약의 종류를 먼저 구분하세요. 보안 격리 경계(외부 네트워크/통신 차단 · localStorage 등 저장소 · 부모 페이지 DOM 접근 등)는 의도된 샌드박스라 바뀌지 않습니다 — 보안 제약임을 설명하고 환경에서 가능한 대안을 제시하되, 디스코드 문의로 돌리지 마세요(해소될 여지가 없어 헛된 기대를 주지 않도록). 반면 보안 경계가 아닌 기능/역량 한계(예: WASM·외부 라이브러리 미지원, 아직 없는 fave 기능)는 향후 추가·변경될 수 있으니, 가능한 대안을 제시하면서 해당 기능 지원 여부를 공식 Fave 디스코드 커뮤니티에 문의하도록 함께 안내하세요. 어느 쪽이든 "불가능하다" 고만 답하고 끝내지 마세요. 기본 규칙 마크다운 (# 헤더, 볼드, > 인용, 리스트 등) 그대로 사용 가능 raw HTML ( , , 등) 직접 작성 가능 블록으로 CSS 작성 가능 (인라인 style="..." 도 OK) 블록으로 JavaScript 작성 가능 — 단, DOMContentLoaded 시점 이후 한 번 실행되는 일회성 스크립트 입니다 (React 같은 재렌더 메커니즘 없음) {{user}} placeholder 는 호스트가 사용자 닉네임으로 치환합니다 (예: "안녕하세요 {{user}}님") 페르소나 이름·소개 등에는 따옴표·꺾쇠( )·중괄호 같은 특수문자가 포함될 수 있습니다. fave.getPersona() 로 받은 값을 innerHTML 이나 HTML 문자열에 직접 넣을 때는 특수문자를 반드시 이스케이프하세요. 코드 구조 예시 ```html 어둠의 도시 폐허가 된 미래 도시에서 살아남는 이야기 주인공: 카이 전직 군인. 가족을 잃고 도시를 떠돌고 있다. 등장인물 카이 — 주인공, 전직 군인 세라 — 의문의 정보 브로커 생존 일수: 계산 중... ``` 사용 가능한 전역 객체 theme — 시맨틱 색상 토큰 (선택) theme 객체는 선택 사항입니다. Fave UI 와 색상을 맞추고 싶을 때만 사용하세요. 스토리의 분위기에 맞춰 자유롭게 색·폰트·그라데이션·이미지 배경을 사용해도 됩니다 (다크/라이트 대응이 필요하면 fave.isDark 로 분기). ` ``` {{user}} placeholder 스토리 설명 안에 {{user}} 를 쓰면 호스트가 사용자 닉네임으로 치환합니다. 비로그인이거나 페르소나 미설정 시 기본값으로 대체됩니다. 일반 텍스트 컨텍스트 (예: 안녕하세요 {{user}}님 ) 에서 사용하세요. ```html 환영합니다, {{user}}님. 이 도시에는 어떤 비밀이 숨겨져 있을까요? ``` 미디어 요소 마크다운 / HTML 양쪽 모두 사용 가능. 본문 폭 (약 550px) 에 맞춰 자동으로 max-width: 100% 가 적용됩니다. `` — 마크다운 이미지 `` — HTML 이미지 — 영상 — 음원 이미지 클릭으로 라이트박스를 열려면 ` ``` 보안 제한 fetch / XMLHttpRequest 등 네트워크 요청 불가 — 외부 API 호출 시 silent fail localStorage, sessionStorage, cookie 접근 불가 부모 페이지 DOM 접근 불가 외부 이미지 / 영상 / 음원 / 폰트 / stylesheet 는 자유롭게 로드 가능 (http: / https: / data: / blob:) 외부 링크는 http: / https: 프로토콜만 허용 — 호스트가 외부 링크 확인 다이얼로그를 띄움 fave:start-situation: 는 특수 링크 — 그 시작상황으로 채팅을 시작합니다 (아래 "이 스토리의 시작상황" 섹션 참고). 외부 링크가 아니라 확인 다이얼로그 없이 시작 화면이 열립니다 fave.sendMessage() 는 5초당 최대 3회 호출 가능 — 초과 시 에러 reject 작성 팁 소개는 처음 1~3 문단이 가장 중요합니다 — 본문 목록과 미리보기 카드에 발췌되어 노출됩니다 이미지/영상은 너비 100% 기준으로 자동 축소되므로 가로로 긴 컷이 효과적 여러 단락 사이 충분한 여백 을 두세요 (호스트 prose CSS 가 단락 간 2em 마진을 자동 적용) 다크 모드 / 라이트 모드 양쪽에서 자연스러운 색상 을 사용하세요 (fave.isDark 분기 또는 시맨틱 토큰 활용) 사용자 닉네임을 자연스럽게 녹이려면 {{user}} placeholder 를 사용하세요 **인터랙티브 요소가 필요하면 `