# 첫 퍼즐 자산 등록 기록일: 2026-10-05. 이 표는 첫 퍼즐 범위이며 최종 캐릭터·세 배경 테마·효과음·음악 완성을 뜻하지 않습니다. | 자산 | 실제 경로 | 제작·출처와 조건 | 상태와 검증 | | --- | --- | --- | --- | | 자석 구·대표 얼굴·숫자 | `Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/{MagnetFriend,GroupBadge}.prefab` | Unity 기본 구·쿼드·선과 직접 작성한 Editor 빌더. 원작 캐릭터를 사용하지 않음. 구 크기 1, 얼굴을 위한 별도 구 없음. | 첫 퍼즐용 임시 외형. 실제 Editor API로 생성, 실제 프리팹 PlayMode 검사. | | 입체 놀이터·소품 | `Presentation/Prefabs/GameApp.prefab` 내부 Playground | 직접 작성한 기본 도형 배치. | 첫 퍼즐용 임시 배경. Blender 제작·세 테마는 후속 작업. | | 한글 글꼴 | `Presentation/Fonts/NotoSansCJKkr-Regular.otf` 및 `NotoSansCJKkr-FirstSlice.asset` | [Noto CJK 공식 저장소](https://github.com/notofonts/noto-cjk), SIL OFL 1.1. 내려받은 커밋은 `SourceAssets/Fonts/noto-revision.txt`, 원문 조건은 `NotoSansCJK-LICENSE.txt`. | 해당 UI·안내 글리프를 1024 정적 atlas에 bake. 원본 및 빌드 글리프 검사. 자동 크기 조정 끔. | | TMP Essential Resources | `Assets/TextMesh Pro/` | 설치한 Unity uGUI 2.6의 기본 리소스. Liberation Sans의 OFL은 `Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt`. Examples/Extras를 가져오지 않음. | 실제 Editor import. 우리 화면은 정적 한국어 폰트 참조. | | 한국어 음성 | `Presentation/Audio/Voice/` | 로컬 Qwen3-TTS 1.7B CustomVoice, Sohee, 고정 revision·말투·seed 기록. [상세 제작 등록](qwen-voice-register.md), `SourceAssets/Audio/Voice/`의 원본·manifest·편집 선택 해시. 모델 코드/카드 Apache-2.0 표시를 기록하며 출력 독점권을 주장하지 않음. | 실제 GPU 생성·파형/해시 검사 및 Unity 재생. 첫 퍼즐 필수 count_01·guide_collect·guide_count는 2026-10-05 KST 사용자 청취 승인. 나머지는 미검수 초안. count_05 이상 출력 제외. | | Voice/SFX/Music Mixer | `Presentation/Audio/GameAudio.mixer` | 직접 작성한 Editor 빌더에서 Master의 하위 그룹 생성. | 음성은 2D Voice로 연결. 성공 자유 전환에서 숫자 큐 유지. | | 효과음·음악 | 없음 | 2026-10-06 사용자 결정으로 첫 버전에서 제외. 결정과 이전 요청표 [audio-requests.md](audio-requests.md). | 채택·청취 대상 없음. 대체 음원을 제작하지 않음. | `Presentation/` 축약 경로의 앞부분은 `Assets/MagnetismHeroes/UnityRuntime/`입니다. AI 2D 자산·Blender 원본·최종 마스크/에너지 망토·변신/세 테마는 이 등록에서 완료로 표시하지 않습니다. 사용자는 세 파일을 직접 확인하고 “세 파일 모두 괜찮습니다”라고 답했습니다. 검수자: 사용자, 검수일: 2026-10-05 KST. 실제 runtime WAV와 대조한 승인 SHA-256은 다음과 같습니다. 다른 파일 승인으로 확대하지 않습니다. | ID | 청취 승인 SHA-256 | | --- | --- | | count_01 | `13A882CE1620140D447635E14F2D4758045D5E348960C17386DF1C720050C100` | | guide_collect | `62E15C9E38C36F4094A6C7E9C5148510141290B5F41DB5AAD9DC1D8F1A158594` | | guide_count | `DEBE29B89F3E2856F2BF4C5E01707A5F0A0657E5768C03BE385EC88FA2328B40` | # Composition 시제품 추가 Stage06/10/14 ScriptableObject와 GameApp의 대표 선택·나누기·취소 버튼은 `CompositionAssets.Build`가 Editor API로 생성/연결한다. GroupBadge에 묶음당 리본 망토 하나, BallView에 접촉 대상·선택 구의 색 표시를 연결했다. 구의 크기/경계와 기존 얼굴·숫자 시제품을 유지한다. 정적 한글 글꼴에 새 안내/버튼의 글자를 추가했다. 전체 AI 외형·최종 표정은 후속 단계다. 새 음성 3개는 아래 Qwen 등록 문서의 초안이며 기존 승인 파일은 그대로 유지한다. # Content 추가: 실제 Blender 세 테마 2026-10-05 T6에서 아래 실제 소스와 공유 프리팹을 제작했다. 앞의 첫 퍼즐 임시 배경/후속 상태는 해당 시점의 이력이며, 당시 30개 스테이지는 이 고정 배경 자산을 사용했다. 현재 자연 배경 적용은 아래 2026-10-09 기록을 따른다. | 자산 | 실제 경로 | 사용·출처·조건 | | --- | --- | --- | | 13개 배경 소품 Blender 원본 | `SourceAssets/Models/PlaygroundProps.blend` | 직접 제작. Blender 5.2.2 LTS. 외부 모델·텍스처·상표 캐릭터 없음. 프로젝트 내 사용. | | 재현 제작/FBX 내보내기 | `tools/models/build_playgrounds.py`, `SourceAssets/Models/provenance.json` | 실행 설정, 도구 버전, 소스·13 FBX 경로/크기/SHA-256 기록. 미터 단위, base pivot, FBX Y-up. | | 공유 Island/BlockArch/ToySteps/Pebbles | `Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/{이름}.fbx` 및 `Presentation/Prefabs/Scenery/{이름}.prefab` | 원본과 일치하는 nonconvex MeshCollider. BlockArch는 기둥 두 개와 가로대의 실제 빈틈을 유지하며 BoxCollider로 막지 않는다. | | 정원 1..10 | `Presentation/Models/{GardenFlower,GardenMushroom,GardenLeaf}.fbx`, 동명 Scenery 프리팹 | 직접 제작 꽃·버섯·잎. 산호색 URP Lit. 고정 Stage SO가 테마·프리팹 참조·배치를 소유. | | 구름 11..20 | `Presentation/Models/{CloudPuff,CloudRainbow,CloudMoon}.fbx`, 동명 Scenery 프리팹 | 직접 제작 구름·무지개·달. 연한 하늘색 URP Lit. | | 별 작업실 21..30 | `Presentation/Models/{WorkshopStar,WorkshopGear,WorkshopCrystals}.fbx`, 동명 Scenery 프리팹 | 직접 제작 별·장난감 톱니·결정. 금색 URP Lit. 새로운 임무/생활 장치 규칙 없음. | | 실제 30 정의 | `Assets/MagnetismHeroes/UnityRuntime/StageAssets/Stage01.asset` .. `Stage30.asset` | Unity Editor API로 작성. R07 번호/초기/목표/종류는 고정이며 테마는 미술 데이터. 런타임 원본 수정 없음. | 수집 자석 55개(1..5,16..20)의 시점 탐색·실제 Collider pick·직접 drag/수집을 PlayMode에서 확인하고 `artifacts/verification/Content/editor-play/counting-discovery.txt`에 stage/ID/yaw/pitch 기록을 남긴다. 세 테마의 Free 0..10 공급, 전체 묶음 반납, 원래 stage 테마 복원도 검사한다. 시범 실루엣은 UI Image만 사용하며 실제 구 ID/Collider가 없다. T6 당시 T7 외형·음향은 후속 작업이었다. 현재 얼굴·UI·VFX 채택 상태는 아래 T7 등록을 따르고, SFX/BGM은 2026-10-06 결정으로 첫 버전에서 제외한다. ## T7 채택 이력: 얼굴·표현·음성 (2026-10-05) 동일 기본 구 하나의 표면에 6표정(기본/관심/집중/웃음/격려/축하) 눈·입·얇은 파란 마스크 Sprite를 붙인다. 구 몸체·추가 머리·숫자 캐릭터 그림으로 대체하지 않는다. 수와 한국어는 TMP 동적 텍스트이며 얼굴/숫자/얇은 빛 리본은 안정 묶음당 하나다. 장식 Collider/raycast target이 없다. 선택 황색 테두리와 접촉 녹색 작은 고리는 독립적이며 확정 접촉 고리와 실제 접촉 위치에서의 짧은 거리별 빛 전파는 표현만 바꾼다. 기존 Core/저장 배열/구 기본 크기는 유지한다. | 자산 | 경로 | 출처·채택·사용 조건 | | --- | --- | --- | | 6표정 투명 PNG 원본/시안 | `SourceAssets/Art/Faces/face-expressions-v{1,2}.png`, `provenance.json` | built-in image_gen 생성/편집, 정확 prompt/생성일/경로/SHA/모델명 미노출 사실 보존. 외부 그림·캐릭터·글자·구 몸체 없음. V2 RGBA SHA `0E3C115619C4AE68CF8859CCBC6D4BFB3A26A1A247B3DDB41327C46829540C98`; 원본 alpha 유지. | | runtime atlas / Unity Sprite 6개 | `Presentation/Textures/FaceExpressions.png`, `Presentation/Sprites/Face0.asset`..`Face5.asset` | Unity API Sprite.Create, 셀 rect/pivot만 metadata. 외부 경로 참조 없음. 실제 구 표면 RT 검수에서 사각 배경 없음. 최종 검수 원문은 T7 artifacts. | | 얼굴·빛·반응형 가로 UI | `Editor/PresentationAssets.cs`, 기존 GameApp/GroupBadge/MagnetFriend prefab | 실제 Unity API 생성. 기존 GameApp GUID 유지. 숫자 배지는 같은 묶음 위의 가까운 공간을 찾는다. 카메라 FOV62/고정 상향 pivot .65는 미술 프레이밍이며 저장 CameraState 형식은 동일. 새 자유놀이 공급 row spacing1.8만 적용하며 저장된 배열/drag 위치는 재배치하지 않는다. | | runtime 44 한국어 음성 | `SourceAssets/Audio/Voice/active-adoption.json` | 현재 runtime→edited→generated 정확 SHA/대본/출처/승인 기록 연결. 기존 3 승인 + 새 여덟. 승인 + 나머지40 승인. 이전 거절된8 이력과 과거 manifests는 유지. 모든44 사용자 청취 승인; 추론 도구/모델/SourceAssets는 APK 제외. | | Qwen/Noto notices | `Assets/StreamingAssets/Notices/` | Apache-2.0 원문/모델 카드와 Noto OFL 원문을 빌드 포함 위치에 staging. 소스 검사와 실제 APK ZIP/byte 검사는 증거 범위를 구분한다. | | SFX/BGM 연결 | `Presentation/GameSound.cs` | 기존 Mixer Voice/SFX/Music 직접 연결과 lifecycle hooks 유지. 사용자 결정으로 첫 버전 SFX/BGM 제외. GameApp의 효과음 10개·음악 4개 clip 참조는 null이며 대체 음원 없음. 실제 음원 청취·음악 3회 반복은 제외 항목이며 통과로 표시하지 않음. | Editor RT 캡처는 Camera.Render와 임시 ScreenSpaceCamera Canvas/안전영역 시뮬레이션 후 복원한 결과이며 Android 기기 화면과 구별한다. JSON은 raw CameraState, 실제 transform/FOV/pivot, 화면·Canvas·viewport 및 측정 범위를 기록한다. editorUnityStatsDrawCalls는 UnityEditor.UnityStats.drawCalls의 해당 Editor frame 관찰값이다. GameView/SceneView 귀속을 이 API만으로 확정할 수 없어 RT GPU draw/overdraw나 제품 draw call 합격으로 취급하지 않는다. Camera.Render wall time은 Editor 비용이며 AVD/실기기 프레임 합격 증거가 아니다. 0/미측정 값을 합격으로 취급하지 않는다. ## 승인 모델 적용 상태 (2026-10-09 KST) 2026-10-08 KST 사용자가 다섯 모델 묶음의 검수 갤러리를 확인하고 “승인합니다”라고 답했다. 승인 범위는 Blender 원본 2개와 FBX 23개의 정확한 바이트이며 최종 제품 전체의 새 사용자 승인을 뜻하지 않는다. [모델 승인 원문](../artifacts/verification/VisualUpgrade/ModelReview/user-approval.json)과 [검수 갤러리](../artifacts/verification/VisualUpgrade/ModelReview/index.html)를 보존한다. 현재 몸체는 승인된 청록색 구 FBX이며 메시 반경 0.5·구 루트 크기 1·기존 SphereCollider 반경 0.5를 유지한다. 기존 6표정·얇은 마스크·TMP 숫자·빛 리본은 유지하고, 대표 친구마다 둥근 투구·무딘 검·둥근 방패 한 벌을 붙인다. 팔·다리·리그·장비 Collider는 없다. 합체·분리·취소·미리보기·재진입 때 얼굴과 장비는 같은 대표 친구를 따른다. 정원 1..10은 맑은 초원, 구름 11..20은 꽃 언덕, 별 작업실 21..30은 바위 언덕으로 표현한다. 기존 Garden/Cloud/Workshop 식별자와 자유 놀이의 sourceStageId는 그대로다. 나무의 가지·수관, 꽃의 줄기·잎, 풀·돌·지면·원경은 실제 승인 메시와 원본 재질 값으로 연결했다. 가까운 아치·계단은 실제 메시 Collider를 사용하며 아치 구멍을 보존한다. 작은 장식·원경에는 Collider를 추가하지 않았다. 원래 바닥 Collider는 유지하고 렌더러만 숨겼다. 원본 `PlaygroundProps.blend`·기존 13 FBX·과거 출처 기록을 보존한다. 새 원본의 후보 provenance도 당시 검수 상태의 고정 이력으로 유지하고, 실제 채택은 [영웅 채택 기록](../SourceAssets/Models/Heroes/active-adoption.json)과 [자연 배경 채택 기록](../SourceAssets/Models/Meadow/active-adoption.json)에 별도로 연결한다. 새 Unity 재질은 31개(영웅 6·배경 25)다. 30개 스테이지의 초기 구 ID·수량·배치·위치·목표·종류 등 비시각 필드, 기존 GUID, 44개 음성·6표정 atlas·폰트·UI·Mixer·Core·저장 형식을 바꾸지 않았다. 제품 소스 `3346eb559bdfba24332feb4d9be4b7104520233e`의 실제 최종 결과는 EditMode 103/103·PlayMode 53/53·Android 226/226이며 네 명령 종료는 모두 0이다. 실행·APK 대응 원문은 `artifacts/verification/VisualUpgrade/FinalProduct/completion.json`이다. 기존 카메라의 yaw 210도·pitch −45도·거리 15에서는 넓어진 지면 뒷면이 보드를 더 많이 가리며 실제 대조는 `FinalProduct/EditorCapture/belowground-raycast-comparison.txt`에 있다. Editor의 스마트폰·태블릿 비율 렌더링과 실제 Android AVD 화면을 구분하며 실기기 성능·아이 대상 사용성·iOS·스토어 게시를 완료로 표시하지 않는다. 원경 하단의 실제 틈을 보정하기 위해 30개 Stage의 FarHorizon 120개 x/z 배치 반경만 35에서 27로 옮겼다. 승인 메시·31개 재질·높이·회전·크기·다른 배치와 카메라·입력·Collider는 유지했다. 실제 가져온 sharedMesh의 별도 물리 장면에서 중앙 24m 복도 표본 누락은 366→반경 28의 6→반경 27의 세 풍경 각각 0이었다. 같은 카메라의 근접 A/B와 지적된 두 전체 화면에서도 중앙 틈 제거를 확인했으며 모든 외곽·픽셀·시점의 무틈을 보장하지 않는다. 원문은 `artifacts/verification/VisualUpgrade/HorizonFix/result.json`과 `HorizonFix/final`의 119개 PNG다.