docs: record playground behavior and Editor validation scope

This commit is contained in:
NINI
2026-10-11 23:16:27 +09:00
parent b438ee266b
commit 13822905d3
20 changed files with 158 additions and 12 deletions
+19 -1
View File
@@ -29,7 +29,7 @@
- Blender FBX의 root 회전을 제거하면 소품이 눕는다. 승인 몸체의 실제 import root X는 약 89.98도, 자연 소품은 90도이며 장비는 0도다. 제작 원본 m·Z-up, 내보내기 -Z forward·Y-up, Unity import scale 1·bakeAxisConversion을 유지하고 wrapper 아래 원래 root를 보존한다. 얼굴 평면을 장비 중심으로 쓰면 장비가 구 앞에 뜨므로 대표 구 중심으로 되돌려 배치한다.
- 아치 전체를 BoxCollider로 감싸면 보이는 구멍도 Raycast를 막는다. 실제 아치 메시의 MeshCollider로 구멍을 보존하고 뒤쪽 자석을 선택할 수 있는지 확인한다.
- 투명 얼굴 PNG는 일부 뷰어에서 alpha 0 픽셀의 RGB가 파란 배경처럼 보인다. 원본 alpha와 실제 Unity 구 표면의 가장자리를 함께 확인한다. 현재 v2는 도구 편집 결과 자체를 채택했고 별도 래스터 변환 없이 런타임 파일과 같은 바이트를 유지한다.
- 글꼴 이름의 `FirstSlice`는 과거 이름이며 현재 전체 한국어를 포함한다. 이름만 보고 다시 만들면 승인된 화면과 자산 GUID가 달라질 수 있다. 실제 glyph와 static atlas를 검사하고 새 문구의 누락만 보완한다.
- 글꼴 이름의 `FirstSlice`는 과거 이름이며 현재 실제 UI에서 사용하는 한국어 glyph를 포함한다. 이름만 보고 다시 만들면 승인된 화면과 자산 GUID가 달라질 수 있다. 실제 glyph와 static atlas를 검사하고 새 문구의 누락만 보완한다.
- Blender 재질 기록의 `linearBaseColor`를 Unity `_BaseColor`에 그대로 넣으면 의도한 팔레트와 달라진다. 실제 채택은 `baseColorSrgb`/`authoredSRGB`를 사용하고 URP의 색 공간 변환에 맡겼다. 거칠기는 smoothness=1−roughness, 금속성은 원본 값을 사용하며 승인 메시·팔레트를 다시 제작하지 않는다.
- Light의 Soft 설정만 바꿔도 URP의 soft 지원이 꺼져 있으면 실제 그림자가 나오지 않는다. 현재 Sun은 따뜻한 색 (1, .97, .91), 강도 1.3·Soft strength .55이며 URP는 1024·1 cascade·Low soft·거리 30이다. 실제 같은 보드의 shadow-off/soft-shadow 화면 대조로 확인했다. 설정 존재만으로 렌더 결과를 통과로 쓰지 않는다.
@@ -43,3 +43,21 @@
초기 자산 builder는 현재 완성된 씬·스테이지·얼굴·음성 참조를 재작성할 수 있다. `ProjectBootstrap.Prepare/ConnectApp`, `CompositionAssets.Build`, `PersistenceAssets.Build`, `ContentAssets.Build`, `PresentationAssets.Build`를 정상 프로젝트 열기·검사 전 준비 작업으로 실행하지 않는다. 변경 대상과 생성 diff를 먼저 확인하고 승인된 기존 자산을 보존할 수 있을 때만 사용한다.
로컬 Qwen 환경의 설치·import, GPU 연산, 모델 로딩, 실제 생성, 파일 검수, 청취 승인은 각각 다른 확인이었다. 이미 승인된 44개는 재생성할 이유가 없으며 같은 seed가 다른 환경에서 같은 WAV 바이트를 보장하지 않는다. 새 후보는 원본 이력과 입력 snapshot을 유지하고 승인 파일과 혼합하지 않는다.
## 새 지형·끌기와 실제 입력 관찰
- 승인 FBX는 런타임에서 정점 읽기가 꺼져 있다. Read/Write나 import root를 바꾸면 승인 메타데이터 경계를 깨뜨리므로 Editor의 읽기 전용 메시 접근으로 정점·삼각형을 추출하고 원본·meta 해시와 함께 복원 판정 자산에 저장했다. 메시 자체를 다시 제작하지 않는다.
- 얇은 지면 테두리가 화면에서 틈처럼 보일 수 있다. 실제 형상 검사에서는 약 3mm의 연결된 측벽과 인접 면의 12mm 겹침이었다. 그림이나 한 픽셀만으로 공중 틈이라 단정하지 않고 실제 메시·같은 시점 확대 화면을 대조한다.
- 터치가 다른 장치의 `MakeCurrent`보다 먼저 시작했을 때 첫 Began 소유자를 놓치면 앱은 끌기를 받지 못한다. 활성 접점을 소유자 기준으로 처리하고 외부 장치 입력을 먼저 거부했다. 구 중심이 아니라 첫 hit의 잡은 표면을 유지하며 매 이동을 현재 카메라에 재투영해야 보조 회전이 구의 깊이 점프로 바뀌지 않는다.
- 네이티브 저장은 Unity float32가 JSON 숫자로 직렬화된 결과다. 더 높은 정밀도의 fixture quaternion이나 속성 순서를 그대로 비교하면 의미가 같은 시점도 실패한다. 실제 저장 정밀도·필드 순서로 준비하고 1 ULP 변이·ID·소속·계수 변화의 부정 대조는 계속 거부한다.
- Editor가 내보낸 native fixture의 `sourceDirty`는 문자열 `False`다. PowerShell에서 비어 있지 않은 문자열을 `[bool]`로 변환하면 true가 되므로 명시적으로 문자열을 대조하거나 boolean 파싱을 사용한다. 복원 fixture의 `editorEntryMilliseconds`는 입력 상태가 아니라 실행마다 달라지는 측정 출력이므로 입력 동일성 검사는 그 값만 제외하고 원래 측정값은 별도로 보존한다.
- 저장 파일이 준비돼도 앱 화면이 아직 시작되지 않았을 수 있다. 앱 PID와 실제 금색 버튼 화면까지 확인하고 제한 시간 내 화면이 준비되지 않으면 실패한다. 같은 저장을 읽었다는 사실만으로 입력 준비 완료를 주장하지 않는다.
- 파란 자석을 찾는 연결 픽셀 검사는 청록색 먼 언덕까지 붙일 수 있었다. 색 범위·연결 성분과 실제 PNG를 대조했고, 정수 인수를 받는 `Math.Min`에 소수 비율을 넣어 0이 되는 문제는 `1.0` 같은 부동 소수 한도로 고쳤다. PowerShell 좌표 배열에서 쉼표와 산술식을 섞을 때는 각 좌표를 괄호로 감싼다.
- 새 시점 보조 중 500ms의 보간 swipe는 오래된 화면 좌표를 계속 사용할 수 있다. 현재 투영으로 DOWN·한 MOVE·700ms 정지·UP을 보내 실제 저장과 접촉을 검사했다. 원래 낮은 구의 직선 경로가 큰 장식에 막히면 실제 위쪽 우회와 저장 후 재투영을 사용한다. 각도 간격이 큰 회전은 좁은 깊이 접촉 창을 건너뛰므로 20px로 실제 14px 끌기 문턱을 넘은 뒤 같은 접점을 8px 최종 이동량으로 되돌리는 작은 수동 회전을 사용했다. Stage18의 약 1.9846도 실제 저장 변화는 별도 경계 재현이며 정상 30개 진행을 대신하지 않는다.
- 다른 구의 구체만 확인하는 투영 검사는 앞 소품의 첫 hit를 알 수 없다. 실제 자석 위치가 그대로이고 수동 시점만 바뀐 시도는 성공한 끌기로 세지 않는다. 현재 저장·화면으로 실제 입력 종류를 구분하고 다시 찾으며, 구가 이동한 결과에는 정확한 ID·묶음의 동일 이동·다른 구 불변·수동 시점 보존·실제 3D 접촉 검사를 유지한다.
- 정확히 같은 보드로 끝난 놓기는 합체가 아니다. 전체 저장도 변하지 않았음을 확인한 뒤 실제 상승 우회를 재시도하고 새 저장으로 투영을 갱신한다. 우회에서도 계수·다른 슬롯·완료·시범 기록, 원래 ID·묶음 모양·상대 위치·수동 시점과 실제 접촉 검사를 유지한다. 탐색 상한이나 접촉 허용 오차를 늘려 실패를 합격으로 바꾸지 않는다. 원문 실패 배치를 주입한 부분 재현과 새 저장으로 수행한 정상 30개 진행은 별도 증거다.
- 새 나무를 360도 둘레에 놓은 첫 배치는 일부 초기 자석·숫자·상단 UI를 가렸다. 초기 배치를 바꾸지 않고 뒤·옆으로 나무를 옮겼다. 30개 보드·두 가로 비율에서 구 346개·숫자 174개·상단 UI 표본 720개의 새 나무 첫 hit 가림이 330건에서 0건으로 줄었다. 원래 자석끼리의 겹침이나 아치의 탐색 역할을 모든 시점 무가림으로 확대하지 않는다.
- 최대 10개 자석의 자원 비교는 같은 AVD·카메라·수량·개별/한 묶음 상태, 8초 예열 뒤 20초 요청한 조용한 화면에서 수행했다. FPS와 PSS는 실제 화면 프레임·메모리 원문을 파싱한다. P90/P99는 histogram 구간 상한의 추정이며 입력 지연이 아니다. Editor Render 시간·전체 로드 texture memory를 Android FPS로 환산하지 않는다.
- 정적 폰트는 전체 한글 유니코드를 담는 것이 아니다. 새 안내 ‘친구를 놀이터로 다시 보냈어요.’, ‘친구가 놀이터에 들어가지 못해서 처음부터 다시 시작해요.’, ‘지금은 시작하지 못했어요. 다시 해볼게요.’를 포함해 실제 사용하는 132 glyph가 승인 atlas에 있는지 확인했다. 안내 음성을 새로 생성하지 않았다.
식생을 모든 둘레 지점에 반복하면 승인 원본을 바꾸지 않아도 메시 인스턴스 비용이 커진다. 46개 경계 지점의 수평 위치·회전·크기를 유지하면서 일부 꽃·풀을 승인 자갈로 바꾸고 내부 식생 반복 수만 줄였다. 대표 여섯 번호의 환경 FBX 삼각형 합계는 이전 개선 배치 대비22~47% 줄었다. 제출 GPU 삼각형이나 FPS가 아니다. 서로 다른 날짜·호스트 부하에서 얻은 여섯 Editor Camera.Render CPU 중앙값 중 하나는 상승했으므로 전체 성능 향상이나 인과효과로 일반화하지 않는다.