# 공장201~205판 최신main 이관 사용자 요청: 최신main에서 새 브랜치를 만들고 공장 모드를201판부터 배치한다. 처음은 한 통이며 뒤로 갈수록 통 수와 속도가 늘어난다. `Fill to the line` 대신 실제 조작을 안내한다. 기존 기초 구현 + 사용자 시각 조정 선택을 유지한다. ## 기준과 구조 - 기준main은 `22b7f1e`(활성200판·파괴 보류·최신 홈/상점/장비)다. 작업 브랜치는 `codex/jelly-factory-201`이며 이전 프로토타입은 `codex/jelly-fill`에 보존한다. 최초 구현 범위에서는 main 병합·푸시를 제외했으나, 사용자 후속 요청으로 최신main 통합·로컬 커밋·main 푸시를 승인받았다. 운영 반영은 main 푸시에 연결된 게임·기획서 자동 배포를 따른다. - 기존200판 ID·순서·내용과 퇴역/이관 대응표를 그대로 둔다. 새 고유 ID stage-278~282를 현재 순서 끝에 붙인다. 첫 공장 표시 번호는201, 마지막은205다. - 별도 JellyFillMode·순수 Session/Run·절차 생성 Scene·HudView/ResultView를 최신 ModeHost에 연결한다. Game에는 등록 외의 모드 분기를 추가하지 않는다. 최신 셰이더 보관소는 keepShaders 훅으로 연결한다. 공통 콘텐츠 분류는 factory다. - 기존 홈 작업은 ignored 폴더의 원본/해시와 stash에 보존했다. 최신main에 같은 코드 수정이 이미 포함돼 있으며 이미지도 해시를 비교해 동일하게 복원한다. 기존 상점·장비 코드를 과거 파일로 덮지 않는다. ## 다섯 판 | 표시 번호 | 고유 ID | 통 수 | 통당 마감 | 기본 interval | 강한 투입 간격 | |---|---|---:|---:|---:|---:| |201|stage-278|1|4.1초|0.14|0.100초| |202|stage-279|2|3.6초|0.133|0.095초| |203|stage-280|3|3.1초|0.126|0.090초| |204|stage-281|4|2.7초|0.119|0.085초| |205|stage-282|6|2.3초|0.112|0.080초| 각 통은 기본 곰12개분 부피 용량·낙하0.36초·누름0.9초간5배 가속·손 떼기 중지·마감 전 보충을 공유한다. 첫 통은 첫 누름까지 기다리고 이후 통의 시계는 자동으로 흐른다. 초과는 림 위로 튀어 레일로 떨어지고 마감 후 공중 젤리와 넘침 연출까지 끝나야 판정한다. 실패한 통이 있어도 모든 통을 끝까지 진행하고 마지막 통 퇴장 뒤에만 결과창을 연다. 2026-11-01 후속 완화로 정확하면3별, ±1개면2별, ±2개면1별을 준다. 모든 통이 통과하면 통별 최저 별로 완료를 저장하고, 하나라도 실패하면 전체0별/실패다. 혼합 크기도 실제 개수 오차를 쓰며 빈 통은 실패다. 여러 통의 실패 결과 문구는 실패한 통 수를 집계하며 마지막 통의 개별 판정으로 덮어쓰지 않는다. 최대36개 자원을 프레임 분할 준비하고 통 간 재사용한다. [허용 오차 상세](2026-11-01-factory-tolerance-design.md)가 이전의 정확 일치 전용 규칙보다 우선한다. ## 혼합 크기 난이도 ### 통 혼합과 큐브 무지개 복원 사용자 후속 요청으로 통 벽 opacity를0.12에서0.055로 낮추고 큐브는 이전rainbow 색상장·opacity1로 복원한다. 최근 감쇠 출렁임·203 이후 곰 크기 혼합은 유지한다. 같은 레일에 기본형standard(반폭0.8/반깊이0.65/최소벽1.45·목표12), 넓고 낮은wide(1.0/0.65/1.1·목표6), 좁고 높은tall(0.68/0.63/1.7·목표12)을 섞는다. 실제 벽 높이는 목표 더미+0.35 이상으로 보정하고 배치/목표선/넘침은 해당 통 치수를 쓴다. 통 순서는201 `[standard]`,202 `[standard,wide]`,203 `[standard,tall,wide]`,204 `[standard,wide,tall,wide]`,205 `[standard,tall,wide,tall,standard,wide]`다. 다음 통은 실제 다음 모양과 목표선을 미리 표시한다. 모든 통의 더미/목표와 세 모양의 장면 자원은 입력 전에 준비하며 교체 중에는 새 메시/SDF를 만들지 않는다. 모양·부피·통 종류를 더미 캐시에 포함한다. 각 통의 목표는12 또는6으로 젤리 패턴의 완전 반복에 맞춰 항상 정확히 채울 수 있다. 실패 통도 끝까지 진행한 후 최종 결과를 집계하는 규칙은 유지한다. 아래 이전 통/큐브 표현보다 이 절이 우선한다. ### 단색/투명도와203판 이후 곰 크기 후속 변경 사용자 요청으로 큐브의 무지개 층을 제거하고 민트 단색·opacity0.7·낮은 흡수/산란으로 맑게 표현한다. 기본rainbow 재질은 유지하며 단색 변형은 셰이더 보관 키를 분리하고 품질 교체/복제에도 색·투명도를 유지한다. 큐브 착지는 진폭0.32·감쇠6.5·진동20의 눌림/복원과 감쇠하는 작은 전단 흔들림을 적용하고 움직임 줄이기에서는 끈다. 201은 곰1,202의 부피는 `[0.75,1.25,1]`·모양은 `[cube,cube,bear]`로 곰 크기는1로 유지한다.203은 `[0.5,1.5,1,0.5,1.5,1]`·`[bear,bear,cube,cube,cube,bear]`,204는 `[0.5,2,0.5,1.5,1,0.5]`·`[bear,bear,cube,cube,bear,cube]`,205는 `[0.25,2.5,0.5,1.5,0.75,0.5]`·`[bear,bear,cube,cube,bear,cube]`다. 모양과 부피를 분리해203부터 작은/큰 곰과 큐브를 모두 섞으며 곰 부피 차이는3→4→10배다. 각 반복 평균1·12개 목표 도달은 유지한다. 더미 캐시·목표선은 부피뿐 아니라 모양 순서도 포함하고 방출·지지면·준비 메시/재질에 같은 순서를 사용한다. 아래 기존 수치/모양 규칙은 이 후속 요구가 우선한다. ### 큐브 모양 변경 이력 사용자 요청으로 아래의 큰 원형orange를 공장 전용 정사각 큐브로 대체한다. 작은 곰·부피 패턴·통 진행은 유지한다. 큐브는 가로/세로/높이1.4·모서리 반경0.12의 정육면체이며 기존rainbow 색상장을 재사용하되 기존rainbow 형상은 수정하지 않는다. 재질은 큐브의 실제 두께/외곽 유니폼을 사용하고 같은 옵션을 품질 교체·셰이더 보관·복제에도 유지한다. 높은 광택과 착지 뒤 감쇠하는 눌림/복원(진폭0.26·감쇠8·진동22)을 큐브에 적용한다. 부피·지지면·목표선·넘침은 새 실제 외곽과 일치시킨다. 도감은 재사용한rainbow 종류로 기록한다. 아래orange 기술은 직전 구현 이력이며 이 후속 요구가 우선한다. - 사용자 요청에 따라201판은 동일 크기 곰,202~205판은 점점 크기 차이가 큰 곰과 둥근 오렌지 젤리를 섞는다. 기본 부피1보다 큰 젤리는 곰과 완전히 다른 원형 실루엣인 기존orange 형상을 쓴다. 통 수·낙하 시간·벨트/투입 속도와 마지막 통 후 최종 판정은 유지한다. - 한 개의 기본 곰 부피를1로 두며 반복 부피 패턴은201 `[1]`,202 `[0.75,1.25,1]`,203 `[0.5,1.5,1]`,204 `[0.5,2,0.5,1]`,205 `[0.25,2.5,0.5,0.75]`다. 원본 외곽 넓이×두께 차이를 보정한 부피의 세제곱근으로 렌더링·지지면 크기를 함께 적용한다.205판 최대/최소 부피 차이는10배다. - 패턴 평균은1이며 길이는12의 약수라 모든 판의12번째 젤리에서 정확히 목표12부피에 도달한다. 무작위로 풀 수 없는 조합을 만들지 않으며 한 개가 차지하는 양과 채움 비율·경고·성공/넘침 판정은 실제 부피 합을 쓴다. 같은 패턴을 통마다 재사용한다. - 크기별 더미 지지면·목표선은 패턴별로 미리 준비해 실제 표면과 맞추고, 누름/프레임 업데이트에서 메시·지지면을 새로 생성하지 않는다. 원본 조각 폴리곤은 보존한다. 기초 구현/사용자 외관 조정 선택을 유지한다. - 곰/오렌지 원본 메시·SDF를 각각 프레임 분할 준비하고36개 개체를 통 간 재사용한다. 미인계 원본/복제본은 취소·오류에도 해제하며 두 종류의 셰이더를 모두 보관/예열한다. 품질 교체도 실제 개체 종류를 유지하고 도감에는 실제 담은 종류를 기록한다. ## 다음 통 미리 보기 상세 - 두 통 이상인202~205판은 현재 통을 채우는 동안 다음 빈 통이 왼쪽 레일에서 미리 다가온다. 한 통인201판과 마지막 통 뒤에는 대기 통을 표시하지 않는다. - 다음 통은 준비 시 현재 통의 지오메트리·공통 재질을 공유해 한 번 만들고, 목표선 재질만 분리해 현재 통의 성공/실패 색을 물려받지 않게 한다. 교체 중에는 메시/SDF를 새로 만들지 않는다. - 대기 통은 채움 진행에 맞춰 x−2.9에서−1.3 방향으로 접근한다. 성공/실패와 관계없이 다음 통이 있으면 퇴장/입장을 나누지 않고0.7초 동안 동시에 움직인다. Hermite 보간으로 교체 시작의 접근 속도와 끝의 현재 통 속도를 연결하며, 끝점−0.9에서 남은 프레임 시간을 새 통에 넘겨 정지나 위치 도약을 없앤다. 마지막 통의 퇴장은0.4초이며 판정·마감·교체 중 입력 차단은 유지한다. - 숨김·컨텍스트 손실은 같은 게임 시간과 함께 접근/입장을 멈춘다. 움직임 줄이기에서는 대기 통을 고정 위치로 표시한다. 디버그 nextContainer는 대기 통의 월드x/화면 중심 또는null이다. 시각 기초 구현·사용자 조정 선택을 유지한다. ## 조작 안내 상세 - 시작 배지는 칼 아이콘 없이 `Hold to pour` 문구만 표시한다. 하단에는 `Hold longer to pour faster. Release to stop. Tap to top up.`을 첫 입력 전 계속 표시한다. - HUD는 한 통 판도 `Container 1 / 1`로 보여 준다. 목표명/시작 배지의 `Fill to the line` 문구는 제거한다. 공중 젤리를 포함한 최종량과 `Release now!`·`Overflow!` 신호는 유지한다. - 첫 소개는201판만이지만 모든 공장 판의 첫 입력 전 조작 안내는 유지한다. 새 자산·음원·외부 모델은 추가하지 않는다. ## 검증과 인계 원래200판 순서 해시·저장 별/퇴역 기록 보존,200판 전체완료→201, 각 난이도의30/60/120Hz 보충 포함 풀이를 확인한다. 브라우저는201 한 통·202~205 통 수·성공/부족/초과·201→202·205 전체완료/재플레이·취소/숨김/컨텍스트 복구·자원 재사용·조작 안내 노출을 검사한다. 기본 모바일390×844·데스크톱1280×800에서 기능 노출만 확인하며 반복 취향 조정은 하지 않는다. sol/medium 독립 코드 리뷰를 수행한다. 최종 외관·체감 난이도·실기기 성능은 사용자 확인 범위다.