@bitmagic/cli 0.1.66-dev.1 → 0.1.66-dev.10
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 +37 -1
- package/assets/blender-level/find_blender.py +3 -1
- package/assets/character-rigging/SKILL.md +80 -0
- package/assets/character-rigging/references/articulation.md +55 -0
- package/assets/character-rigging/references/new-rig.md +51 -0
- package/assets/character-rigging/references/repairs.md +44 -0
- package/assets/character-rigging/references/verification.md +49 -0
- package/assets/character-rigging/scripts/rig_tool.py +197 -0
- package/assets/character-skin-authoring/SKILL.md +43 -0
- package/assets/character-skin-authoring/references/exporters.md +134 -0
- package/assets/character-skin-authoring/references/eyes.md +215 -0
- package/assets/character-skin-authoring/references/materials.md +115 -0
- package/assets/character-skin-authoring/references/playground.md +78 -0
- package/assets/character-skin-authoring/references/profiles.md +97 -0
- package/assets/character-skin-authoring/references/projection.md +190 -0
- package/assets/character-skin-authoring/references/regional-detail.md +72 -0
- package/assets/character-skin-authoring/scripts/assemble_character.py +205 -0
- package/assets/character-skin-authoring/scripts/authored_detail.py +47 -0
- package/assets/character-skin-authoring/scripts/authored_surface_patch.py +83 -0
- package/assets/character-skin-authoring/scripts/brow_groom.py +62 -0
- package/assets/character-skin-authoring/scripts/build_face_detail.py +107 -0
- package/assets/character-skin-authoring/scripts/build_surface_candidate.py +28 -0
- package/assets/character-skin-authoring/scripts/canthus_wall.py +57 -0
- package/assets/character-skin-authoring/scripts/character_build.py +54 -0
- package/assets/character-skin-authoring/scripts/eye_assets.py +333 -0
- package/assets/character-skin-authoring/scripts/eye_opening.py +114 -0
- package/assets/character-skin-authoring/scripts/eye_texture.py +35 -0
- package/assets/character-skin-authoring/scripts/eyelid_detail.py +34 -0
- package/assets/character-skin-authoring/scripts/eyelid_morph.py +171 -0
- package/assets/character-skin-authoring/scripts/eyelid_patch.py +173 -0
- package/assets/character-skin-authoring/scripts/face_atlas.py +51 -0
- package/assets/character-skin-authoring/scripts/geometry_repair.py +112 -0
- package/assets/character-skin-authoring/scripts/glb_arrays.py +13 -0
- package/assets/character-skin-authoring/scripts/glb_output.py +21 -0
- package/assets/character-skin-authoring/scripts/inspect_skin_point.py +66 -0
- package/assets/character-skin-authoring/scripts/normal_patch_height.py +38 -0
- package/assets/character-skin-authoring/scripts/prepare_face_reference.py +23 -0
- package/assets/character-skin-authoring/scripts/regional_atlas.py +51 -0
- package/assets/character-skin-authoring/scripts/select_preview.py +90 -0
- package/assets/character-skin-authoring/scripts/skin_views.py +267 -0
- package/assets/character-skin-authoring/scripts/surface_pbr_maps.py +46 -0
- package/assets/character-skin-authoring/scripts/texture_repair.py +98 -0
- package/assets/character-skin-authoring/scripts/vertex_detail_support.py +80 -0
- package/assets/character-skin-authoring/scripts/vision_blend_materials.py +74 -0
- package/assets/character-skin-authoring/scripts/vision_materials.py +276 -0
- package/assets/character-skin-authoring/scripts/workspace_paths.py +18 -0
- package/assets/metahuman/src/work/metahuman/MetaHumanActor.ts +580 -0
- package/assets/metahuman/src/work/metahuman/MetaHumanLabHooks.ts +122 -0
- package/assets/metahuman/src/work/metahuman/MetaHumanMaterials.ts +500 -0
- package/assets/metahuman/src/work/metahuman/MetaHumanSpeech.ts +242 -0
- package/assets/metahuman/src/work/metahuman/StudioEnvironment.ts +142 -0
- package/assets/metahuman/tools/lipsync/make_line.py +181 -0
- package/assets/metahuman/tools/metahuman/README.md +21 -0
- package/assets/metahuman/tools/metahuman/e2e/eval.mjs +34 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/arm-pose-check.js +32 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/bone-displacement.js +26 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/clip-shoulder.js +41 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/grafted-bones.js +11 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/helper-follow-descent.js +38 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/helper-follow-sweep.js +31 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/helper-joints-inspect.js +10 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/outfit-bad-vertices.js +26 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/outfit-body-material.js +7 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/outfit-own-skeleton.js +8 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/shirt-bone-ownership.js +25 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/shirt-edge-stretch.js +26 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/shirt-long-edges.js +23 -0
- package/assets/metahuman/tools/metahuman/e2e/probes/walk-sampler.js +105 -0
- package/assets/metahuman/tools/metahuman/e2e/shot.mjs +125 -0
- package/assets/metahuman/tools/metahuman/e2e/walk-probe.mjs +43 -0
- package/assets/metahuman/tools/metahuman/merge-skeletons.mjs +69 -0
- package/assets/metahuman/tools/metahuman/package.json +13 -0
- package/assets/metahuman/tools/metahuman/prepare.sh +25 -0
- package/assets/metahuman/tools/metahuman/reorder-body-first.mjs +20 -0
- package/assets/metahuman/tools/metahuman/smooth-outfit-weights.mjs +48 -0
- package/assets/metahuman/tools/metahuman/strip-draco.mjs +32 -0
- package/assets/metahuman/tools/metahuman/transfer-skin-weights.mjs +90 -0
- package/dist/assets/voxelize-glb.d.ts +5 -1
- package/dist/assets/voxelize-glb.js +1 -0
- package/dist/assets/voxelize-glb.js.map +1 -1
- package/dist/assets/vxl-summary.js +2 -2
- package/dist/commands/forge.js +3 -1
- package/dist/commands/forge.js.map +1 -1
- package/dist/commands/generate.d.ts +62 -0
- package/dist/commands/generate.js +241 -2
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.js +2 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/judge.js +5 -0
- package/dist/commands/judge.js.map +1 -1
- package/dist/commands/verify.js +7 -0
- package/dist/commands/verify.js.map +1 -1
- package/dist/editor/asset-viewer.js +10 -5
- package/dist/editor/asset-viewer.js.map +1 -1
- package/dist/generate/audio-file.d.ts +6 -0
- package/dist/generate/audio-file.js +42 -0
- package/dist/generate/audio-file.js.map +1 -0
- package/dist/generate/model.js +3 -3
- package/dist/generate/model.js.map +1 -1
- package/dist/generate/music.d.ts +4 -3
- package/dist/generate/music.js +6 -23
- package/dist/generate/music.js.map +1 -1
- package/dist/generate/prop.d.ts +19 -1
- package/dist/generate/prop.js +34 -6
- package/dist/generate/prop.js.map +1 -1
- package/dist/generate/stream.d.ts +20 -0
- package/dist/generate/stream.js +15 -1
- package/dist/generate/stream.js.map +1 -1
- package/dist/scaffold/asset-pipeline-skill-files.js +6 -1
- package/dist/scaffold/asset-pipeline-skill-files.js.map +1 -1
- package/dist/scaffold/character-rigging-skill-files.d.ts +2 -0
- package/dist/scaffold/character-rigging-skill-files.js +17 -0
- package/dist/scaffold/character-rigging-skill-files.js.map +1 -0
- package/dist/scaffold/character-skin-skill-files.d.ts +2 -0
- package/dist/scaffold/character-skin-skill-files.js +49 -0
- package/dist/scaffold/character-skin-skill-files.js.map +1 -0
- package/dist/scaffold/metahuman-skill-files.d.ts +21 -0
- package/dist/scaffold/metahuman-skill-files.js +306 -0
- package/dist/scaffold/metahuman-skill-files.js.map +1 -0
- package/dist/scaffold/project-files.js +28 -19
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/scaffold/project.js +6 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/skill-files.js +5 -2
- package/dist/scaffold/skill-files.js.map +1 -1
- package/dist/telemetry/command-context.d.ts +23 -0
- package/dist/telemetry/command-context.js +11 -0
- package/dist/telemetry/command-context.js.map +1 -1
- package/dist/telemetry/report.d.ts +1 -0
- package/dist/telemetry/report.js +4 -1
- package/dist/telemetry/report.js.map +1 -1
- package/dist/tools/bundles.js +8 -0
- package/dist/tools/bundles.js.map +1 -1
- package/dist/verify/browser.js +25 -0
- package/dist/verify/browser.js.map +1 -1
- package/dist/verify/categories.d.ts +16 -0
- package/dist/verify/categories.js +51 -0
- package/dist/verify/categories.js.map +1 -0
- package/package.json +10 -7
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Step 2: merge the export's duplicate skeleton hierarchies (face / outfit / body) into ONE.
|
|
2
|
+
// The pipeline exports every skinned mesh with its own copy of the rig: the face hierarchy carries
|
|
3
|
+
// torso / neck / head + the facial joints but stops at the upper arms; the body hierarchy carries the
|
|
4
|
+
// full limbs. Limb subtrees are grafted from the body hierarchy onto the face hierarchy (same names,
|
|
5
|
+
// same rest transforms — the script asserts they match), every other skin is re-pointed at the merged
|
|
6
|
+
// joints (same joint order, so the inverse-bind accessors stay valid) and the duplicate roots dropped.
|
|
7
|
+
// Skins are found by the export's naming: SKM_<name>_FaceMesh, SKM_<name>_BodyMesh, <name>_Outfits.
|
|
8
|
+
// node merge-skeletons.mjs in.glb out.glb
|
|
9
|
+
import { NodeIO } from '@gltf-transform/core';
|
|
10
|
+
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
|
|
11
|
+
import { prune } from '@gltf-transform/functions';
|
|
12
|
+
const [,, input, output] = process.argv;
|
|
13
|
+
if (!input || !output) { console.error('usage: node merge-skeletons.mjs in.glb out.glb'); process.exit(2); }
|
|
14
|
+
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
|
15
|
+
const doc = await io.read(input);
|
|
16
|
+
const root = doc.getRoot();
|
|
17
|
+
const skins = root.listSkins();
|
|
18
|
+
const face = skins.find((s) => /^SKM_.*_FaceMesh$/i.test(s.getName()));
|
|
19
|
+
const body = skins.find((s) => /^SKM_.*_BodyMesh$/i.test(s.getName()));
|
|
20
|
+
if (!face || !body) throw new Error(`need a SKM_<name>_FaceMesh and a SKM_<name>_BodyMesh skin; found: ${skins.map((s) => s.getName()).join(', ')}`);
|
|
21
|
+
const others = skins.filter((s) => s !== face);
|
|
22
|
+
const key = (n) => n.getName().toLowerCase();
|
|
23
|
+
const merged = new Map(face.listJoints().map((j) => [key(j), j]));
|
|
24
|
+
const parentOf = (n) => n.listParents().find((p) => p.propertyType === 'Node') ?? null;
|
|
25
|
+
const registerSubtree = (n) => { merged.set(key(n), n); for (const c of n.listChildren()) registerSubtree(c); };
|
|
26
|
+
// Graft: walk the body hierarchy top-down; any joint missing from the merged map whose parent IS
|
|
27
|
+
// mapped gets re-parented (with its whole subtree) under the mapped parent.
|
|
28
|
+
let grafted = 0, maxRestDiff = 0;
|
|
29
|
+
const bodyRoot = body.listJoints().find((j) => key(j) === 'root');
|
|
30
|
+
if (!bodyRoot) throw new Error('the body skin has no joint named "root"');
|
|
31
|
+
const walk = (n) => {
|
|
32
|
+
const k = key(n);
|
|
33
|
+
if (!merged.has(k)) {
|
|
34
|
+
const p = parentOf(n);
|
|
35
|
+
const mp = p ? merged.get(key(p)) : null;
|
|
36
|
+
if (!mp) throw new Error(`cannot graft ${n.getName()}: parent ${p?.getName()} unmapped`);
|
|
37
|
+
p.removeChild(n); mp.addChild(n); registerSubtree(n); grafted++;
|
|
38
|
+
return; // subtree moved wholesale
|
|
39
|
+
} else if (merged.get(k) !== n) {
|
|
40
|
+
const a = n.getTranslation(), b = merged.get(k).getTranslation();
|
|
41
|
+
for (let i = 0; i < 3; i++) maxRestDiff = Math.max(maxRestDiff, Math.abs(a[i] - b[i]));
|
|
42
|
+
}
|
|
43
|
+
for (const c of [...n.listChildren()]) walk(c);
|
|
44
|
+
};
|
|
45
|
+
walk(bodyRoot);
|
|
46
|
+
console.log(`grafted ${grafted} limb subtrees from the body hierarchy; max rest-translation diff of duplicates = ${maxRestDiff.toExponential(2)}`);
|
|
47
|
+
if (maxRestDiff > 1e-4) console.warn('WARNING: duplicate joints do not share a rest pose — the merge assumes they do; inspect before using this file');
|
|
48
|
+
for (const skin of others) {
|
|
49
|
+
const joints = skin.listJoints();
|
|
50
|
+
const mapped = joints.map((j) => { const m = merged.get(key(j)); if (!m) throw new Error(`unmapped joint ${j.getName()} in ${skin.getName()}`); return m; });
|
|
51
|
+
for (const j of joints) skin.removeJoint(j);
|
|
52
|
+
for (const j of mapped) skin.addJoint(j);
|
|
53
|
+
skin.setSkeleton(merged.get('root'));
|
|
54
|
+
}
|
|
55
|
+
let detached = 0;
|
|
56
|
+
for (const node of root.listNodes()) {
|
|
57
|
+
if (key(node) === 'root' && node !== merged.get('root')) {
|
|
58
|
+
for (const p of node.listParents().filter((p) => p.propertyType === 'Node')) { p.removeChild(node); detached++; }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
await doc.transform(prune());
|
|
62
|
+
const jointSets = root.listSkins().map((s) => s.getName() + ':' + s.listJoints().length);
|
|
63
|
+
const uniqueJoints = new Set(root.listSkins().flatMap((s) => s.listJoints()));
|
|
64
|
+
console.log(`detached ${detached} duplicate roots; nodes now ${root.listNodes().length}; skins ${jointSets.join(' ')}; unique joint nodes ${uniqueJoints.size}`);
|
|
65
|
+
const reachable = new Set(); const dfs = (n) => { reachable.add(n); for (const c of n.listChildren()) dfs(c); }; dfs(merged.get('root'));
|
|
66
|
+
const unreachable = [...uniqueJoints].filter((j) => !reachable.has(j)).map((j) => j.getName());
|
|
67
|
+
if (unreachable.length) throw new Error(`${unreachable.length} joints unreachable from root: ${unreachable.slice(0, 10).join(', ')}`);
|
|
68
|
+
await io.write(output, doc);
|
|
69
|
+
console.log('written', output);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "metahuman-tools",
|
|
3
|
+
"private": true,
|
|
4
|
+
"description": "GLB preparation and verification rig for Epic MetaHuman exports — see the importing-metahumans skill",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@gltf-transform/core": "^4.5.0",
|
|
8
|
+
"@gltf-transform/extensions": "^4.5.0",
|
|
9
|
+
"@gltf-transform/functions": "^4.5.0",
|
|
10
|
+
"draco3dgltf": "^1.5.7",
|
|
11
|
+
"playwright-core": "^1.59.1"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/zsh
|
|
2
|
+
# Prepare a MetaHuman glTF export (smorchj/metahuman-to-glb) for the Bitmagic engine, in five steps:
|
|
3
|
+
# 1 strip Draco (the engine's loader has no decoder) 2 merge the three skeleton copies into one
|
|
4
|
+
# 3 body mesh first (the engine reads the bind pose from the first skin)
|
|
5
|
+
# 4 Laplacian-smooth the garment weights (shorts 6 × λ0.5, shirt 12 × λ0.6)
|
|
6
|
+
# 5 give the garment the skin's weights wherever skin lies under it (no more poke-through)
|
|
7
|
+
# Usage: tools/metahuman/prepare.sh <export.glb> <out.glb> (env SHORT_RE / SHIRT_RE override the garment
|
|
8
|
+
# material regexes; KEEP_STEPS=1 keeps the intermediate files next to <out.glb>)
|
|
9
|
+
set -e
|
|
10
|
+
HERE="${0:A:h}"
|
|
11
|
+
IN="${1:A}"; OUT="${2:A}"
|
|
12
|
+
[[ -f "$IN" && -n "$2" ]] || { echo "usage: tools/metahuman/prepare.sh <export.glb> <out.glb>"; exit 2; }
|
|
13
|
+
mkdir -p "${OUT:h}"
|
|
14
|
+
cd "$HERE"
|
|
15
|
+
[[ -d node_modules ]] || npm install --no-audit --no-fund
|
|
16
|
+
T=$(mktemp -d)
|
|
17
|
+
node strip-draco.mjs "$IN" "$T/1-nodraco.glb"
|
|
18
|
+
node merge-skeletons.mjs "$T/1-nodraco.glb" "$T/2-merged.glb"
|
|
19
|
+
node reorder-body-first.mjs "$T/2-merged.glb" "$T/3-bodyfirst.glb"
|
|
20
|
+
node smooth-outfit-weights.mjs "$T/3-bodyfirst.glb" "$T/4-smooth-a.glb" 6 0.5 "${SHORT_RE:-Short}"
|
|
21
|
+
node smooth-outfit-weights.mjs "$T/4-smooth-a.glb" "$T/5-smooth-b.glb" 12 0.6 "${SHIRT_RE:-Shirt}"
|
|
22
|
+
node transfer-skin-weights.mjs "$T/5-smooth-b.glb" "$OUT" 0.02 0.045
|
|
23
|
+
if [[ -n "$KEEP_STEPS" ]]; then cp "$T"/*.glb "${OUT:h}/"; fi
|
|
24
|
+
rm -rf "$T"
|
|
25
|
+
ls -la "$OUT" | awk '{printf "prepared %s (%.1f MB)\n", $9, $5/1e6}'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Step 3: put the full-body skinned mesh FIRST in the glTF scene. The engine's CharacterLoader captures a
|
|
2
|
+
// rig's bind pose from the first skinned mesh it traverses; the face skin stops at the upper arms, so with
|
|
3
|
+
// the face first the forearms, hands and legs get raw clip rotations (split legs, twisted arms).
|
|
4
|
+
// Order: SKM_<name>_BodyMesh, <name>_Outfits, everything else, SKM_<name>_FaceMesh.
|
|
5
|
+
// node reorder-body-first.mjs in.glb out.glb
|
|
6
|
+
import { NodeIO } from '@gltf-transform/core';
|
|
7
|
+
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
|
|
8
|
+
const [,, input, output] = process.argv;
|
|
9
|
+
if (!input || !output) { console.error('usage: node reorder-body-first.mjs in.glb out.glb'); process.exit(2); }
|
|
10
|
+
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
|
11
|
+
const doc = await io.read(input);
|
|
12
|
+
const scene = doc.getRoot().listScenes()[0];
|
|
13
|
+
const kids = scene.listChildren();
|
|
14
|
+
const rank = (n) => (/^SKM_.*_BodyMesh$/i.test(n.getName()) ? 0 : /_Outfits$/i.test(n.getName()) ? 1 : /^SKM_.*_FaceMesh$/i.test(n.getName()) ? 3 : 2);
|
|
15
|
+
const sorted = [...kids].sort((a, b) => rank(a) - rank(b));
|
|
16
|
+
if (!sorted.some((n) => rank(n) === 0)) throw new Error(`no SKM_<name>_BodyMesh node at the scene root; roots: ${kids.map((n) => n.getName()).join(', ')}`);
|
|
17
|
+
for (const k of kids) scene.removeChild(k);
|
|
18
|
+
for (const k of sorted) scene.addChild(k);
|
|
19
|
+
console.log('scene order now:', scene.listChildren().map((n) => n.getName()).join(' → '));
|
|
20
|
+
await io.write(output, doc);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Step 4: Laplacian-smooth the skin weights of the outfit mesh so hard weight seams (a torso helper joint
|
|
2
|
+
// next to arm twist correctives at the armpit) become gradients. Keeps the 4 strongest influences.
|
|
3
|
+
// Run once per garment with its own strength: a short garment needs less than a shirt.
|
|
4
|
+
// node smooth-outfit-weights.mjs in.glb out.glb [iterations=6] [lambda=0.5] [materialRegex=.] [meshRegex=_Outfits$]
|
|
5
|
+
import { NodeIO } from '@gltf-transform/core';
|
|
6
|
+
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
|
|
7
|
+
const [,, input, output, iterationsArg = '6', lambdaArg = '0.5', onlyArg = '.', meshArg = '_Outfits$'] = process.argv;
|
|
8
|
+
if (!input || !output) { console.error('usage: node smooth-outfit-weights.mjs in.glb out.glb [iterations] [lambda] [materialRegex] [meshRegex]'); process.exit(2); }
|
|
9
|
+
const only = new RegExp(onlyArg, 'i'); const meshRe = new RegExp(meshArg, 'i');
|
|
10
|
+
const iterations = +iterationsArg, lambda = +lambdaArg;
|
|
11
|
+
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
|
12
|
+
const doc = await io.read(input);
|
|
13
|
+
let done = 0;
|
|
14
|
+
for (const mesh of doc.getRoot().listMeshes()) {
|
|
15
|
+
if (!meshRe.test(mesh.getName())) continue;
|
|
16
|
+
for (const prim of mesh.listPrimitives()) {
|
|
17
|
+
if (!only.test(prim.getMaterial()?.getName() ?? '')) continue;
|
|
18
|
+
const J = prim.getAttribute('JOINTS_0'), W = prim.getAttribute('WEIGHTS_0'), I = prim.getIndices();
|
|
19
|
+
if (!J || !W || !I) continue;
|
|
20
|
+
const n = J.getCount(); const j = new Uint32Array(4), w = new Float32Array(4);
|
|
21
|
+
const maps = [];
|
|
22
|
+
for (let v = 0; v < n; v++) { J.getElement(v, j); W.getElement(v, w); const m = new Map(); for (let k = 0; k < 4; k++) if (w[k] > 0) m.set(j[k], (m.get(j[k]) || 0) + w[k]); maps.push(m); }
|
|
23
|
+
const adj = Array.from({ length: n }, () => new Set());
|
|
24
|
+
const ia = I.getArray();
|
|
25
|
+
for (let t = 0; t < ia.length; t += 3) { const a = ia[t], b = ia[t + 1], c = ia[t + 2]; adj[a].add(b); adj[a].add(c); adj[b].add(a); adj[b].add(c); adj[c].add(a); adj[c].add(b); }
|
|
26
|
+
let cur = maps;
|
|
27
|
+
for (let it = 0; it < iterations; it++) {
|
|
28
|
+
const next = [];
|
|
29
|
+
for (let v = 0; v < n; v++) {
|
|
30
|
+
const nb = adj[v]; const acc = new Map();
|
|
31
|
+
for (const [k, x] of cur[v]) acc.set(k, (1 - lambda) * x);
|
|
32
|
+
if (nb.size) { const s = lambda / nb.size; for (const u of nb) for (const [k, x] of cur[u]) acc.set(k, (acc.get(k) || 0) + s * x); }
|
|
33
|
+
next.push(acc);
|
|
34
|
+
}
|
|
35
|
+
cur = next;
|
|
36
|
+
}
|
|
37
|
+
const jOut = new Uint16Array(n * 4), wOut = new Float32Array(n * 4);
|
|
38
|
+
for (let v = 0; v < n; v++) {
|
|
39
|
+
const top = [...cur[v].entries()].sort((a, b) => b[1] - a[1]).slice(0, 4);
|
|
40
|
+
const sum = top.reduce((s, [, x]) => s + x, 0) || 1;
|
|
41
|
+
top.forEach(([k, x], i) => { jOut[v * 4 + i] = k; wOut[v * 4 + i] = x / sum; });
|
|
42
|
+
}
|
|
43
|
+
J.setArray(jOut); W.setArray(wOut); done++;
|
|
44
|
+
console.log(`smoothed ${mesh.getName()} / ${prim.getMaterial()?.getName()}: ${n} vertices, ${iterations} iterations, lambda ${lambda}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (!done) console.warn(`nothing matched mesh /${meshArg}/ material /${onlyArg}/`);
|
|
48
|
+
await io.write(output, doc);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Step 1: rewrite a MetaHuman export without Draco compression — the engine's `engine.loader` is a plain
|
|
2
|
+
// GLTFLoader (no Draco / KTX2 decoders), so a compressed export loads as nothing at all. Prints an
|
|
3
|
+
// inventory (morph targets, skins, the joints the later steps rely on) so you can see what the export is.
|
|
4
|
+
// node strip-draco.mjs in.glb out.glb
|
|
5
|
+
import { NodeIO } from '@gltf-transform/core';
|
|
6
|
+
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
|
|
7
|
+
import draco3d from 'draco3dgltf';
|
|
8
|
+
const [,, input, output] = process.argv;
|
|
9
|
+
if (!input || !output) { console.error('usage: node strip-draco.mjs in.glb out.glb'); process.exit(2); }
|
|
10
|
+
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS).registerDependencies({
|
|
11
|
+
'draco3d.decoder': await draco3d.createDecoderModule(),
|
|
12
|
+
'draco3d.encoder': await draco3d.createEncoderModule(),
|
|
13
|
+
});
|
|
14
|
+
const doc = await io.read(input);
|
|
15
|
+
let stripped = 0;
|
|
16
|
+
for (const ext of doc.getRoot().listExtensionsUsed()) {
|
|
17
|
+
if (ext.extensionName === 'KHR_draco_mesh_compression') { ext.dispose(); stripped++; }
|
|
18
|
+
}
|
|
19
|
+
console.log(stripped ? 'Draco stripped' : 'no Draco extension present');
|
|
20
|
+
for (const mesh of doc.getRoot().listMeshes()) {
|
|
21
|
+
for (const prim of mesh.listPrimitives()) {
|
|
22
|
+
const t = prim.listTargets();
|
|
23
|
+
if (t.length) console.log(`mesh ${mesh.getName()} prim mat=${prim.getMaterial()?.getName()} targets=${t.length} targetAttrs=${t[0].listSemantics().join(',')}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
for (const skin of doc.getRoot().listSkins()) {
|
|
27
|
+
const names = skin.listJoints().map((j) => j.getName());
|
|
28
|
+
console.log(`skin ${skin.getName()} joints=${names.length} first=${names.slice(0, 8).join(',')}`);
|
|
29
|
+
console.log(` body/head joints present: ${names.filter((n) => /^(head|neck_0[12]|spine_0[1-5]|pelvis|root|clavicle_[lr]|upperarm_[lr]|hand_[lr]|thigh_[lr]|foot_[lr])$/.test(n)).join(',')}`);
|
|
30
|
+
}
|
|
31
|
+
await io.write(output, doc);
|
|
32
|
+
console.log('written', output);
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Step 5: give the outfit meshes the SKIN's weights wherever skin exists under them (shoulders, collar, arm
|
|
2
|
+
// tops from the body + the face mesh's neck skirt), so cloth and skin deform identically and the
|
|
3
|
+
// skin can no longer poke through. Blends back to the outfit's own weights away from any skin.
|
|
4
|
+
// node transfer-skin-weights.mjs in.glb out.glb [rFull=0.02] [rMax=0.045]
|
|
5
|
+
import { NodeIO } from '@gltf-transform/core';
|
|
6
|
+
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
|
|
7
|
+
const [,, input, output, rFullArg = '0.02', rMaxArg = '0.045'] = process.argv;
|
|
8
|
+
const R_FULL = +rFullArg, R_MAX = +rMaxArg;
|
|
9
|
+
const io = new NodeIO().registerExtensions(ALL_EXTENSIONS);
|
|
10
|
+
const doc = await io.read(input);
|
|
11
|
+
const root = doc.getRoot();
|
|
12
|
+
const nodeFor = (re) => root.listNodes().find((n) => re.test(n.getMesh()?.getName() ?? ''));
|
|
13
|
+
const outfitNode = nodeFor(/_Outfits$/i), bodyNode = nodeFor(/^SKM_.*_BodyMesh$/i), faceNode = nodeFor(/^SKM_.*_FaceMesh$/i);
|
|
14
|
+
if (!outfitNode || !bodyNode || !faceNode) throw new Error(`nodes: outfit ${!!outfitNode} body ${!!bodyNode} face ${!!faceNode}`);
|
|
15
|
+
const outSkin = outfitNode.getSkin();
|
|
16
|
+
const jointNames = (skin) => skin.listJoints().map((j) => j.getName());
|
|
17
|
+
const outNames = jointNames(outSkin); const outIndex = new Map(outNames.map((n, i) => [n, i]));
|
|
18
|
+
|
|
19
|
+
// Gather skin sources: [position, Map<jointName, weight>] per vertex, from every skin-material primitive.
|
|
20
|
+
const sources = [];
|
|
21
|
+
for (const [node, re] of [[bodyNode, /Body/], [faceNode, /Face_Skin/]]) {
|
|
22
|
+
const skin = node.getSkin(); const names = jointNames(skin);
|
|
23
|
+
for (const prim of node.getMesh().listPrimitives()) {
|
|
24
|
+
if (!re.test(prim.getMaterial()?.getName() ?? '')) continue;
|
|
25
|
+
const P = prim.getAttribute('POSITION'), J = prim.getAttribute('JOINTS_0'), W = prim.getAttribute('WEIGHTS_0');
|
|
26
|
+
const p = new Float32Array(3), j = new Uint32Array(4), w = new Float32Array(4);
|
|
27
|
+
for (let v = 0; v < P.getCount(); v++) {
|
|
28
|
+
P.getElement(v, p); J.getElement(v, j); W.getElement(v, w);
|
|
29
|
+
const m = new Map(); for (let k = 0; k < 4; k++) if (w[k] > 0.001) m.set(names[j[k]], (m.get(names[j[k]]) || 0) + w[k]);
|
|
30
|
+
sources.push({ x: p[0], y: p[1], z: p[2], m });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Spatial hash.
|
|
35
|
+
const CELL = R_MAX; const grid = new Map(); const key = (x, y, z) => `${Math.floor(x / CELL)},${Math.floor(y / CELL)},${Math.floor(z / CELL)}`;
|
|
36
|
+
sources.forEach((s, i) => { const k = key(s.x, s.y, s.z); (grid.get(k) || grid.set(k, []).get(k)).push(i); });
|
|
37
|
+
const near = (x, y, z) => {
|
|
38
|
+
const out = []; const cx = Math.floor(x / CELL), cy = Math.floor(y / CELL), cz = Math.floor(z / CELL);
|
|
39
|
+
for (let dx = -1; dx <= 1; dx++) for (let dy = -1; dy <= 1; dy++) for (let dz = -1; dz <= 1; dz++) {
|
|
40
|
+
const cell = grid.get(`${cx + dx},${cy + dy},${cz + dz}`); if (!cell) continue;
|
|
41
|
+
for (const i of cell) { const s = sources[i]; const d = Math.hypot(s.x - x, s.y - y, s.z - z); if (d <= R_MAX) out.push([d, i]); }
|
|
42
|
+
}
|
|
43
|
+
out.sort((a, b) => a[0] - b[0]); return out.slice(0, 3);
|
|
44
|
+
};
|
|
45
|
+
const smoothstep = (e0, e1, x) => { const t = Math.min(1, Math.max(0, (x - e0) / (e1 - e0))); return t * t * (3 - 2 * t); };
|
|
46
|
+
// Joints the outfit skin lacks (the face's neck correctives): add them, with the source skin's IBMs.
|
|
47
|
+
const needed = new Set();
|
|
48
|
+
for (const s of sources) for (const n of s.m.keys()) if (!outIndex.has(n)) needed.add(n);
|
|
49
|
+
if (needed.size) {
|
|
50
|
+
const faceSkin = faceNode.getSkin(); const faceNames = jointNames(faceSkin);
|
|
51
|
+
const ibmAcc = outSkin.getInverseBindMatrices(); const faceIbm = faceSkin.getInverseBindMatrices();
|
|
52
|
+
const old = ibmAcc.getArray(); const added = [...needed];
|
|
53
|
+
const arr = new Float32Array(old.length + added.length * 16); arr.set(old);
|
|
54
|
+
const m = new Float32Array(16);
|
|
55
|
+
added.forEach((name, k) => {
|
|
56
|
+
const fi = faceNames.indexOf(name); if (fi < 0) throw new Error(`joint ${name} not in face skin`);
|
|
57
|
+
faceIbm.getElement(fi, m); arr.set(m, old.length + k * 16);
|
|
58
|
+
outSkin.addJoint(faceSkin.listJoints()[fi]); outIndex.set(name, outNames.length + k);
|
|
59
|
+
});
|
|
60
|
+
ibmAcc.setArray(arr);
|
|
61
|
+
console.log(`added ${added.length} joints to the outfit skin (${added.slice(0, 4).join(', ')}…)`);
|
|
62
|
+
}
|
|
63
|
+
let full = 0, blended = 0, untouched = 0;
|
|
64
|
+
for (const prim of outfitNode.getMesh().listPrimitives()) {
|
|
65
|
+
const P = prim.getAttribute('POSITION'), J = prim.getAttribute('JOINTS_0'), W = prim.getAttribute('WEIGHTS_0');
|
|
66
|
+
const n = P.getCount(); const p = new Float32Array(3), j = new Uint32Array(4), w = new Float32Array(4);
|
|
67
|
+
const jOut = new Uint16Array(n * 4), wOut = new Float32Array(n * 4);
|
|
68
|
+
const curNames = jointNames(outSkin);
|
|
69
|
+
for (let v = 0; v < n; v++) {
|
|
70
|
+
P.getElement(v, p); J.getElement(v, j); W.getElement(v, w);
|
|
71
|
+
const own = new Map(); for (let k = 0; k < 4; k++) if (w[k] > 0.001) own.set(curNames[j[k]], (own.get(curNames[j[k]]) || 0) + w[k]);
|
|
72
|
+
const nb = near(p[0], p[1], p[2]);
|
|
73
|
+
let mix = own;
|
|
74
|
+
if (nb.length) {
|
|
75
|
+
const skinMap = new Map(); let tot = 0;
|
|
76
|
+
for (const [d, i] of nb) { const wgt = 1 / (d * d + 1e-6); tot += wgt; for (const [name, x] of sources[i].m) skinMap.set(name, (skinMap.get(name) || 0) + wgt * x); }
|
|
77
|
+
for (const [name, x] of skinMap) skinMap.set(name, x / tot);
|
|
78
|
+
const t = 1 - smoothstep(R_FULL, R_MAX, nb[0][0]);
|
|
79
|
+
if (t >= 0.999) full++; else blended++;
|
|
80
|
+
mix = new Map(); for (const [name, x] of skinMap) mix.set(name, t * x); for (const [name, x] of own) mix.set(name, (mix.get(name) || 0) + (1 - t) * x);
|
|
81
|
+
} else untouched++;
|
|
82
|
+
const top = [...mix.entries()].sort((a, b) => b[1] - a[1]).slice(0, 4);
|
|
83
|
+
const sum = top.reduce((s, [, x]) => s + x, 0) || 1;
|
|
84
|
+
top.forEach(([name, x], i) => { const idx = outIndex.get(name); if (idx === undefined) throw new Error(`no joint ${name}`); jOut[v * 4 + i] = idx; wOut[v * 4 + i] = x / sum; });
|
|
85
|
+
}
|
|
86
|
+
J.setArray(jOut); W.setArray(wOut);
|
|
87
|
+
console.log(`${prim.getMaterial()?.getName()}: ${n} vertices`);
|
|
88
|
+
}
|
|
89
|
+
console.log(`transfer: ${full} full, ${blended} blended, ${untouched} untouched (R_FULL ${R_FULL} m, R_MAX ${R_MAX} m); skin sources ${sources.length}`);
|
|
90
|
+
await io.write(output, doc);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SmartObjectSpec } from '@bitmagic/asset-core';
|
|
1
2
|
import type { Environment } from '../config/environments.js';
|
|
2
3
|
import type { ProjectContext } from '../project/context.js';
|
|
3
4
|
/** Bake resolution and scale. Defaults live with the commands, which document them to creators. */
|
|
@@ -18,9 +19,12 @@ export interface VoxelizeFlags {
|
|
|
18
19
|
export type BakeSource = {
|
|
19
20
|
kind: 'glb';
|
|
20
21
|
glbUrl: string;
|
|
21
|
-
}
|
|
22
|
+
}
|
|
23
|
+
/** `smartObject`: the Forger's parts-and-lights verdict for this master, baked with it when present. */
|
|
24
|
+
| {
|
|
22
25
|
kind: 'master';
|
|
23
26
|
masterUrl: string;
|
|
27
|
+
smartObject?: SmartObjectSpec;
|
|
24
28
|
};
|
|
25
29
|
/** The URL a source carries, for messages that just need to name what is kept. */
|
|
26
30
|
export declare function bakeSourceUrl(source: BakeSource): string;
|
|
@@ -59,6 +59,7 @@ export const voxelizeGlbIntoAsset = async (request) => {
|
|
|
59
59
|
maxVoxelSize: voxel.maxVoxelSize,
|
|
60
60
|
...(voxel.targetHeight !== undefined ? { targetHeight: voxel.targetHeight } : {}),
|
|
61
61
|
},
|
|
62
|
+
...(source.smartObject ? { smartObject: source.smartObject } : {}),
|
|
62
63
|
};
|
|
63
64
|
const result = await host.transport.sendAndWait(request_, 'ASSET_FROM_GLB_URL_RESULT', VOXELIZE_TIMEOUT_MS, { maxRetries: 1 });
|
|
64
65
|
if (!result) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voxelize-glb.js","sourceRoot":"","sources":["../../src/assets/voxelize-glb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"voxelize-glb.js","sourceRoot":"","sources":["../../src/assets/voxelize-glb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuBxD,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AAClE,CAAC;AAsBD,MAAM,CAAC,MAAM,oBAAoB,GAAgB,KAAK,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7G,OAAO,mBAAmB,CAAC;QACzB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG,EAAE,SAAS;KAClE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,GAAG,CAAC,WAAW,IAAI,QAAQ,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACnD,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,GAAG,aAAa,IAAI,OAAO,IAAI,IAAI,EAAE;YAChD,IAAI;YACJ,OAAO;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK;YACpC,CAAC,CAAC;gBACA,GAAG,MAAM;gBACT,IAAI,EAAE,2BAA2B;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,WAAW,EAAE,KAAK;iBACnB;aACF;YACD,CAAC,CAAC;gBACA,GAAG,MAAM;gBACT,IAAI,EAAE,8BAA8B;gBACpC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,yFAAyF;gBACzF,8CAA8C;gBAC9C,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClF;gBACD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAC7C,QAAQ,EACR,2BAA2B,EAC3B,mBAAmB,EACnB,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;YACjF,MAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,aAAa,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAoC,EACpC,OAAe,EACf,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,WAAW,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO;IACjC,MAAM,IAAI,QAAQ,CAChB,0BAA0B,IAAI,eAAe,QAAQ,IAAI,QAAQ,iBAAiB,OAAO,QAAQ;UAC/F,qFAAqF;UACrF,8DAA8D,QAAQ,IAAI,CAC7E,CAAC;AACJ,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Only what the fixed 48-byte body header states outright is trusted unconditionally: bounds,
|
|
8
8
|
* LOD-0 voxel size and fragment count. `voxelCount` is the sum of the LOD-0 fragments' leaf counts,
|
|
9
9
|
* found by walking the fragment table (its stride is `16 + leafCount × (7 + paletteIdxBytes)` for
|
|
10
|
-
* every version through
|
|
10
|
+
* every version through v12 — every addition since v5 changed what is INSIDE a fragment and what
|
|
11
11
|
* FOLLOWS the table, never its size; the v10 rig's bone column is per leaf but lives in its own
|
|
12
12
|
* trailing section). Should a future version change that, the walk runs off the end and the count
|
|
13
13
|
* is simply omitted rather than reported wrong.
|
|
@@ -35,7 +35,7 @@ const BODY_HEADER_BYTES = 48;
|
|
|
35
35
|
* suggest that the file is fine and the CLI is behind.
|
|
36
36
|
*/
|
|
37
37
|
const MIN_SUPPORTED_VERSION = 3;
|
|
38
|
-
const MAX_SUPPORTED_VERSION =
|
|
38
|
+
const MAX_SUPPORTED_VERSION = 12;
|
|
39
39
|
/** True when the first four bytes are the VXL3 magic — cheap, no copy, no decompression. */
|
|
40
40
|
export function isVxl3(bytes) {
|
|
41
41
|
if (bytes.byteLength < 4)
|
package/dist/commands/forge.js
CHANGED
|
@@ -673,7 +673,9 @@ export function decorateBrowserStepError(error, jobId) {
|
|
|
673
673
|
export const forgeCommand = defineCommand({
|
|
674
674
|
meta: {
|
|
675
675
|
name: 'forge',
|
|
676
|
-
description: 'Design, build and install a whole playable level from a prompt.'
|
|
676
|
+
description: 'Design, build and install a whole playable level from a prompt. '
|
|
677
|
+
+ 'Tens of sparks and up to twenty minutes: ask the creator first — recommended route, answerable in a word — '
|
|
678
|
+
+ 'unless they already said prototype or polished.',
|
|
677
679
|
},
|
|
678
680
|
args: {
|
|
679
681
|
prompt: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/commands/forge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/commands/forge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type CommandRunDeps } from './run-deps.js';
|
|
2
2
|
import { type ProjectContext } from '../project/context.js';
|
|
3
3
|
import { type GenerationOutcome } from '../generate/stream.js';
|
|
4
|
+
import { type SmartObjectSpec } from '@bitmagic/asset-core';
|
|
4
5
|
import { type PropVoxelizeResult } from '../generate/prop.js';
|
|
5
6
|
import { type VehicleInstallResult } from '../generate/vehicle.js';
|
|
6
7
|
import { type GenerateModelResult } from '../generate/model.js';
|
|
@@ -49,6 +50,25 @@ export interface MusicArgs {
|
|
|
49
50
|
* request is made — the plan's verification line 7.
|
|
50
51
|
*/
|
|
51
52
|
export declare function buildMusicBody(args: MusicArgs): Record<string, unknown>;
|
|
53
|
+
export interface SpeechArgs {
|
|
54
|
+
text: string;
|
|
55
|
+
voice?: string;
|
|
56
|
+
model?: string;
|
|
57
|
+
stability?: string;
|
|
58
|
+
similarityBoost?: string;
|
|
59
|
+
style?: string;
|
|
60
|
+
speed?: string;
|
|
61
|
+
assetId?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The same omission contract as {@link buildSoundBody}: a voice setting left alone is left out
|
|
65
|
+
* entirely, so Eleven Labs' own default stands rather than the CLI pinning a copy of it.
|
|
66
|
+
*
|
|
67
|
+
* The character cap is restated from the generator schema so an over-long line is refused here,
|
|
68
|
+
* before a request is made — this lane is billed by the length of the audio, and a 20,000
|
|
69
|
+
* character paste is an expensive way to learn about a 400.
|
|
70
|
+
*/
|
|
71
|
+
export declare function buildSpeechBody(args: SpeechArgs): Record<string, unknown>;
|
|
52
72
|
export interface ImageArgs {
|
|
53
73
|
name: string;
|
|
54
74
|
prompt: string;
|
|
@@ -220,6 +240,36 @@ export declare function runMusicGeneration(options: {
|
|
|
220
240
|
json: boolean;
|
|
221
241
|
deps?: GenerateRunDeps;
|
|
222
242
|
}): Promise<MusicRunResult>;
|
|
243
|
+
export interface SpeechRunResult {
|
|
244
|
+
speechUrl: string;
|
|
245
|
+
originalUrl: string;
|
|
246
|
+
speechId: string;
|
|
247
|
+
durationSeconds: number;
|
|
248
|
+
patchesApplied: number;
|
|
249
|
+
/** Where the MP3 was saved, when `--out` asked for it. */
|
|
250
|
+
file?: string;
|
|
251
|
+
bytes?: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* `generate speech` has the same two-outputs shape as `generate music`, and for a sharper reason:
|
|
255
|
+
* the world.json asset is a line an NPC speaks (`engine.playSound`), while the MP3 is the input
|
|
256
|
+
* `tools/lipsync/make_line.py --audio` needs to cut mouth cues from. A creator rigging a talking
|
|
257
|
+
* character wants the file and NOT the asset, so `--no-world` is a first-class path here rather
|
|
258
|
+
* than an escape hatch.
|
|
259
|
+
*
|
|
260
|
+
* Cannot go through {@link runAssetGeneration} because that always applies the patches and never
|
|
261
|
+
* downloads; it shares {@link requestAssetWithJobRecord} so the request, the job record and the
|
|
262
|
+
* "world.json is unchanged" failure contract are the same as every other lane's.
|
|
263
|
+
*/
|
|
264
|
+
export declare function runSpeechGeneration(options: {
|
|
265
|
+
body: Record<string, unknown>;
|
|
266
|
+
/** Save the MP3 here (relative to the current directory). */
|
|
267
|
+
out?: string;
|
|
268
|
+
/** Apply the asset to world.json. The default; `--no-world` turns it off. */
|
|
269
|
+
world: boolean;
|
|
270
|
+
json: boolean;
|
|
271
|
+
deps?: GenerateRunDeps;
|
|
272
|
+
}): Promise<SpeechRunResult>;
|
|
223
273
|
/**
|
|
224
274
|
* Refuses `--voxel-grid` alongside `--mesh`, rather than ignoring it.
|
|
225
275
|
*
|
|
@@ -246,6 +296,14 @@ export declare function assertOneRetrySource(glbUrl: string | undefined, masterU
|
|
|
246
296
|
* wrong". Caught here so a typo costs nothing rather than a GPU minute.
|
|
247
297
|
*/
|
|
248
298
|
export declare function parseVoxelGridFlag(raw: string | undefined): number | undefined;
|
|
299
|
+
/** Load and validate a `--smart-spec` from a URL or a local file. */
|
|
300
|
+
export declare function loadSmartSpec(source: string, fetchImpl?: typeof globalThis.fetch): Promise<SmartObjectSpec>;
|
|
301
|
+
/** `--smart` / `--smart-hint` as one field: the hint when given, else the boolean. */
|
|
302
|
+
export declare function smartField(smart: boolean | undefined, hint: string | undefined): {
|
|
303
|
+
smart?: boolean | string;
|
|
304
|
+
};
|
|
305
|
+
/** Refuses `--smart` on the mesh path, where there is no master to analyse. */
|
|
306
|
+
export declare function assertSmartAllowed(smart: boolean | string | undefined, mesh: boolean): void;
|
|
249
307
|
/**
|
|
250
308
|
* `generate prop` cannot go through {@link runAssetGeneration}: the prop generator returns a mesh,
|
|
251
309
|
* not patches, so there is nothing to apply until the CLI has voxelized it in a browser. This owns
|
|
@@ -263,6 +321,10 @@ export declare function runPropGeneration(options: {
|
|
|
263
321
|
mesh?: boolean;
|
|
264
322
|
/** `--voxel-grid`: the grid the master is forged at. Not valid with `--mesh`. */
|
|
265
323
|
voxelGrid?: number;
|
|
324
|
+
/** `--smart` / `--smart-hint`: find and bake the prop's moving parts and lights. Voxel path only. */
|
|
325
|
+
smart?: boolean | string;
|
|
326
|
+
/** `--smart-spec`: a stored SmartObjectSpec (URL or file) to bake `--master-url` with. */
|
|
327
|
+
smartSpec?: SmartObjectSpec;
|
|
266
328
|
/** `--no-materials`: leave the asset matte rather than classifying it after the bake. */
|
|
267
329
|
materials?: boolean;
|
|
268
330
|
/** `--keep-glb` / `--voxelize`; absent follows game.json artStyle. */
|