@helix3/helix-cli 0.1.18-helix3.299 → 0.1.18-helix3.301
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/dist/character/repairLodSkeletonsFile.d.ts +25 -0
- package/dist/character/repairLodSkeletonsFile.js +49 -0
- package/dist/character/repairLodSkeletonsFile.js.map +1 -0
- package/dist/character/stages/poseAwareFit.d.ts +3 -2
- package/dist/character/stages/poseAwareFit.js +24 -2
- package/dist/character/stages/poseAwareFit.js.map +1 -1
- package/dist/character/stages/splitSharedLodSkeletons.d.ts +31 -0
- package/dist/character/stages/splitSharedLodSkeletons.js +104 -0
- package/dist/character/stages/splitSharedLodSkeletons.js.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type SplitSharedLodSkeletonsResult } from './stages/splitSharedLodSkeletons';
|
|
2
|
+
/**
|
|
3
|
+
* File-level entry point for `helix character repair-lod-skeletons`: repairs a packaged multi-LOD add-on
|
|
4
|
+
* whose LOD scenes share one skeleton (helix-creator-cli #219's output) — see `stages/splitSharedLodSkeletons.ts`.
|
|
5
|
+
*
|
|
6
|
+
* Output contract, so a batch driver never has to guess:
|
|
7
|
+
* - outcome 'repaired': `output` holds the repaired GLB. Its accessors are proven byte-identical to the
|
|
8
|
+
* input's (compared as a multiset of content hashes after re-reading the written file) — only the node and
|
|
9
|
+
* skin graph changed.
|
|
10
|
+
* - outcome 'nothing-to-repair': every scene already had its own skeleton; `output` is a BYTE-IDENTICAL copy.
|
|
11
|
+
* - anything the repair cannot do safely throws (see the stage's refusals) and writes nothing.
|
|
12
|
+
*/
|
|
13
|
+
export type RepairOutcome = 'repaired' | 'nothing-to-repair';
|
|
14
|
+
export interface RepairLodSkeletonsFileResult extends SplitSharedLodSkeletonsResult {
|
|
15
|
+
outcome: RepairOutcome;
|
|
16
|
+
input: string;
|
|
17
|
+
output: string;
|
|
18
|
+
skinsBefore: number;
|
|
19
|
+
skinsAfter: number;
|
|
20
|
+
nodesBefore: number;
|
|
21
|
+
nodesAfter: number;
|
|
22
|
+
/** Accessors compared by content hash between input and written output (all must match). */
|
|
23
|
+
accessorsVerified: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function repairLodSkeletonsFile(inputPath: string, outputPath: string): Promise<RepairLodSkeletonsFileResult>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.repairLodSkeletonsFile = repairLodSkeletonsFile;
|
|
4
|
+
const core_1 = require("@gltf-transform/core");
|
|
5
|
+
const extensions_1 = require("@gltf-transform/extensions");
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const meshoptimizer_1 = require("meshoptimizer");
|
|
10
|
+
const splitSharedLodSkeletons_1 = require("./stages/splitSharedLodSkeletons");
|
|
11
|
+
function accessorFingerprints(document) {
|
|
12
|
+
return document.getRoot().listAccessors().map((accessor) => {
|
|
13
|
+
const array = accessor.getArray();
|
|
14
|
+
const bytes = array ? Buffer.from(array.buffer, array.byteOffset, array.byteLength) : Buffer.alloc(0);
|
|
15
|
+
return `${accessor.getType()}:${accessor.getComponentType()}:${accessor.getCount()}:${accessor.getNormalized()}:${(0, node_crypto_1.createHash)('sha256').update(bytes).digest('hex')}`;
|
|
16
|
+
}).sort();
|
|
17
|
+
}
|
|
18
|
+
async function repairLodSkeletonsFile(inputPath, outputPath) {
|
|
19
|
+
await Promise.all([meshoptimizer_1.MeshoptDecoder.ready, meshoptimizer_1.MeshoptEncoder.ready]);
|
|
20
|
+
const io = new core_1.NodeIO()
|
|
21
|
+
.registerExtensions(extensions_1.ALL_EXTENSIONS)
|
|
22
|
+
.registerDependencies({ 'meshopt.decoder': meshoptimizer_1.MeshoptDecoder, 'meshopt.encoder': meshoptimizer_1.MeshoptEncoder });
|
|
23
|
+
const input = (0, node_path_1.resolve)(inputPath), output = (0, node_path_1.resolve)(outputPath);
|
|
24
|
+
const inputBytes = (0, node_fs_1.readFileSync)(input);
|
|
25
|
+
const document = await io.readBinary(inputBytes);
|
|
26
|
+
const before = accessorFingerprints(document);
|
|
27
|
+
const skinsBefore = document.getRoot().listSkins().length, nodesBefore = document.getRoot().listNodes().length;
|
|
28
|
+
const split = (0, splitSharedLodSkeletons_1.splitSharedLodSkeletons)(document);
|
|
29
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(output), { recursive: true });
|
|
30
|
+
const base = { input, output, skinsBefore, nodesBefore, ...split };
|
|
31
|
+
if (split.scenesRepaired === 0) {
|
|
32
|
+
if (input !== output)
|
|
33
|
+
(0, node_fs_1.copyFileSync)(input, output);
|
|
34
|
+
return { ...base, outcome: 'nothing-to-repair', skinsAfter: skinsBefore, nodesAfter: nodesBefore, accessorsVerified: before.length };
|
|
35
|
+
}
|
|
36
|
+
const bytes = await io.writeBinary(document);
|
|
37
|
+
const written = await io.readBinary(bytes);
|
|
38
|
+
const after = accessorFingerprints(written);
|
|
39
|
+
if (after.length !== before.length || after.some((fingerprint, i) => fingerprint !== before[i])) {
|
|
40
|
+
throw new Error(`repair: accessor data changed during the repair (${before.length} → ${after.length} accessors) — refusing to write ${output}`);
|
|
41
|
+
}
|
|
42
|
+
(0, node_fs_1.writeFileSync)(output, bytes);
|
|
43
|
+
return {
|
|
44
|
+
...base, outcome: 'repaired',
|
|
45
|
+
skinsAfter: written.getRoot().listSkins().length, nodesAfter: written.getRoot().listNodes().length,
|
|
46
|
+
accessorsVerified: after.length,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=repairLodSkeletonsFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repairLodSkeletonsFile.js","sourceRoot":"","sources":["../../src/character/repairLodSkeletonsFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,9 +121,10 @@ export interface PoseAwareFitReport {
|
|
|
121
121
|
hiddenRegions: string[];
|
|
122
122
|
};
|
|
123
123
|
before: Measurement | null;
|
|
124
|
-
/** The gate measurement of the geometry actually kept (== before unless outcome is 'improved')
|
|
124
|
+
/** The gate measurement of the geometry actually kept (== before unless outcome is 'improved') — measured
|
|
125
|
+
* fresh from the written float32 positions, so it equals what `pokethrough-check.mjs` prints for the file. */
|
|
125
126
|
after: Measurement | null;
|
|
126
|
-
/** The best candidate the
|
|
127
|
+
/** The best candidate as measured inside the loop (float64), even when the gate rejected it. */
|
|
127
128
|
bestCandidate: Measurement | null;
|
|
128
129
|
chosenIteration: number | null;
|
|
129
130
|
iterations: PoseAwareFitIteration[];
|
|
@@ -379,8 +379,30 @@ function poseAwareFit(garment, body, options = {}) {
|
|
|
379
379
|
accessor.setArray(out);
|
|
380
380
|
});
|
|
381
381
|
});
|
|
382
|
+
// Re-judge what actually SHIPS. The loop measured each candidate as posedRest + L·Δ in float64; the file
|
|
383
|
+
// holds float32(rest + Δ), skinned by the checker's own arithmetic. The two agree to ~1e-8 m, but near-ties
|
|
384
|
+
// between two garment faces (a lining meeting its shell at a fold) can flip on that, and did: Male Casual
|
|
385
|
+
// Blazer's winning candidate read 213 in the loop and 204 in the checker on the written file. So the gate
|
|
386
|
+
// is applied once more to a fresh, checker-exact measurement of the written geometry — the number reported
|
|
387
|
+
// is the number the checker will print — and a candidate that no longer passes is rolled back to the
|
|
388
|
+
// original bytes.
|
|
389
|
+
const shipped = (0, measure_1.measurePokethrough)(bodyModel, (0, model_1.buildGarmentModel)(garment, poseNames), garmentModel.units.map((u) => new Float64Array(u.vertexCount * 3)), measureSettings);
|
|
390
|
+
const shippedRejection = (0, measure_1.gateRejection)(before, shipped, 0);
|
|
391
|
+
if (shippedRejection !== null) {
|
|
392
|
+
for (const state of states) {
|
|
393
|
+
state.unit.accessors.forEach((accessor, a) => {
|
|
394
|
+
const base = state.unit.accessorBase[a];
|
|
395
|
+
accessor.setArray(Float32Array.from(state.unit.rest.subarray(base * 3, (base + accessor.getCount()) * 3)));
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
report.outcome = 'unchanged-no-improvement';
|
|
399
|
+
report.after = before;
|
|
400
|
+
report.reason = `the chosen candidate failed the gate once written at float32 precision (${shippedRejection}) — original geometry restored`;
|
|
401
|
+
log(`pose-fit: ${report.reason}`);
|
|
402
|
+
return finish();
|
|
403
|
+
}
|
|
382
404
|
report.outcome = 'improved';
|
|
383
|
-
report.after =
|
|
405
|
+
report.after = shipped;
|
|
384
406
|
report.chosenIteration = best.iteration;
|
|
385
407
|
moves.sort((x, y) => x - y);
|
|
386
408
|
const pct = (q) => (moves.length > 0 ? +(moves[Math.min(moves.length - 1, Math.floor(q * moves.length))] * 1000).toFixed(3) : 0);
|
|
@@ -389,7 +411,7 @@ function poseAwareFit(garment, body, options = {}) {
|
|
|
389
411
|
p50MoveMm: pct(0.5), p90MoveMm: pct(0.9), p99MoveMm: pct(0.99),
|
|
390
412
|
groupsOver5Mm: moves.filter((m) => m > 0.005).length, groupsOver10Mm: moves.filter((m) => m > 0.01).length,
|
|
391
413
|
};
|
|
392
|
-
log(`pose-fit: improved ${before.totalViolations} → ${
|
|
414
|
+
log(`pose-fit: improved ${before.totalViolations} → ${shipped.totalViolations} violation(s) (iteration ${best.iteration}); moved ${groupsMoved} welded vertex group(s), max ${(maxMove * 1000).toFixed(2)}mm`);
|
|
393
415
|
return finish();
|
|
394
416
|
}
|
|
395
417
|
//# sourceMappingURL=poseAwareFit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poseAwareFit.js","sourceRoot":"","sources":["../../../src/character/stages/poseAwareFit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"poseAwareFit.js","sourceRoot":"","sources":["../../../src/character/stages/poseAwareFit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Document } from '@gltf-transform/core';
|
|
2
|
+
/**
|
|
3
|
+
* REPAIR IN PLACE: gives every LOD scene of an already-packaged character GLB its own copy of a skeleton that
|
|
4
|
+
* several scenes share — undoing helix-creator-cli #219's fold without the original source.
|
|
5
|
+
*
|
|
6
|
+
* #219 grouped a multi-LOD add-on's per-LOD skins by their ordered joint names, repointed every LOD's skinned
|
|
7
|
+
* mesh at the first skin, rooted that one skeleton in every scene, and disposed the other copies. Those copies
|
|
8
|
+
* were byte-for-byte duplicates — every LOD level was parsed from the same conformed bytes, so joint names,
|
|
9
|
+
* order, local transforms and inverse bind matrices were identical — so nothing was lost that cannot be
|
|
10
|
+
* rebuilt: for each scene after the first that roots a shared subtree, clone that subtree (names, TRS,
|
|
11
|
+
* extras, the same mesh/skin references), give the scene's skinned meshes a new Skin over the cloned joints
|
|
12
|
+
* with the SAME inverse-bind accessor, and swap the scene's root reference to the clone. The result is the
|
|
13
|
+
* pre-#219 structure, which three.js loads (see `mergeLods`' header for why the shared form does not).
|
|
14
|
+
*
|
|
15
|
+
* Only the node/skin graph changes: every accessor (positions, weights, joints, IBMs), mesh, material and
|
|
16
|
+
* texture is untouched and keeps its identity. The outcome is checked with `assertSelfContainedLodScenes`.
|
|
17
|
+
*
|
|
18
|
+
* Refuses (throws) rather than guesses when:
|
|
19
|
+
* - a LOD scene has no skinned mesh left — #219's dispose would have deleted a mesh node parented UNDER a
|
|
20
|
+
* duplicate bone, which no repair can recover (re-extract that item);
|
|
21
|
+
* - a skin mixes joints from a shared subtree with joints owned by its own scene;
|
|
22
|
+
* - a node to be cloned carries glTF extensions (never seen on a character skeleton; not silently dropped).
|
|
23
|
+
*/
|
|
24
|
+
export interface SplitSharedLodSkeletonsResult {
|
|
25
|
+
scenes: number;
|
|
26
|
+
/** Scenes that received their own copy of a shared subtree. */
|
|
27
|
+
scenesRepaired: number;
|
|
28
|
+
nodesCloned: number;
|
|
29
|
+
skinsCreated: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function splitSharedLodSkeletons(document: Document): SplitSharedLodSkeletonsResult;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.splitSharedLodSkeletons = splitSharedLodSkeletons;
|
|
4
|
+
const mergeLods_1 = require("./mergeLods");
|
|
5
|
+
function subtree(roots) {
|
|
6
|
+
const out = [];
|
|
7
|
+
const seen = new Set();
|
|
8
|
+
const stack = [...roots];
|
|
9
|
+
while (stack.length > 0) {
|
|
10
|
+
const node = stack.pop();
|
|
11
|
+
if (seen.has(node))
|
|
12
|
+
continue;
|
|
13
|
+
seen.add(node);
|
|
14
|
+
out.push(node);
|
|
15
|
+
stack.push(...node.listChildren());
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
function cloneTree(document, root, map) {
|
|
20
|
+
if (root.listExtensions().length > 0) {
|
|
21
|
+
throw new Error(`repair: node '${root.getName()}' carries glTF extensions (${root.listExtensions().map((e) => e.extensionName).join(', ')}) — refusing to clone it lossily`);
|
|
22
|
+
}
|
|
23
|
+
const copy = document.createNode(root.getName())
|
|
24
|
+
.setTranslation([...root.getTranslation()])
|
|
25
|
+
.setRotation([...root.getRotation()])
|
|
26
|
+
.setScale([...root.getScale()])
|
|
27
|
+
.setWeights([...root.getWeights()])
|
|
28
|
+
.setExtras(structuredClone(root.getExtras()));
|
|
29
|
+
const mesh = root.getMesh();
|
|
30
|
+
if (mesh)
|
|
31
|
+
copy.setMesh(mesh);
|
|
32
|
+
const skin = root.getSkin();
|
|
33
|
+
if (skin)
|
|
34
|
+
copy.setSkin(skin); // remapped once every joint copy exists
|
|
35
|
+
const camera = root.getCamera();
|
|
36
|
+
if (camera)
|
|
37
|
+
copy.setCamera(camera);
|
|
38
|
+
map.set(root, copy);
|
|
39
|
+
for (const child of root.listChildren())
|
|
40
|
+
copy.addChild(cloneTree(document, child, map));
|
|
41
|
+
return copy;
|
|
42
|
+
}
|
|
43
|
+
function splitSharedLodSkeletons(document) {
|
|
44
|
+
const scenes = document.getRoot().listScenes();
|
|
45
|
+
const result = { scenes: scenes.length, scenesRepaired: 0, nodesCloned: 0, skinsCreated: 0 };
|
|
46
|
+
const owner = new Map();
|
|
47
|
+
for (const scene of scenes) {
|
|
48
|
+
for (const node of subtree(scene.listChildren()))
|
|
49
|
+
if (!owner.has(node))
|
|
50
|
+
owner.set(node, scene);
|
|
51
|
+
}
|
|
52
|
+
for (const scene of scenes) {
|
|
53
|
+
const shared = scene.listChildren().filter((child) => owner.get(child) !== scene);
|
|
54
|
+
if (shared.length === 0)
|
|
55
|
+
continue;
|
|
56
|
+
const map = new Map();
|
|
57
|
+
for (const root of shared) {
|
|
58
|
+
const clone = cloneTree(document, root, map);
|
|
59
|
+
scene.removeChild(root);
|
|
60
|
+
scene.addChild(clone);
|
|
61
|
+
}
|
|
62
|
+
result.nodesCloned += map.size;
|
|
63
|
+
result.scenesRepaired++;
|
|
64
|
+
// Every skinned mesh in this scene that is bound to cloned joints gets a skin over the clones.
|
|
65
|
+
const rebuilt = new Map();
|
|
66
|
+
for (const node of subtree(scene.listChildren())) {
|
|
67
|
+
const skin = node.getSkin();
|
|
68
|
+
if (!skin)
|
|
69
|
+
continue;
|
|
70
|
+
const joints = skin.listJoints();
|
|
71
|
+
const mapped = joints.map((joint) => map.get(joint));
|
|
72
|
+
if (mapped.every((joint) => joint === undefined))
|
|
73
|
+
continue; // bound to this scene's own joints already
|
|
74
|
+
if (mapped.some((joint) => joint === undefined)) {
|
|
75
|
+
throw new Error(`repair: skin '${skin.getName()}' in scene '${scene.getName()}' mixes shared and scene-owned joints — cannot split it safely`);
|
|
76
|
+
}
|
|
77
|
+
let replacement = rebuilt.get(skin);
|
|
78
|
+
if (!replacement) {
|
|
79
|
+
replacement = document.createSkin(skin.getName());
|
|
80
|
+
for (const joint of mapped)
|
|
81
|
+
replacement.addJoint(joint);
|
|
82
|
+
const ibm = skin.getInverseBindMatrices();
|
|
83
|
+
if (ibm)
|
|
84
|
+
replacement.setInverseBindMatrices(ibm); // same bytes, same accessor: identical binding
|
|
85
|
+
const skeleton = skin.getSkeleton();
|
|
86
|
+
if (skeleton)
|
|
87
|
+
replacement.setSkeleton(map.get(skeleton) ?? skeleton);
|
|
88
|
+
replacement.setExtras(structuredClone(skin.getExtras()));
|
|
89
|
+
rebuilt.set(skin, replacement);
|
|
90
|
+
result.skinsCreated++;
|
|
91
|
+
}
|
|
92
|
+
node.setSkin(replacement);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
scenes.forEach((scene, index) => {
|
|
96
|
+
const skinned = subtree(scene.listChildren()).filter((node) => node.getMesh() && node.getSkin());
|
|
97
|
+
if (skinned.length === 0) {
|
|
98
|
+
throw new Error(`repair: LOD scene ${index + 1} ('${scene.getName()}') has no skinned mesh — it cannot be rebuilt from this file; re-extract the item`);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
(0, mergeLods_1.assertSelfContainedLodScenes)(document);
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=splitSharedLodSkeletons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splitSharedLodSkeletons.js","sourceRoot":"","sources":["../../../src/character/stages/splitSharedLodSkeletons.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3723,6 +3723,32 @@ character
|
|
|
3723
3723
|
fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
3724
3724
|
}
|
|
3725
3725
|
});
|
|
3726
|
+
character
|
|
3727
|
+
.command('repair-lod-skeletons')
|
|
3728
|
+
.description("Repair a packaged multi-LOD add-on whose LOD scenes share one skeleton (helix-creator-cli #219's output, which three.js loads with undefined bones): give every LOD scene its own copy, changing only the node/skin graph")
|
|
3729
|
+
.argument('<glb>', 'packaged add-on GLB')
|
|
3730
|
+
.requiredOption('-o, --output <glb>', 'output GLB: the repaired file, or a byte-identical copy when nothing is shared')
|
|
3731
|
+
.option('--json', 'print the result as JSON')
|
|
3732
|
+
.addHelpText('after', '\nExit codes: 0 = repaired · 3 = nothing to repair (output is a byte-identical copy) · 1 = refused/error (nothing written).\nCheck the result with `node scripts/engine-bind-check.mjs <out.glb> --host <base.glb>` before publishing.')
|
|
3733
|
+
.action(async (glb, opts) => {
|
|
3734
|
+
try {
|
|
3735
|
+
const { repairLodSkeletonsFile } = await Promise.resolve().then(() => __importStar(require('./character/repairLodSkeletonsFile')));
|
|
3736
|
+
const result = await repairLodSkeletonsFile((0, node_path_1.resolve)(glb), (0, node_path_1.resolve)(opts.output));
|
|
3737
|
+
if (opts.json)
|
|
3738
|
+
console.log(JSON.stringify(result, null, 2));
|
|
3739
|
+
else if (result.outcome === 'repaired') {
|
|
3740
|
+
console.log(`✔ repaired: ${result.scenesRepaired}/${result.scenes} LOD scene(s) given their own skeleton — skins ${result.skinsBefore} → ${result.skinsAfter}, nodes ${result.nodesBefore} → ${result.nodesAfter}; ${result.accessorsVerified} accessor(s) verified byte-identical`);
|
|
3741
|
+
console.log(` output: ${result.output}`);
|
|
3742
|
+
}
|
|
3743
|
+
else {
|
|
3744
|
+
console.log(`• nothing to repair: every LOD scene already has its own skeleton — output is a byte-identical copy (${result.output})`);
|
|
3745
|
+
}
|
|
3746
|
+
process.exitCode = result.outcome === 'repaired' ? 0 : 3;
|
|
3747
|
+
}
|
|
3748
|
+
catch (err) {
|
|
3749
|
+
fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
3750
|
+
}
|
|
3751
|
+
});
|
|
3726
3752
|
character
|
|
3727
3753
|
.command('retarget-animation')
|
|
3728
3754
|
.description('Retarget one raw Meshy/Mixamo FBX or GLB directly to a helix-humanoid@1 animation clip')
|