create-aura3d 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/showcase-spec-artifacts.d.ts +5 -0
- package/dist/showcase-spec-artifacts.d.ts.map +1 -1
- package/dist/showcase-spec-artifacts.js +11 -2
- package/dist/showcase-spec-artifacts.js.map +1 -1
- package/dist/showcase-spec-asset-pair-composition.d.ts +116 -0
- package/dist/showcase-spec-asset-pair-composition.d.ts.map +1 -0
- package/dist/showcase-spec-asset-pair-composition.js +336 -0
- package/dist/showcase-spec-asset-pair-composition.js.map +1 -0
- package/dist/showcase-spec-compiler.d.ts.map +1 -1
- package/dist/showcase-spec-compiler.js +149 -10
- package/dist/showcase-spec-compiler.js.map +1 -1
- package/dist/showcase-spec-composition-evidence.d.ts +14 -0
- package/dist/showcase-spec-composition-evidence.d.ts.map +1 -0
- package/dist/showcase-spec-composition-evidence.js +123 -0
- package/dist/showcase-spec-composition-evidence.js.map +1 -0
- package/dist/showcase-spec-evidence.js +50 -1
- package/dist/showcase-spec-evidence.js.map +1 -1
- package/dist/showcase-spec-game-geometry-extractor.d.ts +4 -2
- package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/showcase-spec-game-geometry-extractor.js +248 -26
- package/dist/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/showcase-spec-game-geometry-probe.d.ts +20 -0
- package/dist/showcase-spec-game-geometry-probe.d.ts.map +1 -0
- package/dist/showcase-spec-game-geometry-probe.js +16 -0
- package/dist/showcase-spec-game-geometry-probe.js.map +1 -0
- package/dist/showcase-spec-game-replacement-evidence.js +7 -3
- package/dist/showcase-spec-game-replacement-evidence.js.map +1 -1
- package/dist/showcase-spec-game-scene-scale.d.ts +10 -0
- package/dist/showcase-spec-game-scene-scale.d.ts.map +1 -0
- package/dist/showcase-spec-game-scene-scale.js +71 -0
- package/dist/showcase-spec-game-scene-scale.js.map +1 -0
- package/dist/showcase-spec-game-template-evidence.d.ts +10 -0
- package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -1
- package/dist/showcase-spec-game-template-evidence.js +48 -5
- package/dist/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/showcase-spec-gameplay-evidence.js +4 -3
- package/dist/showcase-spec-gameplay-evidence.js.map +1 -1
- package/dist/showcase-spec-parser.d.ts.map +1 -1
- package/dist/showcase-spec-parser.js +3 -0
- package/dist/showcase-spec-parser.js.map +1 -1
- package/dist/showcase-spec-platformer-artifacts.d.ts +1 -0
- package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -1
- package/dist/showcase-spec-platformer-artifacts.js +164 -43
- package/dist/showcase-spec-platformer-artifacts.js.map +1 -1
- package/dist/showcase-spec-racing-artifacts.d.ts +1 -0
- package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -1
- package/dist/showcase-spec-racing-artifacts.js +203 -31
- package/dist/showcase-spec-racing-artifacts.js.map +1 -1
- package/dist/showcase-spec-replacement-candidates.js +2 -1
- package/dist/showcase-spec-replacement-candidates.js.map +1 -1
- package/dist/showcase-spec-types.d.ts +22 -0
- package/dist/showcase-spec-types.d.ts.map +1 -1
- package/package.json +3 -3
- package/templates/animation-channel/package.json +1 -1
- package/templates/animation-studio/package.json +5 -5
- package/templates/character-controller/package.json +3 -3
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/episode-builder/package.json +1 -1
- package/templates/falling-blocks-starter/package.json +1 -1
- package/templates/fighting-game/package.json +1 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/product-viewer/package.json +1 -1
- package/templates/prompt-animation-channel/package.json +1 -1
- package/templates/racing-starter/package.json +1 -1
- package/templates/racing-starter/src/main.ts +1 -1
- package/templates/three-compat-architecture-interior/package.json +1 -1
- package/templates/three-compat-asset-inspector/package.json +1 -1
- package/templates/three-compat-character-viewer/package.json +1 -1
- package/templates/three-compat-custom-threejs-migration/package.json +1 -1
- package/templates/three-compat-large-scene/package.json +1 -1
- package/templates/three-compat-material-authoring/package.json +1 -1
- package/templates/three-compat-postprocess-scene/package.json +1 -1
- package/templates/three-compat-premium-product-viewer/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcase-spec-evidence.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-evidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"showcase-spec-evidence.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { ShowcasePlatformerPlayableSurfaceMap, ShowcaseRacingTrackTopology } from "./showcase-spec-types.js";
|
|
2
|
-
interface ExtractOptions {
|
|
2
|
+
export interface ExtractOptions {
|
|
3
3
|
readonly projectDir?: string;
|
|
4
4
|
readonly renderedProbePath?: string;
|
|
5
5
|
readonly routeOverlayPath?: string;
|
|
6
|
+
readonly characterAssetId?: string;
|
|
7
|
+
readonly characterScaleRatio?: number;
|
|
8
|
+
readonly characterFootprintWidth?: number;
|
|
6
9
|
}
|
|
7
10
|
export interface GeometryExtractionSuccess<T> {
|
|
8
11
|
readonly ok: true;
|
|
@@ -17,5 +20,4 @@ export interface GeometryExtractionFailure {
|
|
|
17
20
|
export type GeometryExtractionResult<T> = GeometryExtractionSuccess<T> | GeometryExtractionFailure;
|
|
18
21
|
export declare function extractRacingTrackTopologyFromAsset(assetId: string, options?: ExtractOptions): GeometryExtractionResult<ShowcaseRacingTrackTopology>;
|
|
19
22
|
export declare function extractPlatformerPlayableSurfaceMapFromAsset(assetId: string, options?: ExtractOptions): GeometryExtractionResult<ShowcasePlatformerPlayableSurfaceMap>;
|
|
20
|
-
export {};
|
|
21
23
|
//# sourceMappingURL=showcase-spec-game-geometry-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcase-spec-game-geometry-extractor.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-game-geometry-extractor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,
|
|
1
|
+
{"version":3,"file":"showcase-spec-game-geometry-extractor.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-game-geometry-extractor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAkJnG,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,2BAA2B,CAAC,CA2EvD;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,wBAAwB,CAAC,oCAAoC,CAAC,CAiGhE"}
|
|
@@ -7,6 +7,8 @@ const IDENTITY_MATRIX = [
|
|
|
7
7
|
0, 0, 1, 0,
|
|
8
8
|
0, 0, 0, 1
|
|
9
9
|
];
|
|
10
|
+
const RACING_CERTIFIED_GAME_UNITS_PER_SECOND = 1.1;
|
|
11
|
+
const RACING_MAX_AUTHORED_LAP_SECONDS = 60;
|
|
10
12
|
const ROAD_PATTERN = /\b(asph|asphalt|road|track|circuit|route|lane|kerb|curb)\b/i;
|
|
11
13
|
const ROAD_EXCLUDE_PATTERN = /\b(grass|water|lake|mount|terrain|wall|fence|tree|building|sky)\b/i;
|
|
12
14
|
const PLATFORM_PATTERN = /\b(platform|walkway|ground|floor|level|ledge|bridge|runway|road|grass|rock|terrain)\b/i;
|
|
@@ -19,6 +21,11 @@ const PLATFORMER_MIN_LEVEL_LENGTH = 12;
|
|
|
19
21
|
const PLATFORMER_AMBIGUOUS_COLUMN_STEP = 0.5;
|
|
20
22
|
const PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES = 3;
|
|
21
23
|
const PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE = 1.5;
|
|
24
|
+
const PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH = 0.72;
|
|
25
|
+
const PLATFORMER_MAX_HORIZONTAL_TRAVERSAL_GAP = 8;
|
|
26
|
+
const PLATFORMER_MAX_UPWARD_TRAVERSAL_STEP = 2.5;
|
|
27
|
+
const PLATFORMER_MAX_RETAINED_MESH_SURFACES = 16;
|
|
28
|
+
const PLATFORMER_DECORATIVE_PATTERN = /\b(column|pillar|tower|decor|background|backdrop)\b/i;
|
|
22
29
|
export function extractRacingTrackTopologyFromAsset(assetId, options = {}) {
|
|
23
30
|
const geometry = loadAssetGeometry(assetId, options.projectDir ?? process.cwd());
|
|
24
31
|
if (!geometry.ok)
|
|
@@ -51,7 +58,7 @@ export function extractRacingTrackTopologyFromAsset(assetId, options = {}) {
|
|
|
51
58
|
width: centerline[index % centerline.length]?.width ?? averageRoadWidth(roadSize)
|
|
52
59
|
})),
|
|
53
60
|
lapLengthMeters: round3(lapLength),
|
|
54
|
-
estimatedLapSeconds: Math.max(30, Math.ceil(lapLength /
|
|
61
|
+
estimatedLapSeconds: Math.min(RACING_MAX_AUTHORED_LAP_SECONDS, Math.max(30, Math.ceil(lapLength / RACING_CERTIFIED_GAME_UNITS_PER_SECOND))),
|
|
55
62
|
confidence: 0.76,
|
|
56
63
|
modelAlignment: {
|
|
57
64
|
source: "asset-mesh-extracted",
|
|
@@ -103,13 +110,22 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
|
|
|
103
110
|
if (horizontalCandidates.length === 0) {
|
|
104
111
|
return failure([`asset-extraction:platformer-horizontal-surfaces-not-found:${assetId}`], [`${assetId} has ${surfaceSelection.primitives.length} candidate primitive(s), but none are flat enough for playable surfaces.`]);
|
|
105
112
|
}
|
|
106
|
-
const
|
|
113
|
+
const prepared = preparePlatformerSurfacePrimitives(assetId, horizontalCandidates, surfaceBounds, platformerCharacterFootprintWidth(options, options.projectDir ?? process.cwd()));
|
|
114
|
+
if (prepared.blockers.length > 0) {
|
|
115
|
+
return failure(prepared.blockers, [
|
|
116
|
+
`${assetId} produced ${horizontalCandidates.length} flat candidate primitive(s), but no retained depth-coherent traversable chain met the public platformer geometry floor.`,
|
|
117
|
+
...prepared.reasons,
|
|
118
|
+
...surfaceSelection.reasons
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
const surfaces = createPlayableSurfaces(prepared.primitives, surfaceBounds);
|
|
107
122
|
const meshPlayableSurfaces = meshBoundPlayableSurfaces(surfaces);
|
|
108
123
|
const qualityBlockers = platformerMeshSurfaceQualityBlockers(assetId, meshPlayableSurfaces);
|
|
109
124
|
if (qualityBlockers.length > 0) {
|
|
110
125
|
return failure(qualityBlockers, [
|
|
111
126
|
`${assetId} produced ${meshPlayableSurfaces.length} mesh-bound playable surface(s); public platformer worlds require retained game geometry, not generated checkpoint/finish markers.`,
|
|
112
127
|
...qualityBlockers,
|
|
128
|
+
...prepared.reasons,
|
|
113
129
|
...surfaceSelection.reasons
|
|
114
130
|
]);
|
|
115
131
|
}
|
|
@@ -149,6 +165,7 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
|
|
|
149
165
|
value: map,
|
|
150
166
|
reasons: [
|
|
151
167
|
`mesh-derived platformer surfaces from ${horizontalCandidates.length} ${surfaceSelection.mode} primitive(s)`,
|
|
168
|
+
...prepared.reasons,
|
|
152
169
|
...surfaceSelection.reasons,
|
|
153
170
|
`surfaceCount:${surfaces.length}`,
|
|
154
171
|
`meshPlayableSurfaceCount:${meshPlayableSurfaces.length}`,
|
|
@@ -156,6 +173,208 @@ export function extractPlatformerPlayableSurfaceMapFromAsset(assetId, options =
|
|
|
156
173
|
]
|
|
157
174
|
};
|
|
158
175
|
}
|
|
176
|
+
function preparePlatformerSurfacePrimitives(assetId, primitives, bounds, characterFootprintWidth) {
|
|
177
|
+
const modelToGameScale = platformerModelToGameScale(bounds);
|
|
178
|
+
const minimumWalkableWidth = Math.max(PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH, characterFootprintWidth);
|
|
179
|
+
const uniquePrimitives = uniquePlayableSurfacePrimitives(primitives);
|
|
180
|
+
const walkable = uniquePrimitives.filter((primitive) => primitive.size[0] * modelToGameScale >= minimumWalkableWidth);
|
|
181
|
+
const narrowCount = uniquePrimitives.length - walkable.length;
|
|
182
|
+
if (walkable.length === 0) {
|
|
183
|
+
return {
|
|
184
|
+
primitives: [],
|
|
185
|
+
blockers: [`asset-extraction:platformer-no-walkable-width-surfaces:${assetId}`],
|
|
186
|
+
reasons: [`excluded ${narrowCount} primitive(s) narrower than the ${round3(minimumWalkableWidth)} game-unit character footprint`]
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
const families = createPlatformerDepthFamilies(walkable, bounds);
|
|
190
|
+
const selectedFamily = [...families].sort((a, b) => platformerDepthFamilyScore(b, modelToGameScale) - platformerDepthFamilyScore(a, modelToGameScale))[0];
|
|
191
|
+
if (!selectedFamily) {
|
|
192
|
+
return {
|
|
193
|
+
primitives: [],
|
|
194
|
+
blockers: [`asset-extraction:platformer-depth-family-not-found:${assetId}`],
|
|
195
|
+
reasons: []
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
const familySurfaces = candidatePlatformerSurfaces(selectedFamily.primitives, bounds);
|
|
199
|
+
const columnResolution = resolveAmbiguousPlatformerColumns(assetId, familySurfaces);
|
|
200
|
+
const retainedPrimitiveKeys = new Set(columnResolution.surfaces.map((surface) => surface.primitiveKey));
|
|
201
|
+
const columnResolvedPrimitives = selectedFamily.primitives.filter((primitive) => retainedPrimitiveKeys.has(platformerPrimitiveKey(primitive)));
|
|
202
|
+
const traversal = selectPlatformerTraversalComponent(columnResolvedPrimitives, bounds);
|
|
203
|
+
const familyReasons = families
|
|
204
|
+
.filter((family) => family !== selectedFamily)
|
|
205
|
+
.map((family, index) => `excluded depth family ${index + 1} with ${family.primitives.length} primitive(s) at model z ${round3(family.minZ)}..${round3(family.maxZ)}`);
|
|
206
|
+
const reasons = [
|
|
207
|
+
`selected depth-coherent family with ${selectedFamily.primitives.length} primitive(s) at model z ${round3(selectedFamily.minZ)}..${round3(selectedFamily.maxZ)}`,
|
|
208
|
+
...familyReasons,
|
|
209
|
+
...(narrowCount > 0
|
|
210
|
+
? [`excluded ${narrowCount} primitive(s) narrower than the ${round3(minimumWalkableWidth)} game-unit character footprint`]
|
|
211
|
+
: []),
|
|
212
|
+
...columnResolution.reasons,
|
|
213
|
+
...traversal.reasons,
|
|
214
|
+
...platformerSemanticHintReasons(traversal.primitives)
|
|
215
|
+
];
|
|
216
|
+
const blockers = [
|
|
217
|
+
...columnResolution.blockers,
|
|
218
|
+
...traversal.blockers
|
|
219
|
+
];
|
|
220
|
+
return {
|
|
221
|
+
primitives: blockers.length === 0 ? traversal.primitives : [],
|
|
222
|
+
blockers,
|
|
223
|
+
reasons
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function createPlatformerDepthFamilies(primitives, bounds) {
|
|
227
|
+
const tolerance = Math.max(0.25, (bounds.max[2] - bounds.min[2]) * 0.04);
|
|
228
|
+
const sorted = [...primitives].sort((a, b) => a.center[2] - b.center[2]);
|
|
229
|
+
const families = [];
|
|
230
|
+
for (const primitive of sorted) {
|
|
231
|
+
const primitiveCenterZ = primitive.center[2];
|
|
232
|
+
const family = families.find((candidate) => {
|
|
233
|
+
const centers = candidate.primitives.map((entry) => entry.center[2]);
|
|
234
|
+
return Math.abs(primitiveCenterZ - average(centers)) <= tolerance;
|
|
235
|
+
});
|
|
236
|
+
if (!family) {
|
|
237
|
+
families.push({
|
|
238
|
+
primitives: [primitive],
|
|
239
|
+
minZ: primitiveCenterZ,
|
|
240
|
+
maxZ: primitiveCenterZ
|
|
241
|
+
});
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
const mergedPrimitives = [...family.primitives, primitive];
|
|
245
|
+
const merged = {
|
|
246
|
+
primitives: mergedPrimitives,
|
|
247
|
+
minZ: Math.min(...mergedPrimitives.map((entry) => entry.center[2])),
|
|
248
|
+
maxZ: Math.max(...mergedPrimitives.map((entry) => entry.center[2]))
|
|
249
|
+
};
|
|
250
|
+
families.splice(families.indexOf(family), 1, merged);
|
|
251
|
+
}
|
|
252
|
+
return families;
|
|
253
|
+
}
|
|
254
|
+
function platformerDepthFamilyScore(family, modelToGameScale) {
|
|
255
|
+
const minX = Math.min(...family.primitives.map((primitive) => primitive.bounds.min[0]));
|
|
256
|
+
const maxX = Math.max(...family.primitives.map((primitive) => primitive.bounds.max[0]));
|
|
257
|
+
const semanticScore = family.primitives.reduce((score, primitive) => {
|
|
258
|
+
const label = `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`;
|
|
259
|
+
if (PLATFORM_PATTERN.test(label))
|
|
260
|
+
return score + 0.25;
|
|
261
|
+
if (PLATFORMER_DECORATIVE_PATTERN.test(label))
|
|
262
|
+
return score - 0.25;
|
|
263
|
+
return score;
|
|
264
|
+
}, 0);
|
|
265
|
+
return ((maxX - minX) * modelToGameScale + family.primitives.length * 0.5) * 1_000 + semanticScore;
|
|
266
|
+
}
|
|
267
|
+
function candidatePlatformerSurfaces(primitives, bounds) {
|
|
268
|
+
const modelToGameScale = platformerModelToGameScale(bounds);
|
|
269
|
+
const baseline = Math.min(...primitives.map((primitive) => primitive.bounds.max[1]));
|
|
270
|
+
return primitives.map((primitive, index) => ({
|
|
271
|
+
id: `candidate-platform-${String(index).padStart(2, "0")}`,
|
|
272
|
+
x: round3((primitive.bounds.min[0] - bounds.min[0]) * modelToGameScale + (primitive.size[0] * modelToGameScale) / 2),
|
|
273
|
+
y: round3(Math.max(0, primitive.bounds.max[1] - baseline) * modelToGameScale),
|
|
274
|
+
width: round3(primitive.size[0] * modelToGameScale),
|
|
275
|
+
height: round3(Math.max(0.22, primitive.size[1] * modelToGameScale)),
|
|
276
|
+
modelTopY: round3(primitive.bounds.max[1]),
|
|
277
|
+
modelCenterZ: center(primitive.bounds, 2),
|
|
278
|
+
kind: "platform",
|
|
279
|
+
primitiveKey: platformerPrimitiveKey(primitive)
|
|
280
|
+
}));
|
|
281
|
+
}
|
|
282
|
+
function resolveAmbiguousPlatformerColumns(assetId, surfaces) {
|
|
283
|
+
const columns = new Map();
|
|
284
|
+
for (const surface of surfaces) {
|
|
285
|
+
const column = platformerSurfaceColumn(surface.x);
|
|
286
|
+
columns.set(column, [...(columns.get(column) ?? []), surface]);
|
|
287
|
+
}
|
|
288
|
+
const retained = new Set(surfaces);
|
|
289
|
+
const unresolvedColumns = [];
|
|
290
|
+
const reasons = [];
|
|
291
|
+
for (const [column, columnSurfaces] of columns) {
|
|
292
|
+
if (columnSurfaces.length < PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES)
|
|
293
|
+
continue;
|
|
294
|
+
const minY = Math.min(...columnSurfaces.map((surface) => surface.y));
|
|
295
|
+
const maxY = Math.max(...columnSurfaces.map((surface) => surface.y));
|
|
296
|
+
if (maxY - minY < PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE)
|
|
297
|
+
continue;
|
|
298
|
+
const keep = [...columnSurfaces]
|
|
299
|
+
.sort((a, b) => b.width - a.width || a.y - b.y)
|
|
300
|
+
.slice(0, 2);
|
|
301
|
+
for (const surface of columnSurfaces) {
|
|
302
|
+
if (!keep.includes(surface))
|
|
303
|
+
retained.delete(surface);
|
|
304
|
+
}
|
|
305
|
+
unresolvedColumns.push(column);
|
|
306
|
+
reasons.push(`resolved stacked column ${column} by retaining its two widest walkable tiers`);
|
|
307
|
+
}
|
|
308
|
+
const resolved = surfaces.filter((surface) => retained.has(surface));
|
|
309
|
+
const resolvedLength = measurePlatformerSurfaceLength(resolved);
|
|
310
|
+
const blockers = unresolvedColumns.length > 0 && (resolved.length < PLATFORMER_MIN_MESH_PLAYABLE_SURFACES || resolvedLength < PLATFORMER_MIN_LEVEL_LENGTH)
|
|
311
|
+
? unresolvedColumns.map((column) => `asset-extraction:platformer-column-unresolved:${assetId}:${column}`)
|
|
312
|
+
: [];
|
|
313
|
+
return { surfaces: resolved, blockers, reasons };
|
|
314
|
+
}
|
|
315
|
+
function selectPlatformerTraversalComponent(primitives, bounds) {
|
|
316
|
+
const surfaces = [...candidatePlatformerSurfaces(primitives, bounds)].sort((a, b) => (a.x - a.width / 2) - (b.x - b.width / 2) || a.y - b.y);
|
|
317
|
+
const components = [];
|
|
318
|
+
let current = [];
|
|
319
|
+
let currentRight = Number.NEGATIVE_INFINITY;
|
|
320
|
+
let currentHighestReachableY = 0;
|
|
321
|
+
for (const surface of surfaces) {
|
|
322
|
+
const left = surface.x - surface.width / 2;
|
|
323
|
+
const gap = left - currentRight;
|
|
324
|
+
const upwardStep = surface.y - currentHighestReachableY;
|
|
325
|
+
if (current.length > 0 && (gap > PLATFORMER_MAX_HORIZONTAL_TRAVERSAL_GAP || upwardStep > PLATFORMER_MAX_UPWARD_TRAVERSAL_STEP)) {
|
|
326
|
+
components.push(current);
|
|
327
|
+
current = [];
|
|
328
|
+
currentRight = Number.NEGATIVE_INFINITY;
|
|
329
|
+
currentHighestReachableY = surface.y;
|
|
330
|
+
}
|
|
331
|
+
current.push(surface);
|
|
332
|
+
currentRight = Math.max(currentRight, surface.x + surface.width / 2);
|
|
333
|
+
currentHighestReachableY = Math.max(currentHighestReachableY, surface.y);
|
|
334
|
+
}
|
|
335
|
+
if (current.length > 0)
|
|
336
|
+
components.push(current);
|
|
337
|
+
const ranked = [...components].sort((a, b) => {
|
|
338
|
+
const aLength = measurePlatformerSurfaceLength(a);
|
|
339
|
+
const bLength = measurePlatformerSurfaceLength(b);
|
|
340
|
+
const aQualifies = a.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && aLength >= PLATFORMER_MIN_LEVEL_LENGTH;
|
|
341
|
+
const bQualifies = b.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && bLength >= PLATFORMER_MIN_LEVEL_LENGTH;
|
|
342
|
+
return Number(bQualifies) - Number(aQualifies) || bLength - aLength || b.length - a.length;
|
|
343
|
+
});
|
|
344
|
+
const selected = ranked[0] ?? [];
|
|
345
|
+
const selectedLength = measurePlatformerSurfaceLength(selected);
|
|
346
|
+
const qualifies = selected.length >= PLATFORMER_MIN_MESH_PLAYABLE_SURFACES && selectedLength >= PLATFORMER_MIN_LEVEL_LENGTH;
|
|
347
|
+
const primitiveKeys = new Set(selected.map((surface) => surface.primitiveKey));
|
|
348
|
+
const selectedPrimitives = primitives.filter((primitive) => primitiveKeys.has(platformerPrimitiveKey(primitive)));
|
|
349
|
+
const reasons = [
|
|
350
|
+
`selected traversable component with ${selected.length} mesh surface(s) spanning ${round3(selectedLength)} game units`,
|
|
351
|
+
...(components.length > 1 ? [`excluded ${components.length - 1} disconnected traversal component(s)`] : [])
|
|
352
|
+
];
|
|
353
|
+
if (qualifies)
|
|
354
|
+
return { primitives: selectedPrimitives, blockers: [], reasons };
|
|
355
|
+
return {
|
|
356
|
+
primitives: [],
|
|
357
|
+
blockers: [`asset-extraction:platformer-traversable-chain-too-short:${selected.length}:${round3(selectedLength)}`],
|
|
358
|
+
reasons
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
function platformerSemanticHintReasons(primitives) {
|
|
362
|
+
const labels = primitives.map((primitive) => `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`);
|
|
363
|
+
const positive = labels.filter((label) => PLATFORM_PATTERN.test(label)).length;
|
|
364
|
+
const decorative = labels.filter((label) => PLATFORMER_DECORATIVE_PATTERN.test(label)).length;
|
|
365
|
+
if (positive === 0 && decorative === 0)
|
|
366
|
+
return ["generic node names contributed no semantic confidence; certification remained geometry-only"];
|
|
367
|
+
return [`semantic hints: ${positive} playable label(s), ${decorative} decorative label(s); hints only affected family ranking`];
|
|
368
|
+
}
|
|
369
|
+
function platformerPrimitiveKey(primitive) {
|
|
370
|
+
return [
|
|
371
|
+
primitive.bounds.min[0], primitive.bounds.min[1], primitive.bounds.min[2],
|
|
372
|
+
primitive.bounds.max[0], primitive.bounds.max[1], primitive.bounds.max[2]
|
|
373
|
+
].map((value) => value.toFixed(3)).join(":");
|
|
374
|
+
}
|
|
375
|
+
function platformerSurfaceColumn(x) {
|
|
376
|
+
return (Math.round(x / PLATFORMER_AMBIGUOUS_COLUMN_STEP) * PLATFORMER_AMBIGUOUS_COLUMN_STEP).toFixed(2);
|
|
377
|
+
}
|
|
159
378
|
function loadAssetGeometry(assetId, projectDir) {
|
|
160
379
|
const asset = readManifestAssets(projectDir).find((entry) => entry.id === assetId);
|
|
161
380
|
if (!asset)
|
|
@@ -293,39 +512,28 @@ function isPlatformPrimitive(primitive) {
|
|
|
293
512
|
return PLATFORM_PATTERN.test(label) && !PLATFORM_EXCLUDE_PATTERN.test(label);
|
|
294
513
|
}
|
|
295
514
|
function selectPlatformerSurfacePrimitives(geometry) {
|
|
296
|
-
const semantic = geometry.primitives.filter(isPlatformPrimitive);
|
|
297
|
-
if (semantic.length > 0) {
|
|
298
|
-
return {
|
|
299
|
-
primitives: semantic,
|
|
300
|
-
mode: "semantic",
|
|
301
|
-
reasons: [`selected ${semantic.length} primitive(s) by semantic platform/world labels`]
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
515
|
const geometric = geometry.primitives.filter((primitive) => isGenericPlatformerSurfacePrimitive(primitive, geometry.bounds));
|
|
516
|
+
const positive = geometric.filter(isPlatformPrimitive).length;
|
|
517
|
+
const decorative = geometric.filter((primitive) => PLATFORMER_DECORATIVE_PATTERN.test(`${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`)).length;
|
|
305
518
|
return {
|
|
306
519
|
primitives: geometric,
|
|
307
520
|
mode: "geometric",
|
|
308
521
|
reasons: geometric.length > 0
|
|
309
|
-
? [`selected ${geometric.length} primitive(s) by flat horizontal game-surface geometry
|
|
310
|
-
: ["
|
|
522
|
+
? [`selected ${geometric.length} primitive(s) by flat horizontal game-surface geometry; ${positive} playable and ${decorative} decorative semantic hint(s) remained soft ranking signals`]
|
|
523
|
+
: ["no flat horizontal primitive passed the game-surface footprint filter"]
|
|
311
524
|
};
|
|
312
525
|
}
|
|
313
526
|
function isGenericPlatformerSurfacePrimitive(primitive, modelBounds) {
|
|
314
|
-
const label = `${primitive.nodeName} ${primitive.meshName} ${primitive.materialName}`;
|
|
315
|
-
if (PLATFORM_EXCLUDE_PATTERN.test(label))
|
|
316
|
-
return false;
|
|
317
527
|
if (!isHorizontalSurface(primitive))
|
|
318
528
|
return false;
|
|
319
529
|
const modelSize = boundsSize(modelBounds);
|
|
320
530
|
const modelFootprint = Math.max(0.001, modelSize[0] * modelSize[2]);
|
|
321
531
|
const primitiveFootprint = primitive.size[0] * primitive.size[2];
|
|
322
|
-
const verticalPosition = (primitive.bounds.max[1] - modelBounds.min[1]) / Math.max(0.001, modelSize[1]);
|
|
323
532
|
const longestAxis = Math.max(primitive.size[0], primitive.size[2]);
|
|
324
533
|
const shortestAxis = Math.min(primitive.size[0], primitive.size[2]);
|
|
325
534
|
return primitiveFootprint >= Math.max(0.08, modelFootprint * 0.00045) &&
|
|
326
535
|
longestAxis >= Math.max(0.7, modelSize[0] * 0.006) &&
|
|
327
|
-
shortestAxis >= 0.16
|
|
328
|
-
verticalPosition <= 0.92;
|
|
536
|
+
shortestAxis >= 0.16;
|
|
329
537
|
}
|
|
330
538
|
function isHorizontalSurface(primitive) {
|
|
331
539
|
const horizontal = Math.max(primitive.size[0], primitive.size[2]);
|
|
@@ -388,7 +596,7 @@ function createPlayableSurfaces(primitives, bounds) {
|
|
|
388
596
|
});
|
|
389
597
|
const selectedSurfaces = [...dedupePlayableSurfaces(candidateSurfaces)]
|
|
390
598
|
.sort((a, b) => a.x - b.x)
|
|
391
|
-
.slice(0,
|
|
599
|
+
.slice(0, PLATFORMER_MAX_RETAINED_MESH_SURFACES);
|
|
392
600
|
const selectedBaselineTopY = selectedPlayableSurfaceBaseline(selectedSurfaces);
|
|
393
601
|
const topSurfaces = selectedSurfaces.map((surface, index) => ({
|
|
394
602
|
...surface,
|
|
@@ -517,8 +725,8 @@ function platformerMeshSurfaceQualityBlockers(assetId, surfaces) {
|
|
|
517
725
|
if (levelLength < PLATFORMER_MIN_LEVEL_LENGTH) {
|
|
518
726
|
blockers.push(`asset-extraction:platformer-level-length-too-short:${assetId}:${round3(levelLength)}`);
|
|
519
727
|
}
|
|
520
|
-
|
|
521
|
-
blockers.push(`asset-extraction:platformer-
|
|
728
|
+
for (const column of ambiguousStackedSurfaceColumns(surfaces)) {
|
|
729
|
+
blockers.push(`asset-extraction:platformer-column-unresolved:${assetId}:${column}`);
|
|
522
730
|
}
|
|
523
731
|
return blockers;
|
|
524
732
|
}
|
|
@@ -529,21 +737,22 @@ function measurePlatformerSurfaceLength(surfaces) {
|
|
|
529
737
|
const maxX = Math.max(...surfaces.map((surface) => surface.x + surface.width / 2));
|
|
530
738
|
return round3(maxX - minX);
|
|
531
739
|
}
|
|
532
|
-
function
|
|
740
|
+
function ambiguousStackedSurfaceColumns(surfaces) {
|
|
533
741
|
const columns = new Map();
|
|
534
742
|
for (const surface of surfaces) {
|
|
535
|
-
const column = (
|
|
743
|
+
const column = platformerSurfaceColumn(surface.x);
|
|
536
744
|
columns.set(column, [...(columns.get(column) ?? []), surface]);
|
|
537
745
|
}
|
|
538
|
-
|
|
746
|
+
const ambiguous = [];
|
|
747
|
+
for (const [column, columnSurfaces] of columns) {
|
|
539
748
|
if (columnSurfaces.length < PLATFORMER_AMBIGUOUS_COLUMN_MIN_SURFACES)
|
|
540
749
|
continue;
|
|
541
750
|
const minY = Math.min(...columnSurfaces.map((surface) => surface.y));
|
|
542
751
|
const maxY = Math.max(...columnSurfaces.map((surface) => surface.y));
|
|
543
752
|
if (maxY - minY >= PLATFORMER_AMBIGUOUS_COLUMN_MIN_Y_RANGE)
|
|
544
|
-
|
|
753
|
+
ambiguous.push(column);
|
|
545
754
|
}
|
|
546
|
-
return
|
|
755
|
+
return ambiguous;
|
|
547
756
|
}
|
|
548
757
|
function pickPlatformerAnchorSurfaces(surfaces) {
|
|
549
758
|
if (surfaces.length <= 3)
|
|
@@ -579,6 +788,19 @@ function platformerModelToGameScale(bounds) {
|
|
|
579
788
|
const widthScale = PLATFORMER_TARGET_GAME_LENGTH / Math.max(0.001, size[0]);
|
|
580
789
|
return round3(Math.min(PLATFORMER_MAX_GAME_SCALE, Math.max(PLATFORMER_MIN_GAME_SCALE, widthScale)));
|
|
581
790
|
}
|
|
791
|
+
function platformerCharacterFootprintWidth(options, projectDir) {
|
|
792
|
+
if (options.characterFootprintWidth !== undefined)
|
|
793
|
+
return options.characterFootprintWidth;
|
|
794
|
+
if (!options.characterAssetId)
|
|
795
|
+
return PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH;
|
|
796
|
+
const character = readManifestAssets(projectDir).find((asset) => asset.id === options.characterAssetId);
|
|
797
|
+
const size = character?.boundsMetadata?.size ?? character?.bounds;
|
|
798
|
+
if (!size)
|
|
799
|
+
return PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH;
|
|
800
|
+
const characterWidthToHeight = size[0] / Math.max(0.001, size[1]);
|
|
801
|
+
const scaledCharacterWidth = characterWidthToHeight * Math.max(0.01, options.characterScaleRatio ?? 0.42);
|
|
802
|
+
return round3(Math.max(PLATFORMER_DEFAULT_CHARACTER_FOOTPRINT_WIDTH, scaledCharacterWidth));
|
|
803
|
+
}
|
|
582
804
|
function boundsForPrimitives(primitives) {
|
|
583
805
|
return boundsForVertices(primitives.flatMap((primitive) => [primitive.bounds.min, primitive.bounds.max]));
|
|
584
806
|
}
|