607 lines
18 KiB
JSON
607 lines
18 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"slug": "trial-of-the-champion",
|
|
"title": "Trial of the Champion",
|
|
"mapId": 650,
|
|
"status": "green",
|
|
"environment": {
|
|
"schemaVersion": 1,
|
|
"id": "manastorm:assets:650",
|
|
"mapId": 650,
|
|
"location": "Trial of the Champion",
|
|
"visual": [
|
|
{
|
|
"id": "visual",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/visual.glb",
|
|
"checksum": "1b17fb35654a8fc2bd224add65acc0b61efd9d42c529a94b7431a52e92fb4f67",
|
|
"byteLength": 9108480,
|
|
"triangleCount": 334379,
|
|
"compression": "meshopt+ktx2",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "blender-conversion-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/staging/environment/conversion-report.json",
|
|
"sourceFiles": [
|
|
"adt_28_28.obj",
|
|
"adt_28_29.obj",
|
|
"adt_28_30.obj",
|
|
"adt_28_31.obj",
|
|
"adt_29_28.obj",
|
|
"adt_29_29.obj",
|
|
"adt_29_30.obj",
|
|
"adt_29_31.obj",
|
|
"adt_30_28.obj",
|
|
"adt_30_29.obj",
|
|
"adt_30_30.obj",
|
|
"adt_30_31.obj",
|
|
"adt_31_28.obj",
|
|
"adt_31_29.obj",
|
|
"adt_31_30.obj",
|
|
"adt_31_31.obj"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"collision": [
|
|
{
|
|
"id": "collision-000",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/collision-000.glb",
|
|
"checksum": "ed75a335eaea33054eb8860216aecbc18d91b5ad223c8b8ccde81062ad989b3e",
|
|
"byteLength": 239188,
|
|
"triangleCount": 65488,
|
|
"compression": "meshopt",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "blender-conversion-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/staging/environment/conversion-report.json",
|
|
"sourceFiles": [
|
|
"adt_28_28.obj",
|
|
"adt_28_29.obj",
|
|
"adt_28_30.obj",
|
|
"adt_28_31.obj",
|
|
"adt_29_28.obj",
|
|
"adt_29_29.obj",
|
|
"adt_29_30.obj",
|
|
"adt_29_31.obj",
|
|
"adt_30_28.obj",
|
|
"adt_30_29.obj",
|
|
"adt_30_30.obj",
|
|
"adt_30_31.obj",
|
|
"adt_31_28.obj",
|
|
"adt_31_29.obj",
|
|
"adt_31_30.obj",
|
|
"adt_31_31.obj"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "collision-001",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/collision-001.glb",
|
|
"checksum": "b9b074479057f0bf609001e3a4918d90dbe43d0a85c37ab892a6eb1e27504280",
|
|
"byteLength": 979852,
|
|
"triangleCount": 72167,
|
|
"compression": "meshopt",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "blender-conversion-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/staging/environment/conversion-report.json",
|
|
"sourceFiles": [
|
|
"adt_28_28.obj",
|
|
"adt_28_29.obj",
|
|
"adt_28_30.obj",
|
|
"adt_28_31.obj",
|
|
"adt_29_28.obj",
|
|
"adt_29_29.obj",
|
|
"adt_29_30.obj",
|
|
"adt_29_31.obj",
|
|
"adt_30_28.obj",
|
|
"adt_30_29.obj",
|
|
"adt_30_30.obj",
|
|
"adt_30_31.obj",
|
|
"adt_31_28.obj",
|
|
"adt_31_29.obj",
|
|
"adt_31_30.obj",
|
|
"adt_31_31.obj"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "collision-002",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/collision-002.glb",
|
|
"checksum": "4c2a0284a33930f41214713b9246f5b164f864c594bd545d62ca705f19e6f522",
|
|
"byteLength": 298392,
|
|
"triangleCount": 87954,
|
|
"compression": "meshopt",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "blender-conversion-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/staging/environment/conversion-report.json",
|
|
"sourceFiles": [
|
|
"adt_28_28.obj",
|
|
"adt_28_29.obj",
|
|
"adt_28_30.obj",
|
|
"adt_28_31.obj",
|
|
"adt_29_28.obj",
|
|
"adt_29_29.obj",
|
|
"adt_29_30.obj",
|
|
"adt_29_31.obj",
|
|
"adt_30_28.obj",
|
|
"adt_30_29.obj",
|
|
"adt_30_30.obj",
|
|
"adt_30_31.obj",
|
|
"adt_31_28.obj",
|
|
"adt_31_29.obj",
|
|
"adt_31_30.obj",
|
|
"adt_31_31.obj"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "collision-003",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/collision-003.glb",
|
|
"checksum": "653be0261418bec25c1a0d9ecff0d0a179dd2e32b4d4d811fa2267645932a0fe",
|
|
"byteLength": 290876,
|
|
"triangleCount": 82319,
|
|
"compression": "meshopt",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "blender-conversion-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/staging/environment/conversion-report.json",
|
|
"sourceFiles": [
|
|
"adt_28_28.obj",
|
|
"adt_28_29.obj",
|
|
"adt_28_30.obj",
|
|
"adt_28_31.obj",
|
|
"adt_29_28.obj",
|
|
"adt_29_29.obj",
|
|
"adt_29_30.obj",
|
|
"adt_29_31.obj",
|
|
"adt_30_28.obj",
|
|
"adt_30_29.obj",
|
|
"adt_30_30.obj",
|
|
"adt_30_31.obj",
|
|
"adt_31_28.obj",
|
|
"adt_31_29.obj",
|
|
"adt_31_30.obj",
|
|
"adt_31_31.obj"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"navigation": {
|
|
"id": "navigation",
|
|
"url": "/assets/game/manastorm/650-argenttournamentdungeon/navigation.glb",
|
|
"checksum": "03d0ee92b05bc92d15a7e7c717bb97c90e7262a254a94b921f1e1c5ed6787439",
|
|
"byteLength": 1610632,
|
|
"triangleCount": 128834,
|
|
"compression": "meshopt",
|
|
"transform": {
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"provenance": {
|
|
"kind": "recast-navigation-report",
|
|
"report": "dungeon-pipeline/work/trial-of-the-champion/recast-report.json",
|
|
"collisionChunkIds": [
|
|
"collision-000",
|
|
"collision-001",
|
|
"collision-002",
|
|
"collision-003"
|
|
],
|
|
"collisionInputPaths": [
|
|
"dungeon-pipeline/work/trial-of-the-champion/staging/environment/trial-of-the-champion-collision-000.glb",
|
|
"dungeon-pipeline/work/trial-of-the-champion/staging/environment/trial-of-the-champion-collision-001.glb",
|
|
"dungeon-pipeline/work/trial-of-the-champion/staging/environment/trial-of-the-champion-collision-002.glb",
|
|
"dungeon-pipeline/work/trial-of-the-champion/staging/environment/trial-of-the-champion-collision-003.glb"
|
|
]
|
|
}
|
|
},
|
|
"transform": {
|
|
"fromWow": "three(x,y,z)=(-wow.x,wow.z,wow.y)",
|
|
"position": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"rotation": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"scale": 1
|
|
},
|
|
"anchors": [
|
|
{
|
|
"id": "player-provisional-main-component",
|
|
"kind": "player",
|
|
"position": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"sourcePosition": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"navmeshDistance": 0,
|
|
"provenance": "authored",
|
|
"source": "Geometry-derived provisional Recast component anchor.",
|
|
"note": "Provisional projected entrance."
|
|
},
|
|
{
|
|
"id": "trash-provisional-main-component",
|
|
"kind": "trash",
|
|
"position": [
|
|
1311.295532,
|
|
497.643372,
|
|
708.500671
|
|
],
|
|
"sourcePosition": [
|
|
1311.295532,
|
|
497.643372,
|
|
708.500671
|
|
],
|
|
"navmeshDistance": 0,
|
|
"provenance": "authored",
|
|
"source": "Geometry-derived provisional Recast component anchor.",
|
|
"note": "Provisional projected trash anchor."
|
|
},
|
|
{
|
|
"id": "boss-provisional-main-component",
|
|
"kind": "boss",
|
|
"position": [
|
|
1954.501343,
|
|
444.543365,
|
|
807.818542
|
|
],
|
|
"sourcePosition": [
|
|
1954.501343,
|
|
444.543365,
|
|
807.818542
|
|
],
|
|
"navmeshDistance": 0,
|
|
"provenance": "authored",
|
|
"source": "Geometry-derived provisional Recast component anchor.",
|
|
"note": "Provisional projected boss anchor."
|
|
},
|
|
{
|
|
"id": "portal-provisional-main-component",
|
|
"kind": "portal",
|
|
"position": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"sourcePosition": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"navmeshDistance": 0,
|
|
"provenance": "authored",
|
|
"source": "Reuses the provisional player anchor for the stage exit.",
|
|
"note": "Provisional until portal placement is playtested."
|
|
},
|
|
{
|
|
"id": "resurrection-provisional-main-component",
|
|
"kind": "resurrection",
|
|
"position": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"sourcePosition": [
|
|
935.795532,
|
|
400.893341,
|
|
727.700684
|
|
],
|
|
"navmeshDistance": 0,
|
|
"provenance": "authored",
|
|
"source": "Reuses the provisional player anchor as a safe navigation fallback.",
|
|
"note": "Provisional until resurrection placement is playtested."
|
|
}
|
|
],
|
|
"review": {
|
|
"anchors": "provisional",
|
|
"warnings": [
|
|
"The Recast result has 1844 connected components; provisional anchors use the largest component satisfying maximum-horizontal-span:1600, with 27,958 triangles (the largest overall component has 27,958).",
|
|
"Entrance, boss, portal, and resurrection semantics require encounter-data and playtest review.",
|
|
"No ADT liquid geometry was reconstructed; visual review is required.",
|
|
"Normalized 32 ADT placement containers to Blender Z-up before glTF export.",
|
|
"Omitted 8 architectural sources with no collision triangles.",
|
|
"Environment geometry is sourced from the installed Project Epoch 3.3.5a client.",
|
|
"Population, creature spells, patrols, and encounter credit identities are sourced from the pinned AzerothCore world snapshot."
|
|
]
|
|
},
|
|
"source": {
|
|
"clientSnapshot": "project-epoch-installed-client",
|
|
"mapDirectory": "ArgentTournamentDungeon",
|
|
"checksums": {}
|
|
}
|
|
},
|
|
"creatureModels": {
|
|
"30188": {
|
|
"url": "/assets/game/dungeons/trial-of-the-champion/creatures/display-26838-animated.glb",
|
|
"rotationY": -1.5707963267948966,
|
|
"groundOffset": 0.0007,
|
|
"labelHeight": 2.478,
|
|
"markerRadius": 0.65,
|
|
"displayId": 26838,
|
|
"checksum": "23af77a23c81db0614774dec3ee542c02e451a387bfba35f5cc9aa59db2a44dc",
|
|
"byteLength": 648356,
|
|
"animationClips": 8,
|
|
"animations": {
|
|
"stand": true,
|
|
"walk": true,
|
|
"run": true,
|
|
"attack": true,
|
|
"cast": true,
|
|
"hit": true,
|
|
"death": true
|
|
},
|
|
"sourceAnimationClips": 151,
|
|
"animationOptimization": {
|
|
"policy": "wow-creature-runtime-v1",
|
|
"removedClips": 143
|
|
},
|
|
"missingAnimationSemantics": [],
|
|
"meshOptimization": {
|
|
"policy": "wow-creature-material-join-v1",
|
|
"sourceDrawCalls": 61,
|
|
"runtimeDrawCalls": 2,
|
|
"savedDrawCalls": 59
|
|
},
|
|
"textureCompression": {
|
|
"policy": "ktx2-creature-v1",
|
|
"color": "ETC1S quality 180",
|
|
"data": "UASTC level 2, RDO lambda 1, Zstandard 18",
|
|
"textureCount": 2,
|
|
"ktx2Textures": 2,
|
|
"fallbackTextures": 0
|
|
}
|
|
},
|
|
"35451": {
|
|
"url": "/assets/game/dungeons/trial-of-the-champion/creatures/display-29837-animated.glb",
|
|
"rotationY": -1.5707963267948966,
|
|
"groundOffset": 0.0051,
|
|
"labelHeight": 5.291,
|
|
"markerRadius": 0.7796,
|
|
"displayId": 29837,
|
|
"checksum": "ba1e01c90261502ca72d20d8ffe0ad9e5ed18e72ad46ff608cbf47abcdbe00c7",
|
|
"byteLength": 604848,
|
|
"animationClips": 8,
|
|
"animations": {
|
|
"stand": true,
|
|
"walk": true,
|
|
"run": true,
|
|
"attack": true,
|
|
"cast": true,
|
|
"hit": true,
|
|
"death": true
|
|
},
|
|
"sourceAnimationClips": 148,
|
|
"animationOptimization": {
|
|
"policy": "wow-creature-runtime-v1",
|
|
"removedClips": 140
|
|
},
|
|
"missingAnimationSemantics": [],
|
|
"meshOptimization": {
|
|
"policy": "wow-creature-material-join-v1",
|
|
"sourceDrawCalls": 53,
|
|
"runtimeDrawCalls": 3,
|
|
"savedDrawCalls": 50
|
|
},
|
|
"textureCompression": {
|
|
"policy": "ktx2-creature-v1",
|
|
"color": "ETC1S quality 180",
|
|
"data": "UASTC level 2, RDO lambda 1, Zstandard 18",
|
|
"textureCount": 3,
|
|
"ktx2Textures": 3,
|
|
"fallbackTextures": 0
|
|
}
|
|
},
|
|
"35569": {
|
|
"url": "/assets/game/dungeons/trial-of-the-champion/creatures/display-28637-animated.glb",
|
|
"rotationY": -1.5707963267948966,
|
|
"groundOffset": 0.0013,
|
|
"labelHeight": 2.5876,
|
|
"markerRadius": 0.65,
|
|
"displayId": 28637,
|
|
"checksum": "426798727437d18494112bafab69c992a07bbbb652e78a9f890ec8f6a871931d",
|
|
"byteLength": 826316,
|
|
"animationClips": 8,
|
|
"animations": {
|
|
"stand": true,
|
|
"walk": true,
|
|
"run": true,
|
|
"attack": true,
|
|
"cast": true,
|
|
"hit": true,
|
|
"death": true
|
|
},
|
|
"sourceAnimationClips": 147,
|
|
"animationOptimization": {
|
|
"policy": "wow-creature-runtime-v1",
|
|
"removedClips": 139
|
|
},
|
|
"missingAnimationSemantics": [],
|
|
"meshOptimization": {
|
|
"policy": "wow-creature-material-join-v1",
|
|
"sourceDrawCalls": 65,
|
|
"runtimeDrawCalls": 3,
|
|
"savedDrawCalls": 62
|
|
},
|
|
"textureCompression": {
|
|
"policy": "ktx2-creature-v1",
|
|
"color": "ETC1S quality 180",
|
|
"data": "UASTC level 2, RDO lambda 1, Zstandard 18",
|
|
"textureCount": 3,
|
|
"ktx2Textures": 3,
|
|
"fallbackTextures": 0
|
|
}
|
|
},
|
|
"35571": {
|
|
"url": "/assets/game/dungeons/trial-of-the-champion/creatures/display-28597-animated.glb",
|
|
"rotationY": -1.5707963267948966,
|
|
"groundOffset": 0.0587,
|
|
"labelHeight": 2.9703,
|
|
"markerRadius": 0.7397,
|
|
"displayId": 28597,
|
|
"checksum": "f4f426e3ae018083139acf15110e22c9e24c19299d383ec61979da67bcc686c3",
|
|
"byteLength": 594080,
|
|
"animationClips": 8,
|
|
"animations": {
|
|
"stand": true,
|
|
"walk": true,
|
|
"run": true,
|
|
"attack": true,
|
|
"cast": true,
|
|
"hit": true,
|
|
"death": true
|
|
},
|
|
"sourceAnimationClips": 145,
|
|
"animationOptimization": {
|
|
"policy": "wow-creature-runtime-v1",
|
|
"removedClips": 137
|
|
},
|
|
"missingAnimationSemantics": [],
|
|
"meshOptimization": {
|
|
"policy": "wow-creature-material-join-v1",
|
|
"sourceDrawCalls": 74,
|
|
"runtimeDrawCalls": 2,
|
|
"savedDrawCalls": 72
|
|
},
|
|
"textureCompression": {
|
|
"policy": "ktx2-creature-v1",
|
|
"color": "ETC1S quality 180",
|
|
"data": "UASTC level 2, RDO lambda 1, Zstandard 18",
|
|
"textureCount": 2,
|
|
"ktx2Textures": 2,
|
|
"fallbackTextures": 0
|
|
}
|
|
},
|
|
"35572": {
|
|
"url": "/assets/game/dungeons/trial-of-the-champion/creatures/display-28587-animated.glb",
|
|
"rotationY": -1.5707963267948966,
|
|
"groundOffset": 0.0081,
|
|
"labelHeight": 3.4865,
|
|
"markerRadius": 0.8094,
|
|
"displayId": 28587,
|
|
"checksum": "736da82feac2627aa54d9aea647cc7b3dcae130eff93b7ac01a46ace189cc324",
|
|
"byteLength": 620120,
|
|
"animationClips": 8,
|
|
"animations": {
|
|
"stand": true,
|
|
"walk": true,
|
|
"run": true,
|
|
"attack": true,
|
|
"cast": true,
|
|
"hit": true,
|
|
"death": true
|
|
},
|
|
"sourceAnimationClips": 144,
|
|
"animationOptimization": {
|
|
"policy": "wow-creature-runtime-v1",
|
|
"removedClips": 136
|
|
},
|
|
"missingAnimationSemantics": [],
|
|
"meshOptimization": {
|
|
"policy": "wow-creature-material-join-v1",
|
|
"sourceDrawCalls": 63,
|
|
"runtimeDrawCalls": 3,
|
|
"savedDrawCalls": 60
|
|
},
|
|
"textureCompression": {
|
|
"policy": "ktx2-creature-v1",
|
|
"color": "ETC1S quality 180",
|
|
"data": "UASTC level 2, RDO lambda 1, Zstandard 18",
|
|
"textureCount": 3,
|
|
"ktx2Textures": 3,
|
|
"fallbackTextures": 0
|
|
}
|
|
}
|
|
},
|
|
"counts": {
|
|
"creatureEntries": 5,
|
|
"creatureDisplays": 5,
|
|
"bosses": 5,
|
|
"spawns": 0
|
|
},
|
|
"provenance": {
|
|
"recipe": "dungeon-pipeline/recipes/trial-of-the-champion.json",
|
|
"sourceSnapshot": "dungeon-pipeline/work/trial-of-the-champion/source-snapshot.json",
|
|
"runtimeDraft": "dungeon-pipeline/work/trial-of-the-champion/runtime-draft.json",
|
|
"creatureRecipe": "dungeon-pipeline/work/trial-of-the-champion/creature-export.recipe.json"
|
|
}
|
|
}
|