Pixel Camera 유료 제품 후보 0.3.0 — 아웃라인·팔레트·URP와 16개 샘플
개발 기록 · 블로그 공개
원본 기록 상태 완료
아웃라인·64색 팔레트 에셋·픽셀 격자 안정화·중복 렌더 절감·URP17 RenderGraph를 구현하고 실제 Unity에서 검증했습니다.
작업 결과
Pixel Camera 유료 제품 후보0.3.0의 구현·설치·실행 검증과 중앙 아카이브 첫 공개 배포·외부 접근 확인을 완료했습니다. 가격 책정과 스토어 판매 등록은 별도입니다.
변경 내용
적용 내용
프리셋에 아웃라인 색상/불투명도/반경/깊이·노멀 감도/대상 레이어, 팔레트 에셋과 혼합, 격자 안정화와 원근 기준 거리를 추가했습니다. Automatic은 가능한 설정에서 원본 영상을 재사용합니다. URP17 선택 통합, Renderer Feature 설치 메뉴와 창 미리보기를 추가했습니다. 기존12개 맵을 유지하고13~16번 비교 맵을 추가했으며 O/L/G 키와 UI 버튼은 원본을 바꾸지 않는 Play 프리셋 복제본을 사용합니다. 별도 도킹 설정 창과 공유 Inspector를 적용하고 기존 Affinity 벡터 로고를 유지했습니다.
검증
PC_CORE · 아웃라인·팔레트·안정화와 자동 렌더 경로
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 원본 씬을 보존한 격리 장면에서 실제 Camera.Render 픽셀을 비교 |
| 기대값 | 윤곽선 반경·레이어·가림, 격자 이동, 정확한 팔레트 색과0중복 렌더 |
| 실제 결과 | 22개 통과. 원본/재캡처 일치, 팔레트 RGB·강도0·정상 노멀·벽 관통 조합 확인. |
| 원본 출처·버전 | Unity6000.0.83f1; core-qa.json |
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_URP · URP17 RenderGraph와 반복 프레임
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 별도 소유권 검증 프로젝트에서 RenderRequest와 Renderer Feature 실행 |
| 기대값 | Compatibility Mode 없이 동작하며 임시 자원·RendererList 오류 없음 |
| 실제 결과 | 32개 통과.24캡처, 렌즈/컬링 갱신,0중복 경로, 팔레트·관통·아웃라인 통과. |
| 수정 내용 | 임시 렌더 자원 수명·선택 마스크 의존성·풀링된 RendererList 초기화를 수정했습니다. 검증 도구의 참조 누락과 씬 전환 시 캡처 텍스처 수명도 보정했습니다. |
| 재검증 | 새 에디터 세션에서 URP16검사·24회반복·16개맵렌더·창미리보기실행과 실제Play를 재검증했습니다. 초기실패JSON은 로컬개발근거에 보존했습니다. |
| 원본 출처·버전 | URP17.0.4; urp-qa.json, urp-maps.json |
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_MAPS · 16개 플레이 가능한 맵과 UI 분리
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 기존TurnRoom에서 각 맵 Play→상태읽기→게임캡처→Stop |
| 기대값 | 맵마다292렌더러, Overlay Canvas1개, 버튼10개 |
| 실제 결과 | 16개 모두 통과.13~16 새 기능 샘플과 기존맵 유지. Overlay UI는 효과 밖에서 선명하게 표시. |
| 원본 출처·버전 | play-all-16.json |
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_NATIVE · 설정 입력·Undo/Redo·저장과 게임 키
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 도킹창360→378입력, CtrlZ/CtrlY, 저장·닫기·재열기. 게임O/L/G와4키 입력 |
| 기대값 | 실제 바인딩 값과 저장 내용 일치; Play 원본 에셋 보존 |
| 실제 결과 | 378저장·재열기,360복구. O/L/G OFF와540픽셀 선택. Play 전후 원본 프리셋SHA256동일. |
| 원본 출처·버전 | native-qa.json; English Windows UI |
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_DOCS · 라이트/다크 설정과9개언어 문서
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 실제 Unity창 캡처·육안검토 후 문서생성/링크/이미지·소스해시검사 |
| 기대값 | 현재 기능·지원범위·샘플16개와 캡처 일치 |
| 실제 결과 | 9개언어 가이드와9개실제캡처 해시 통과. 모든이미지200KB이하, 직접캡처 원본으로 별도 이미지편집 없음. |
| 원본 출처·버전 | Documentation/ScreenshotManifest.json; 영어 UI만 시각검증 |
Excel 원본
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_INSTALL · 최종 패키지 새 프로젝트 설치
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | 제품코드 사전복사 없이 최종unitypackage를 새 Built-in 프로젝트에 import |
| 기대값 | 컴파일 성공·16맵 렌더·셰이더 오류 없음 |
| 실제 결과 | 새 설치 통과. 패키지393에셋,4모델,16맵,9가이드. Development/Pixora 종속성 제외. |
| 원본 출처·버전 | fresh-install-qa-final.json; package-verification-final.json |
수정 후 실제 실행
화면 근거: 새 기능 구현 검증이며 동일 조건의 구현 전 화면은 없습니다. 실제 구현 후 실행 화면과 수치 검증 근거를 첨부했습니다.
PC_PALETTE · 팔레트 매핑
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | Built-in/URP실제렌더픽셀비교와 해당샘플Play |
| 기대값 | 프리셋값에맞는효과와원본보존 |
| 실제 결과 | 정확한 팔레트RGB와강도0우회,16색 샘플 실제Play 통과 |
| 원본 출처·버전 | core-qa.json / urp-qa.json |
수정 후 실제 실행
화면 근거: 신규기능의 동일조건 구현전 화면은 없습니다. 실제 구현후 화면과 수치검사를 첨부했습니다.
PC_GRID · 픽셀 격자 안정화
분류: Pixel Camera 0.3.0 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | Built-in/URP실제렌더픽셀비교와 해당샘플Play |
| 기대값 | 프리셋값에맞는효과와원본보존 |
| 실제 결과 | 같은격자셀 이동의픽셀동일성·경계넘기이동과원본카메라위치보존 통과 |
| 원본 출처·버전 | core-qa.json / urp-qa.json |
수정 후 실제 실행
화면 근거: 신규기능의 동일조건 구현전 화면은 없습니다. 실제 구현후 화면과 수치검사를 첨부했습니다.
PC_PUBLIC · 개별 보고서·첨부 외부 접근
분류: 공개배포 · 결과: 통과
| 항목 | 내용 |
|---|---|
| 실행 절차 | GitHub Actions조회후 공개HTTPS에서HTML과9이미지를다운로드해원본대조 |
| 기대값 | 배포success·HTTP200·이미지SHA256동일 |
| 실제 결과 | Actions41234132216success, 보고서HTTP200과9이미지해시동일 |
수정 후 실제 실행
화면 근거: 웹배포검증은 실제HTTP본문과파일해시로기록했습니다. 이미지에는검증된제품실행화면을첨부했습니다.
개발 화면
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()