docs: 승인 모델 채택과 최종 검증 기록
This commit is contained in:
@@ -0,0 +1,584 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "APPROVED_MODELS_ADOPTED_VERIFIED_PRODUCT_CANDIDATE",
|
||||
"recordedKstDate": "2026-10-09",
|
||||
"scope": "사용자 승인 바이트와 실제 Unity 채택을 연결한다. 제품 전체의 새 사용자 최종 승인은 별도이며 원본 후보 이력을 덮어쓰지 않는다.",
|
||||
"approval": {
|
||||
"path": "artifacts/verification/VisualUpgrade/ModelReview/user-approval.json",
|
||||
"sha256": "b539d582aa77d032918bbb580d10d2374f65be4bdd6868432a84ed1d23a46bc5",
|
||||
"userResponse": "승인합니다",
|
||||
"confirmedUtc": "2026-10-08T14:05:56.585939+00:00",
|
||||
"approvedFileCount": 25,
|
||||
"reviewPacket": {
|
||||
"path": "artifacts/verification/VisualUpgrade/ModelReview/review-packet.json",
|
||||
"sha256": "4787e5679d1fe940060a889ffee42020258587ffb19eff32696ea6fc2f48cc99"
|
||||
}
|
||||
},
|
||||
"approvedFiles": [
|
||||
{
|
||||
"kind": "BLENDER_SOURCE",
|
||||
"repositoryRelativePath": "SourceAssets/Models/Heroes/MagneticKnight.blend",
|
||||
"bytes": 1833499,
|
||||
"sha256": "7ce1272dfe861aee986609cdb899f0edf8b8f2f0f17269c0eda472c8aa90ee3a"
|
||||
},
|
||||
{
|
||||
"kind": "FBX",
|
||||
"repositoryRelativePath": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/HeroBody.fbx",
|
||||
"bytes": 60076,
|
||||
"sha256": "56f3301176c612ebeab3fdaaba5c019674beeb0f727f97ed27dd67e32ff50a40"
|
||||
},
|
||||
{
|
||||
"kind": "FBX",
|
||||
"repositoryRelativePath": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/KnightEquipment.fbx",
|
||||
"bytes": 222764,
|
||||
"sha256": "a8059a020e79e080635e7326bb91576010cad10c60ee931d95536d47fe76e61c"
|
||||
}
|
||||
],
|
||||
"historicalProvenance": {
|
||||
"path": "SourceAssets/Models/Heroes/provenance.json",
|
||||
"bytes": 6298,
|
||||
"sha256": "16d9e14f9e3ee66dce4b16737e1b1e3380fb0ffff35e322d24508cef42d52851"
|
||||
},
|
||||
"authoringTool": {
|
||||
"name": "Blender",
|
||||
"version": "5.2.2 LTS",
|
||||
"script": {
|
||||
"path": "tools/models/build_hero.py",
|
||||
"bytes": 22664,
|
||||
"sha256": "6ac494c6207f2a49804db2b06691519920e28fd1af06224793b341854d63e638"
|
||||
},
|
||||
"frozenToolRecord": {
|
||||
"name": "Blender",
|
||||
"actualVersion": "5.2.2 LTS"
|
||||
},
|
||||
"toolBuildHash": null
|
||||
},
|
||||
"originalPlaygroundHistory": [
|
||||
{
|
||||
"path": "SourceAssets/Models/PlaygroundProps.blend",
|
||||
"bytes": 301307,
|
||||
"sha256": "59f543fc6d3b835fa282eac6459b9ed45ed2617052b7f1d2184895eb978b5775"
|
||||
},
|
||||
{
|
||||
"path": "SourceAssets/Models/provenance.json",
|
||||
"bytes": 3848,
|
||||
"sha256": "4429c76007f59a6f3a2243204cae2b4ab0ab3d8d6fbf2cdaae9da01df50e9038"
|
||||
}
|
||||
],
|
||||
"unity": {
|
||||
"productSourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"applyScript": {
|
||||
"path": "Assets/MagnetismHeroes/Editor/VisualUpgradeAssets.cs",
|
||||
"bytes": 17527,
|
||||
"sha256": "8996b23a4da448562c34bd681529414e87fcaa809fc62c563d135f8c61dc2569",
|
||||
"guid": "40789cbe0397f8745bff78d14a544113",
|
||||
"metaSha256": "f017c6e684dd15cd8d1a3682eea8ff6f1b0e4ab75f04087c092484cd19a97821"
|
||||
},
|
||||
"imports": [
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/HeroBody.fbx",
|
||||
"bytes": 60076,
|
||||
"sha256": "56f3301176c612ebeab3fdaaba5c019674beeb0f727f97ed27dd67e32ff50a40",
|
||||
"guid": "a1145d71b07ba34489a0290583fbe4ee",
|
||||
"metaSha256": "808a80e2c555d64c82fc42d09809a3d93313b305e268e12a7fa524504c1e4d69",
|
||||
"rootEuler": {
|
||||
"x": 89.98021697998047,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
"meshCount": 1,
|
||||
"triangleCount": 3968,
|
||||
"globalScale": 1,
|
||||
"bakeAxisConversion": true,
|
||||
"rootRotationPreserved": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/KnightEquipment.fbx",
|
||||
"bytes": 222764,
|
||||
"sha256": "a8059a020e79e080635e7326bb91576010cad10c60ee931d95536d47fe76e61c",
|
||||
"guid": "ccc4dc45d61bc64499d7c0e1591e1b85",
|
||||
"metaSha256": "f4a1b0bc232425b5e678d6d90e65f76510644d55c83fe9189fe7db0eaf46222f",
|
||||
"rootEuler": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
"meshCount": 22,
|
||||
"triangleCount": 11684,
|
||||
"globalScale": 1,
|
||||
"bakeAxisConversion": true,
|
||||
"rootRotationPreserved": true
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Hero_CyanSatin.mat",
|
||||
"bytes": 3919,
|
||||
"sha256": "1c8727d6437de82f5842e1acda727f65196c4d92355857c168e62a68a37abbab",
|
||||
"guid": "21b713eed8aa73146a39c8501b952ef9",
|
||||
"metaSha256": "a171f8daa3b2b70fdb0141bf5c17f152c0468822411fbf87fde440eea2dd463c",
|
||||
"sourceMaterial": "Hero_CyanSatin",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.17,
|
||||
0.72,
|
||||
0.83
|
||||
],
|
||||
"roughness": 0.48,
|
||||
"smoothness": 0.52,
|
||||
"metallic": 0,
|
||||
"enableInstancing": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Helmet_SilverTint.mat",
|
||||
"bytes": 3919,
|
||||
"sha256": "3aeca0f84d254552a3decf8004d4fbd6909fb26c75509069828605e1f3d9de39",
|
||||
"guid": "6bc3d158d578da846bebebd6363bd204",
|
||||
"metaSha256": "89a1606ce98219701647a35e393456945882a03011a45bfbc218b2be1e454c30",
|
||||
"sourceMaterial": "Helmet_SilverTint",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.72,
|
||||
0.85,
|
||||
0.86
|
||||
],
|
||||
"roughness": 0.39,
|
||||
"smoothness": 0.61,
|
||||
"metallic": 0.18,
|
||||
"enableInstancing": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Ceramic_WarmCream.mat",
|
||||
"bytes": 3922,
|
||||
"sha256": "04f690db82d0cf505e4822f8f309c2905367b1fa83670f5422ab952f13b1a559",
|
||||
"guid": "dad2eea71471abc488393ffb4dc0cc6f",
|
||||
"metaSha256": "e871bbbbcedbf57be1ebe507c40b13739d3e2d82b249efad0afc0fe577199692",
|
||||
"sourceMaterial": "Ceramic_WarmCream",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.97,
|
||||
0.92,
|
||||
0.78
|
||||
],
|
||||
"roughness": 0.43,
|
||||
"smoothness": 0.5700000000000001,
|
||||
"metallic": 0,
|
||||
"enableInstancing": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Trim_HoneyGold.mat",
|
||||
"bytes": 3928,
|
||||
"sha256": "d496af29ccbcfa9d3991818801535c68d21f549ff170978ef79627c21907f39f",
|
||||
"guid": "50c03e94de1db4a4daf15b060866ac70",
|
||||
"metaSha256": "102520158a20f5541cd883f1581fb1603f5ec2a0b080e454aa2b09a7bacc5658",
|
||||
"sourceMaterial": "Trim_HoneyGold",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.94,
|
||||
0.71,
|
||||
0.34
|
||||
],
|
||||
"roughness": 0.42,
|
||||
"smoothness": 0.5800000000000001,
|
||||
"metallic": 0.12,
|
||||
"enableInstancing": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Enamel_DeepTeal.mat",
|
||||
"bytes": 3939,
|
||||
"sha256": "d6b422ffa5b6a4e688c8734070a4246967f950b73f7a504732c3a3d4bc863242",
|
||||
"guid": "794c64e2850c3f541981a51bb4314d5e",
|
||||
"metaSha256": "8ead210e4db06ee198df147bbcce864292e502a676d131d45c0089146029f7ef",
|
||||
"sourceMaterial": "Enamel_DeepTeal",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.055,
|
||||
0.4,
|
||||
0.44
|
||||
],
|
||||
"roughness": 0.42,
|
||||
"smoothness": 0.5800000000000001,
|
||||
"metallic": 0,
|
||||
"enableInstancing": true
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Blade_SatinSilver.mat",
|
||||
"bytes": 3918,
|
||||
"sha256": "92c3fa6805b1c6405baf2fdfa113aa7689df1b73571cc9ed782bc6be4d54281b",
|
||||
"guid": "59b7934cb6c96624abd461dad0a6a8f2",
|
||||
"metaSha256": "440fb1197475cc9df36fafcd0c549cd5befb92b19ddbdb3de00e8baad268fc22",
|
||||
"sourceMaterial": "Blade_SatinSilver",
|
||||
"shader": "Universal Render Pipeline/Lit",
|
||||
"baseColorSrgb": [
|
||||
0.85,
|
||||
0.92,
|
||||
0.91
|
||||
],
|
||||
"roughness": 0.4,
|
||||
"smoothness": 0.6,
|
||||
"metallic": 0.2,
|
||||
"enableInstancing": true
|
||||
}
|
||||
],
|
||||
"prefabs": [
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/MagnetFriend.prefab",
|
||||
"bytes": 18184,
|
||||
"sha256": "5e986e01ad9bcd2026e713b62601f92c7d8cfb9febf91d3591a833e38f7b4d46",
|
||||
"guid": "91ae23d420859244686c2c654ab58bf3",
|
||||
"metaSha256": "5e31161dac1026b55ff8b8c40fec85f1acdf7f154efb573036cda67c7e99139b"
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/GroupBadge.prefab",
|
||||
"bytes": 18371,
|
||||
"sha256": "8804ed655c33dddff00f5b060e84ca67c9b91a65fbffb501fc83ada4e1594edc",
|
||||
"guid": "f6475c2f7cafe4441a6f4706a3b2b6a4",
|
||||
"metaSha256": "b76c78e7133454e8bf325948bcbc9f392c96c10fb4eb5a78b01eefac2109c8d7"
|
||||
},
|
||||
{
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/GameApp.prefab",
|
||||
"bytes": 406884,
|
||||
"sha256": "a36a37bc84fe99dd8dc2c0bcf24ee5dfae266dd5da0c1a272caeb7bfbc7fc44c",
|
||||
"guid": "73c3215bc432df740b907a1edefa9ea1",
|
||||
"metaSha256": "248f9572123fca7ee45d9d56358e2e89a67c2a78b4c27cb74c4281170ace1db6"
|
||||
}
|
||||
],
|
||||
"stages": [],
|
||||
"sourceImportEvidence": {
|
||||
"path": "artifacts/verification/VisualUpgrade/UnityApply/source-import.json",
|
||||
"sha256": "4a8788aff69cd30befe5c20d94e63542ee9ad4a102710bfd7c208a8beb14f9a6"
|
||||
},
|
||||
"sourceImportEvidenceScope": "실제 초기 채택 import 기록이다. 현재 제품의 GUID·SHA는 별도로 위에 기록한다.",
|
||||
"colorMapping": "원본 sRGB 값을 URP Lit BaseColor에 연결하고 linearBaseColor를 sRGB 입력으로 재사용하지 않는다. smoothness=1−roughness, metallic은 원본 값이다.",
|
||||
"geometryBoundary": "원본 미터·Z-up 및 FBX -Z forward·Y-up, import scale 1·원래 import root 회전을 유지한다. 승인 메시·원본 재질 바이트를 변경하지 않는다."
|
||||
},
|
||||
"verification": {
|
||||
"finalCompletion": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/completion.json",
|
||||
"sha256": "587b92a7f4f63986bfa32af647bc184745b5b100deeed2b0ca4b7818ac309414"
|
||||
},
|
||||
"editorCaptureDirectory": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture",
|
||||
"previousGameReview": {
|
||||
"path": "artifacts/verification/VisualUpgrade/GameReview/visual-review.json",
|
||||
"sha256": "c1d86277177ae32b891a1b4be4ecb637fe48ecb0785e292ee6a43835206ee6dc"
|
||||
},
|
||||
"previousGameReviewScope": "이전 통합 소스 b4d8854의 검수 이력이며 현재 최종 명령 결과를 대신하지 않는다.",
|
||||
"limitations": "지면 아래 시점의 넓어진 지면 가림은 docs/tracking/findings.md에 기록한다. Editor 비율 캡처·CPU 시간·상주 자원은 Android 실기기 성능이 아니다.",
|
||||
"representativeEditorCaptures": [
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-soft-shadow.json",
|
||||
"sha256": "3b09516098a73d3fb76c7992feaf0123b206472458dacb718f4f21aeef58a1e0"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-soft-shadow.png",
|
||||
"sha256": "3cbe3c75bc6e864a2abf4a4275ca2aafb6f8ad61db8a09a4b7568053ea2e3902"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:03.7926755Z",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"balls": 1,
|
||||
"groups": 1,
|
||||
"equipmentAssemblies": 1,
|
||||
"boardOrigin": "Actual Main daylight with soft shadows",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-soft-shadow.json",
|
||||
"sha256": "43ec85a330d87af485051023ccb75752e1699ac7a9f02da3968577217c6957b3"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-soft-shadow.png",
|
||||
"sha256": "6c1433aa7ddb80f7f08f6477e6254023a8b57ce18168b7a018a65f815fcb722c"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:04.0908702Z",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"balls": 3,
|
||||
"groups": 1,
|
||||
"equipmentAssemblies": 1,
|
||||
"boardOrigin": "Actual Main daylight with soft shadows",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world21-soft-shadow.json",
|
||||
"sha256": "b3f0c277da8218d26854e42f92b64a8d4a82cf5329992cea4c8adf8da470deb1"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world21-soft-shadow.png",
|
||||
"sha256": "a3688b2458fd8551f9b847a78b4f348e70dd7296d85be2437805aee6b8c1314d"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:04.1905928Z",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"balls": 6,
|
||||
"groups": 2,
|
||||
"equipmentAssemblies": 2,
|
||||
"boardOrigin": "Actual Main daylight with soft shadows",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-two-plus-three-phone-default.json",
|
||||
"sha256": "dfdbae399d6dc0671edca533807342cea44ed20d227cc74332eba133e6ca1355"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-two-plus-three-phone-default.png",
|
||||
"sha256": "610a1fd1a25f03a50757a17c7f6f01d463a8b430971aa3d882c2d88fe213ba22"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:05.8152052Z",
|
||||
"width": 2400,
|
||||
"height": 1080,
|
||||
"balls": 5,
|
||||
"groups": 2,
|
||||
"equipmentAssemblies": 2,
|
||||
"boardOrigin": "Validated five-ball 2+3 free-play store fixture; actual Main app/session",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-merged-five-phone-default.json",
|
||||
"sha256": "cca93732bef1a2fb86622411295c4f2a638bd1ed2c96c2ef96ece26d1ee3e95b"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-merged-five-phone-default.png",
|
||||
"sha256": "6c03e9c1d814cc88c28254e5357d98f3c50bde22f2e824da3475c43cf40a3c56"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:06.1027531Z",
|
||||
"width": 2400,
|
||||
"height": 1080,
|
||||
"balls": 5,
|
||||
"groups": 1,
|
||||
"equipmentAssemblies": 1,
|
||||
"boardOrigin": "Actual app/session 2+3 merge from labeled boundary fixture",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-disconnected-split-two-three-tablet-orbitzoom.json",
|
||||
"sha256": "e27b260c70273f1ec68c43bc1aac16e666dc4c494253df0055703610dd908ecd"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-disconnected-split-two-three-tablet-orbitzoom.png",
|
||||
"sha256": "dea0046052f1400a0fd1e2e870b4546d01859c9463178867084c9fe21cd4c173"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:06.5677124Z",
|
||||
"width": 1600,
|
||||
"height": 1000,
|
||||
"balls": 5,
|
||||
"groups": 2,
|
||||
"equipmentAssemblies": 2,
|
||||
"boardOrigin": "Actual app/session split of disconnected five-group endpoints",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-single-groups-phone-default.json",
|
||||
"sha256": "66521c24e42b09e02212409819e35ef30f9c01e39c7fc212722a9ad817413911"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-single-groups-phone-default.png",
|
||||
"sha256": "8f0a22475b6013c58ff5bd9addd285f3927eb94e48aa081f2046eb8c1e276c52"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:08.5003167Z",
|
||||
"width": 2400,
|
||||
"height": 1080,
|
||||
"balls": 10,
|
||||
"groups": 10,
|
||||
"equipmentAssemblies": 10,
|
||||
"boardOrigin": "Validated synthetic Core FreePlay render fixture; session UI remains underlying stage 1",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-one-group-tablet-default.json",
|
||||
"sha256": "54c6f106ead00b1ede9bebdf182b78cbeb66007c50b53583a9d0847c27fa3bf5"
|
||||
},
|
||||
"image": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-one-group-tablet-default.png",
|
||||
"sha256": "3959e9679a5418b96d2b63d1de0479c2b537934dd3e7c5e71357c9f343d8ea54"
|
||||
},
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"utc": "2026-10-08T15:25:08.8364150Z",
|
||||
"width": 1600,
|
||||
"height": 1000,
|
||||
"balls": 10,
|
||||
"groups": 1,
|
||||
"equipmentAssemblies": 1,
|
||||
"boardOrigin": "Validated synthetic Core FreePlay render fixture; session UI remains underlying stage 1",
|
||||
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
|
||||
}
|
||||
],
|
||||
"modelRoundtripEvidence": {
|
||||
"path": "artifacts/verification/VisualUpgrade/ModelReview/integration-verification.json",
|
||||
"sha256": "9dbe2c85a83c5f5098669724a8e0e73e34bda137a5cbe40e08e8c459e0a810ca"
|
||||
},
|
||||
"finalEvidenceAudit": {
|
||||
"path": "artifacts/verification/VisualUpgrade/FinalProduct/documentation-final-evidence-audit.json",
|
||||
"sha256": "778be655b03b0e159dfdc981be368802b39e2c25cc34e54d24761cba0dd3701e"
|
||||
},
|
||||
"actualFinalResults": {
|
||||
"productSourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"phaseExitCodes": {
|
||||
"EditMode": 0,
|
||||
"PlayMode": 0,
|
||||
"AndroidBuild": 0,
|
||||
"AndroidSmoke": 0
|
||||
},
|
||||
"editorTests": {
|
||||
"EditMode": 103,
|
||||
"PlayMode": 52
|
||||
},
|
||||
"androidChecks": 226,
|
||||
"children": [
|
||||
{
|
||||
"suite": "Fresh30",
|
||||
"checks": 151,
|
||||
"exitCode": 0,
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "Fresh 30-stage sequential actual touch progression, no save writes or completion fixtures; separate boundary suites are labelled separately"
|
||||
},
|
||||
{
|
||||
"suite": "FinalBoundary",
|
||||
"checks": 37,
|
||||
"exitCode": 0,
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "Separate native boundaries after real30 completion; deliberate corrupt-file tests labelled, no fabricated completion or board injection"
|
||||
},
|
||||
{
|
||||
"suite": "RapidBoundary",
|
||||
"checks": 39,
|
||||
"exitCode": 0,
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "Separate QA planar collected10 replay20 fixture; real30 source record preserved. Actual offline native11 taps and complete numeric PCM; not fresh progression evidence."
|
||||
},
|
||||
{
|
||||
"suite": "ContentBoundary",
|
||||
"checks": 69,
|
||||
"exitCode": 0,
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "별도 명시 경계 검사. 정상 30단계 진행 수에 합산하지 않는다."
|
||||
}
|
||||
],
|
||||
"smokeStartedUtc": "2026-10-08T15:31:53.7694461Z",
|
||||
"smokeFinishedUtc": "2026-10-08T15:47:20.6303343Z",
|
||||
"androidReport": {
|
||||
"path": "artifacts/verification/Final/android-final-evidence.json",
|
||||
"sha256": "070b33c70925eabebf33c66dfd08daa902ddffaa6591e052c765d7884e22ba8b"
|
||||
},
|
||||
"freshAll30SuccessAndIdsChecked": true,
|
||||
"freshSavePushCommandCount": 0,
|
||||
"failedAttemptsPreserved": [
|
||||
{
|
||||
"phase": "AndroidSmoke",
|
||||
"command": "pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidSmoke -Milestone Final",
|
||||
"startedUtc": "2026-10-08T15:26:38.5225191Z",
|
||||
"finishedUtc": "2026-10-08T15:30:38.1167761Z",
|
||||
"exitCode": 1,
|
||||
"status": "failed",
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"sourceDirty": false,
|
||||
"sourceDirtyEnd": null,
|
||||
"outerLog": "artifacts/verification/VisualUpgrade/FinalProduct/FailedAndroidAttempt1/androidsmoke-outer.log",
|
||||
"evidence": "artifacts/verification/VisualUpgrade/FinalProduct/FailedAndroidAttempt1/Final/androidsmoke-evidence.json",
|
||||
"originalEvidencePath": "C:\\git\\MagnetismHeroes\\artifacts\\verification\\Final\\androidsmoke-evidence.json",
|
||||
"originalOuterLogPath": "C:\\git\\MagnetismHeroes\\artifacts\\verification\\VisualUpgrade\\FinalProduct\\androidsmoke-outer.log"
|
||||
}
|
||||
]
|
||||
},
|
||||
"apkProvenance": {
|
||||
"apk": {
|
||||
"path": "artifacts/android/MagnetismHeroes.apk",
|
||||
"sha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"bytes": 57215937
|
||||
},
|
||||
"installedApk": {
|
||||
"path": "artifacts/verification/Final/Fresh30/installed-base.apk",
|
||||
"sha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea"
|
||||
},
|
||||
"actualClipCount": 44,
|
||||
"voicePayload": {
|
||||
"path": "artifacts/verification/Final/VoicePayload/apk-voice-payload.json",
|
||||
"sha256": "e89d1987d515ab958cc411f299297ccbea9c1a4f4b62c7886d6d7bc17be2a620"
|
||||
},
|
||||
"notices": [
|
||||
{
|
||||
"name": "NotoSansCJK-OFL.txt",
|
||||
"sha256": "88f117575237307bdd86a17ef15e21790fc9a662fe4dfb103ca1ca077f0d9982"
|
||||
},
|
||||
{
|
||||
"name": "TTS-Apache-2.0.txt",
|
||||
"sha256": "7137274bab133744763a3906ace2a13844c2b34635136fc6d4454c25bfd76eda"
|
||||
},
|
||||
{
|
||||
"name": "TTS-model-card.txt",
|
||||
"sha256": "2157466302fcaf8e4979d0505aa4b648ad32468aff98b3e964046db05e574f3c"
|
||||
}
|
||||
]
|
||||
},
|
||||
"actualAndroidAvdCaptures": [
|
||||
{
|
||||
"stage": 1,
|
||||
"image": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-1-enter.png",
|
||||
"sha256": "6eee00ef4b430cb0ad9c697ca24d5ac4fe8de3630f14488e74fe78c25c87a301"
|
||||
},
|
||||
"captureCommands": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-1-enter-commands.json",
|
||||
"sha256": "465c74bd14cb7cef440efd1e9007adb5f0626b4824fdd780cf8c637a0d6c07f5"
|
||||
},
|
||||
"observedUtc": "2026-10-08T15:32:22.2063877Z",
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
|
||||
},
|
||||
{
|
||||
"stage": 11,
|
||||
"image": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-10-next.png",
|
||||
"sha256": "4e64e2ed5706d4571ac43fad55616a457caea934c596a12d437195b13903e905"
|
||||
},
|
||||
"captureCommands": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-10-next-commands.json",
|
||||
"sha256": "b447368b273e8213a3644a1c4afb201597ba884c623d443190d18bbcfb686af5"
|
||||
},
|
||||
"observedUtc": "2026-10-08T15:34:51.7253665Z",
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
|
||||
},
|
||||
{
|
||||
"stage": 21,
|
||||
"image": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-20-next.png",
|
||||
"sha256": "030ca33f9f11da310c2ead3a78b61306eee195a162cec1b8f32c5fda009328ef"
|
||||
},
|
||||
"captureCommands": {
|
||||
"path": "artifacts/verification/Final/Fresh30/stage-20-next-commands.json",
|
||||
"sha256": "4d21313b8c846e97effc65c1bddc94de87c7ab454d94512b2b8f0e56f41b4255"
|
||||
},
|
||||
"observedUtc": "2026-10-08T15:39:44.5484050Z",
|
||||
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
|
||||
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
|
||||
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
|
||||
}
|
||||
],
|
||||
"newFinalProductUserApproval": "별도 최종 사용자 승인 대기이며 모델 승인과 구분한다."
|
||||
},
|
||||
"preservation": "기존 13 FBX·원본·출처, 기존 GUID, 30 비시각 정의·초기 구 위치·ID·수량, 음성 44개·얼굴 6표정·폰트·UI·Mixer·Core·저장을 유지한다.",
|
||||
"fileHashScope": "실제 최종 빌드 저장소 파일 바이트이며 Git 체크아웃의 줄바꿈 차이와 구분한다.",
|
||||
"pathBase": "path와 repositoryRelativePath는 저장소 루트를 기준으로 한다. artifacts 경로는 검증 원문이며 제품 자산이 아니다."
|
||||
}
|
||||
Reference in New Issue
Block a user