Pixel Camera

Pixel Camera 물체별 픽셀화·루트 안정화와 편집 가능한 예제 UI

개발 기록 · 블로그 공개

원본 기록 상태 검증 대기

선택 물체별 크기·깊이 합성·직교 루트 스냅·개별 외곽선, 예제 시작 회전과 프리팹 버튼을 구현했습니다. 정적 컴파일/패키지 검사 통과, 새 Unity 실행 QA 대기.

작업 결과

기능 코드를 추가하고 C#6개 어셈블리·SM5 HLSL8개 엔트리/인스턴싱 변형의 정적 컴파일을 통과했습니다. 새 렌더 결과와 네이티브 UI 동작은 미확인입니다. 컴퓨터 조작 중지 이후 기존 Unity의 씬 자동 QA도 멈췄으며 새 Unity/플레이어 실행, 마우스·키보드·창 활성화 작업 없이 파일/정적/네트워크 작업만 진행했습니다. OS 포커스 이벤트를 계측한 것은 아닙니다.

추가한 구현 설정과 범위
물체별 픽셀화 프리셋 Selected Objects + Pixel Camera Object, 화면1~16px·일반 해상도 배경·불투명 그룹 깊이 합성
움직임 안정화 직교 카메라의 루트 이동 스냅·선택적 카메라 기준 각도 양자화, 렌더 스코프 종료 시 원좌표/상태 복원 코드
개별 외곽선 물체별 enable/두께/색 override, 프리셋 공통 master/깊이·노멀 임계값
예제 조작 기존3씬의4/8px 구성, 시작 자동 회전, Outline·Root snap 버튼과 O/S 단축키
편집 가능한 UI 각 테마 ShowcaseGuide.prefab, native UGUI·글꼴·배치·스타일·정적 문구·Inspector 영구 버튼 이벤트. 런타임 UI 생성 제거

현재 코드에는 최대127루트·16크기 그룹 제한이 있습니다. 크기 그룹별 캡처/합성 패스가 증가합니다. 서브픽셀 Pixel Expansion, 원근·뼈/자식 변형의 완전 안정화, Shader Graph 전용 타깃, 툰/베벨 조명과 LUT/팔레트 추출 저작기는 제공하지 않습니다. 경쟁 제품과 성능/기능 동등성을 주장하지 않습니다.


변경 내용

적용 내용

기존 Runtime/Editor/Integrations/URP/Samples/Artwork·Scenes·Presets 구조를 재사용했습니다. FullCamera 기본값0을 유지하고 새 기능은 SelectedObjects 분기로 추가했습니다. 실제 원래 재질을 크기별로 렌더하고 float ID/eye-depth로 합성하도록 작성했습니다. 기본 벽 가림과 명시적 late-layer 투시를 구분합니다. 렌더러 shadow/force/mask와 per-renderer·per-material property block, 부모/자식 world pose를 스코프에서 보존·복원하도록 구현했습니다. 실제 복원 검증은 남아 있습니다. URP는 원본 rendering-layer를 유지하며 쓰지 않는 비트만 예약하고 부족하면 우회/상태를 알립니다. 카메라별 재질 정리도 포함했습니다.

최신 사용자 지침에 맞춰 ShowcaseTour의 UI 오브젝트 생성·배치·스타일·버튼 AddListener 코드를 없앴습니다. 기존 테마 폴더마다 native Canvas/Text/Image/CanvasRenderer와 영구 Inspector 이벤트를 가진 ShowcaseGuide.prefab을 작성했고 씬에 연결했습니다. ShowcaseControls는 데이터/동작만 중계합니다. 신규 제품 루트나 별도 유료판 관리 구조를 만들지 않았습니다. 과거 outpost UI 코드는 개발 이력 보존용 원본에만 두고 고객 후보에서 제외했습니다.

9개 언어 설명·제한·조작을 갱신하되 이전 실제 캡처와 source hash는 바꾸지 않았고 재촬영 대기를 표시했습니다. 기존 세 테마·클립은 유지했습니다. 스토어 문구의 예전16씬/FBX/기능 부재 정보도 현재 구현과 미검증 범위로 수정했습니다. 새 후보ZIP에는 오래된 키이미지·스크린샷·QA인증서를 넣지 않았습니다.


검증

현재 C#6개 어셈블리 컴파일: Runtime, Samples, Editor, Development, URP, URP.Editor 모두 exitCode0. Unity6000.0.83f1 및 정확한 URP17.0.4 기존 참조와 compiler response file을 사용했고 현재 소스별 SHA-256을 보존했습니다. Unity를 실행한 검사는 아닙니다.

HLSL8개 정적 컴파일: Windows D3DCompile/SM5와 같은 Unity 버전의 CGIncludes를 사용해 합성/메타데이터·fullscreen vertex·인스턴싱 변형 hresult0을 확인했습니다. Unity import/variant stripping/렌더 픽셀 검증을 대신하지 않습니다.

실제 초기 Unity 실패1, 예약어 triangle, 예약어 line을 보존합니다. 예약어를 바꾼 뒤 위 정적 컴파일은 통과했으나 수정 후 Unity 재-probe는 미실행입니다. 상위 bridge passed만으로 내부 QA를 통과 처리하지 않았습니다. 이 검사들은 픽셀 비교 전에 실패했으므로 안정화·벽 가림 통과 증거로 사용하지 않습니다.

씬/프리팹 직렬화 검사:3씬 각각4/8px 루트2개, autoRotate1, native CanvasRenderer와 Overlay 설정, 버튼8/8/9개 이벤트의 내부 fileID·대상 메서드 연결을 검사했습니다. 패키지 GUID 참조 검사도 통과했습니다. 실제 Unity import/레이아웃·클릭/키 왕복은 미실행입니다.

패키지 전체 바이트 대조:590개 asset/meta,3씬·3클립·9챕터 preset+3팔레트, GUID 중복/개발 파일/오래된 FBX 제외를 확인했습니다. SHA-256 4b8504af805b14bbca63bda21cbd4af5f44bec015b53f9f494e3de76839be630. ZIP CRC 및 원본 바이트 대조도 별도로 기록합니다. 파일 포장 검사이며 새 설치 통과가 아닙니다.

화면 캡처 미실행: 사용자 컴퓨터 조작 중지 요청 때문에 현재 물체 모드·프리팹 UI 화면은 캡처하지 않았습니다. 기존 카메라 전체 화면을 새 구현 검증처럼 첨부하거나 가짜 화면으로 대체하지 않았습니다. UI 재촬영과9개 언어 guide 이미지 검증은 남아 있습니다.


남은 사항

컴퓨터 조작 중지 요청을 유지합니다. 새 물체 모드의 실제 Unity 출력·벽/그룹 깊이·동일 셀 안정화·계층/다중카메라/상태 복원, 프리팹 import·UI 실제 클릭/키와 값 왕복, 새 URP 실행, 최종 신규 설치, 현재 화면 재촬영이 미실행입니다. 투명 합성·커스텀 정점 변형·중첩 렌더 콜백은 보장하지 않습니다. 기존 카메라 전체 모드 QA/화면을 새 기능 통과로 재분류하지 않았습니다. 스토어 판매자/지원 연락처/가격과 실제 Affinity 키이미지 작업도 남아 있으며 실제 제출은 하지 않았습니다. 제출 상태를 유지하며 전체 메뉴얼은 complete로 처리하지 않았습니다.


출처

중앙 아카이브 원문