Skip to content

hwirys/source-missing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ON AIR — broadcaster: not found

웹 기반 ASCII 리미널 호러 팬게임 (사양서 v0.2 구현).

방송자가 사라진 채 계속 켜져 있는 라이브 페이지에 접속한다. 채팅은 계속 올라오고, 중앙의 형상은 채팅과 반죽 기록에 맞춰 흔들린다. 어떤 선택을 하더라도 원본은 발견되지 않는다.

실행

빌드 과정 없음. 정적 파일이므로 아무 웹 서버로 열면 된다.

cd unnie-horror
python3 -m http.server 8000
# 브라우저에서 http://localhost:8000

(음성/사운드는 브라우저 자동재생 정책 때문에 첫 클릭 — [ 라이브 페이지 접속 ] — 이후에 시작된다.)

구조

파일 역할
index.html 화면 구조 (부팅/라이브/PC탐색/기록/아카이브/퍼즐/루틴/복원/메뉴/엔딩)
style.css ASCII·CRT 분위기 스타일
data.js 채팅 풀, 이상 현상, 파일 시스템, 파싱 퍼즐 10종, 루틴 큐, 기록, 엔딩 텍스트
audio.js Web Audio 합성 룸톤·글리치·음성 파편 (assets 파일 우선)
game.js 7블록 진행, 해금 체인, 목표 바, 단서 노트, 형상 렌더러, NG+, 엔딩 분기
test/chain-test.js 헤드리스 전체 진행 검증 (npm i jsdom@22node test/chain-test.js)

1회차 7블록 진행 (추가안 4)

  1. 방송 관찰 — 이상 현상 6종 중 3개를 클릭해 발견 → filesystem 해금
  2. filesystem 탐색 — 잠긴 폴더마다 해금 조건이 힌트로 표시됨
  3. 채팅 파싱 복원parser_recovery.exe, 필수 6 + 선택 4 퍼즐
  4. routine_queue 해제rest_refusal.log의 거절 순서를 거꾸로 (잠→다음 방송→나중에). 틀리면 새 작업이 생성되고 실패 카운트가 쌓임
  5. 반죽이 기록 대조 — original/displayed 비교 → 왜곡 규칙 추론 퀴즈
  6. recordings/ 클립 검토 — 잘려나간 다시보기 3개를 재생하고 어긋난 점을 찾는다 (전부 '끝'이 잘려 있다)
  7. 복원 소스 실험 — 4개 소스 선택. routine_queue를 넣으면 rest가 영구 거부됨
  8. SYSTEM MENU — 최종 선택. rest의 잠금 사유가 메뉴에 그대로 표시됨

힌트 체인: 모든 화면 하단의 ▸ 목표 바가 항상 다음 한 걸음을 가리키고, 발견한 단서는 traces에 쌓이며 각 단서의 줄이 다음 목적지를 가리킨다. do_not_restore.txt가 휴식 엔딩의 조건표 역할을 한다.

엔딩

조건
A. 방송 종료 방송 종료 버튼 / 메뉴 [2] end_stream.exe
C. 전송됨 phase 2 이후 마지막 메시지 남기기 → 채팅 전송
D. 복원 복원 실행 후 메뉴 [1] restore_source.exe (voice 소스 포함 시 "고마워" 연출)
E. 보존됨 current.log 열람 후 현재 기록 보존 / 메뉴 [3]
F. 방치 phase 3에서 120초 무입력, 또는 메뉴 [4] keep_watching 후 45초
R. 휴식 루틴 해제 + rest_refusal.log + 왜곡 규칙 + do_not_restore.txt 확인 + routine_queue를 복원 소스로 쓰지 않음 → 메뉴 [5] rest

2회차 이후 (NG+)

엔딩 도달 시 localStorage에 기록된다. 2회차: returning_viewer.log 등장, current.log에 이전 회차 흔적, 오염 채팅 추가. 3회차: do_not_restore.txt가 처음부터 보이고 routine_queue에 skip 권한이 생긴다.

실제 소재 (포함됨)

assets/에는 쿠로네 언니 본인 허가 범위 내에서 채널 영상으로부터 추출·재가공한 실제 소재가 포함되어 있다. 출처와 가공 내역은 assets/SOURCES.md 참조.

assets/
 ├─ bg_live.png        # 방송 캡처 프레임 (캐릭터 영역 마스킹 + 탈색 처리됨)
 ├─ roomtone.mp3       # 방송 음성 기반 재합성 드론 (원형 인식 불가)
 ├─ SOURCES.md         # 사용 소재 목록 (사양서 2.2)
 └─ voice/             # 실제 발화를 잘라 글리치 가공한 음성 조각
     ├─ 고.mp3  고마.mp3  고마워.mp3        # 복원 엔딩 "고마워" 시퀀스
     ├─ 아.mp3  아직.mp3  보고.mp3  기다려.mp3
     ├─ 언니.mp3                            # 플레이어가 "언니"를 부르면 재생됨
     └─ 내가뭘보고있는거지.mp3              # 3단계 ARCHIVE 첫 열람 시

파일명 = 게임 내 출력 텍스트(말줄임표 제외). 파일을 지우면 코드가 자동으로 Web Audio 합성 글리치 사운드로 대체하므로, 소재 없이도 전체 플레이가 가능하다. ML 보이스 클로닝(새 발화 생성)은 사용하지 않았다 — 실제 발화 조각의 DSP 재가공만 사용. work/에 추출 원본(wav)과 자막이 보존되어 있어 컷을 다시 딸 수 있다.

음성 소재 제작 시 유지할 기준 (사양서 2.2 / 5.3)

  • 짧고 불완전한 조각만 사용한다 — 긴 자연스러운 문장 금지.
  • 실제 발언처럼 오해될 수 있는 내용, 모욕적·성적 맥락 금지.
  • 음성 출력 직후 시스템 로그를 병기해 생성 출력임을 암시한다 (코드에 이미 구현됨).
  • 영상 내 제3자 저작권 음악은 샘플링하지 않는다.
  • 공개 배포 전 최종 빌드에 사용된 음성·이미지·음원 샘플 목록을 정리한다.

크레딧 (배포 시 포함)

본 게임은 쿠로네 언니님의 허가를 받아 제작된 팬게임입니다. 일부 배경 이미지와 음성 기반 연출은 쿠로네 언니님의 방송 영상을 바탕으로 재가공 및 AI 합성되었습니다. 게임 내 합성 음성은 실제 발언이 아닌 공포 연출용 생성 음성입니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors