까치가 밤에 박물관을 털고 있고, 그녀를 잡을 수 있는 유일한 것은 빛입니다. 경비원의 랜턴은 실제 그림자를 드리우는 Light2D 콘이고, 전시 케이스와 기둥은 LightOccluder2D 폴리곤을 가지며, 발각 판정은 바로 그 지오메트리를 대상으로 레이캐스트합니다. 화면에서 음영으로 보이는 것이 곧 은신 상태입니다 — 빛을 막는 케이스 뒤로 숨으면 경비원의 시야도 함께 막힌 것입니다.
방향키 / WASD로 이동 · Shift로 살금살금 걷기 · E로 케이스 열기 · X로 날개 대시 (경비원이 소리를 들음) · P 일시정지 · M 모션 감소. 세 번 잡히기 전에 보석 다섯 개를 둥지로 가져가세요.
코드 한 줄 작성 전에 세 장의 콘셉트 시트가 만들어졌습니다: 야간 키 아트, 까치 캐릭터 시트, 박물관 소품 콜아웃 보드. 이 시트에 이름이 붙은 모든 것은 출시된 게임 안에 실제로 제작된 에셋으로 존재합니다 — 24개 항목 전부, 빠짐없이. 키 아트 옆의 엔진 화면은 목업이 아니라 실제 빌드입니다.


전체 강도 시나리오는 먼저 회색 사각형으로 실행되었습니다 — 순찰 경로, 콘 지오메트리, 오클루더 레이캐스트, 케이스 열기 동작, 나르기, 세 번째 보석 이후 세 번째 경비원 등장, 새벽 재시작까지. 블록아웃은 세 라운드였으며, 1라운드는 오토파일럿이 케이스에서 118px 떨어진 곳에 멈춰 78px 열기 반경 밖에 있었기 때문에 실패했고, 케이스 중심으로 경로를 잡아 62px에서 멈추도록 수정했습니다. 그 후에야 아트 작업이 시작되었습니다.


이 작품에는 그려진 스프라이트가 전혀 없습니다. 까치와 경비원들은 Blender에서 고정된 64 px/미터로 제작, 리깅, 렌더링되며, 모든 프레임은
두 번: 색상 한 번, 카메라 공간 노멀 셰이더로 한 번, 이렇게 두 번 렌더링됩니다. 엔진은 이 두 부분을 다음에 공급합니다: CanvasTexture, 그래서 지나가는 랜턴이 실제로 새의 등과 파켓 마루의 모서리를 다시 비춥니다. 방향은 절대 좌우 반전되지 않습니다 — flip_h 은 노멀 맵의 X 채널을 재부호화하지 않으므로, 네 방향 모두 실제로 렌더링됩니다.
경비원의 걸음걸이는 수작업 포즈가 아닙니다: CMU 클립 02_01이 플랫폼의 모캡 키트를 통해 경비원 리그에 리타겟되어 방향당 6프레임으로 샘플링되고, 대기 동작은 긴 정지 클립 15_04에서 추출됩니다. 랜턴 팔만은 유일하게 수작업으로 처리된 예외입니다 — 야간 경비원은 램프를 들고 다니는 것이지 자유롭게 흔드는 팔처럼 움직이지 않으므로, 그 팔의 베이크된 곡선은 제거하고 수동으로 설정했으며 나머지 몸 전체는 여전히 모캡이 구동합니다.


랜턴에 고정되지 않고 근처를 떠도는 켜짐 이는 이 랩이 이미 대가를 치른 결함 유형입니다. 여기서는 모든 방향의 모든 프레임에 대해 랜턴 유리 픽셀을 Blender에서 측정하고 다음에 기록합니다: char.json; 엔진 내에서는 따뜻한 빛의 웅덩이도
감지 원뿔에도 매 프레임 그 앵커에 다시 고정됩니다. 렌더러가 그리는 원뿔과 감지 테스트가 발사하는 광선은 같은 지점에서 시작합니다 — 보이지 않는 두 번째 기하 구조는 없습니다.
랩은 이 호스트의 소프트웨어 렌더러 — GPU 없이 — 로 Playwright 감사를 수행하므로, 아래 프레임 레이트는 하한선이지 상한선이 아닙니다. 보기 흉한 항목도 포함되어 있습니다.
| 측정 | 값 |
|---|---|
| 익스포트 페이로드 (pck) | 1.67 MB |
| 엔진 런타임 (wasm, 고정) | 33.7 MB |
| 페이로드 내 제작된 아트 | 1.29 MB |
| 오디오 스템 | 0.46 MB |
| 블록아웃 라운드 | 3회 (1회차 실패: 오토파일럿이 침입 반경 밖에 정차) |
| 아트 감사 라운드 | 7회차 — 1~5회차에서 시각적 결함 10건 발견, 6회차 정상, 7회차 확인 중 |
| 렌더링된 스프라이트 프레임 | 152 (디퓨즈 76 + 카메라 공간 노멀 76) |
| 사용된 모션 캡처 클립 | CMU 02_01 걷기, 15_04 대기(경비원); 까치는 프로시저럴 |
| 셀프테스트 플레이스루 | 보석 5/5, t=126초에 승리 |
| 감사 중 프레임 레이트 | 소프트웨어 렌더러, GPU 없음 - 초당 1프레임에도 못 미치는 수준 |
| 알려진 환경 결함 | 소프트웨어 래스터라이저는 연속 플레이 약 5분 후 월드 캔버스 표시를 멈춥니다; HUD는 정상 유지됩니다. 1차 사이클에서 조사되었으며, 씬 그래프 결함은 아닙니다. |
각 경비원의 랜턴은 텍스처로 마스킹된 원뿔형 PointLight2D로, 그림자가 켜져 있습니다. 진열장과 기둥은 LightOccluder2D이며 — 보이는 그림자가 바로 숨을 곳입니다.
모든 프레임은 CanvasTexture를 통해 대응하는 카메라 공간 노멀 패스를 함께 전송하여, 새, 경비원, 파켓 마루, 진열장 모서리 모두 랜턴 빛의 영향을 받습니다.
'조명이 비춤'이란: 원뿔 각도 안, 사거리 안, 그리고 그려진 랜턴 유리에서 발사된 오클루더 레이어에 대한 레이캐스트가 막힘없이 통과함을 의미합니다.
블록 파켓, 카펫 러너, 대리석 테두리 타일로, 각각 Blender에서 탑다운으로 실제 릴리프 노멀 맵과 함께 렌더링되었습니다.
경비원 순찰과 셀프테스트 오토파일럿 경로는 실제 콜라이더 형태로 만들어진 동일한 그리드를 사용합니다.
대시할 때와 잡았을 때 터지는 깃털, 천창의 달빛 사이로 떠다니는 먼지 입자.