tosijs-3d 0.12.0 → 0.12.2
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/CHANGELOG.md +4 -2
- package/changelog/v0.12.1.md +13 -0
- package/changelog/v0.12.2.md +26 -0
- package/dist/character-builder.d.ts +1 -24
- package/dist/character-builder.d.ts.map +1 -1
- package/dist/character-builder.js +62 -71
- package/dist/character-builder.js.map +1 -1
- package/dist/character-core.d.ts.map +1 -1
- package/dist/character-core.js +9 -1
- package/dist/character-core.js.map +1 -1
- package/dist/character-settings.d.ts.map +1 -1
- package/dist/character-settings.js +1 -0
- package/dist/character-settings.js.map +1 -1
- package/dist/character-store.d.ts +16 -0
- package/dist/character-store.d.ts.map +1 -1
- package/dist/character-store.js +17 -0
- package/dist/character-store.js.map +1 -1
- package/dist/character.d.ts.map +1 -1
- package/dist/character.js +22 -60
- package/dist/character.js.map +1 -1
- package/dist/cloth-bake.d.ts +12 -0
- package/dist/cloth-bake.d.ts.map +1 -0
- package/dist/cloth-bake.js +75 -0
- package/dist/cloth-bake.js.map +1 -0
- package/dist/extremes-bones.d.ts +31 -0
- package/dist/extremes-bones.d.ts.map +1 -0
- package/dist/extremes-bones.js +130 -0
- package/dist/extremes-bones.js.map +1 -0
- package/dist/extremes-corners.d.ts +17 -0
- package/dist/extremes-corners.d.ts.map +1 -0
- package/dist/extremes-corners.js +137 -0
- package/dist/extremes-corners.js.map +1 -0
- package/dist/extremes-penetration.d.ts +53 -0
- package/dist/extremes-penetration.d.ts.map +1 -0
- package/dist/extremes-penetration.js +120 -0
- package/dist/extremes-penetration.js.map +1 -0
- package/dist/extremes-report.d.ts +73 -0
- package/dist/extremes-report.d.ts.map +1 -0
- package/dist/extremes-report.js +303 -0
- package/dist/extremes-report.js.map +1 -0
- package/dist/extremes-sheet.d.ts +18 -0
- package/dist/extremes-sheet.d.ts.map +1 -0
- package/dist/extremes-sheet.js +239 -0
- package/dist/extremes-sheet.js.map +1 -0
- package/dist/extremes-sweep.d.ts +117 -0
- package/dist/extremes-sweep.d.ts.map +1 -0
- package/dist/extremes-sweep.js +258 -0
- package/dist/extremes-sweep.js.map +1 -0
- package/dist/eye-art.d.ts +52 -0
- package/dist/eye-art.d.ts.map +1 -0
- package/dist/eye-art.js +152 -0
- package/dist/eye-art.js.map +1 -0
- package/dist/fit-extremes.d.ts +7 -0
- package/dist/fit-extremes.d.ts.map +1 -0
- package/dist/fit-extremes.js +55 -0
- package/dist/fit-extremes.js.map +1 -0
- package/dist/glb-chunks.d.ts +44 -0
- package/dist/glb-chunks.d.ts.map +1 -0
- package/dist/glb-chunks.js +253 -0
- package/dist/glb-chunks.js.map +1 -0
- package/dist/hair-place.d.ts +135 -0
- package/dist/hair-place.d.ts.map +1 -0
- package/dist/hair-place.js +396 -0
- package/dist/hair-place.js.map +1 -0
- package/dist/human-face.d.ts +11 -1
- package/dist/human-face.d.ts.map +1 -1
- package/dist/human-face.js +86 -3
- package/dist/human-face.js.map +1 -1
- package/dist/human-hair.d.ts +5 -87
- package/dist/human-hair.d.ts.map +1 -1
- package/dist/human-hair.js +11 -245
- package/dist/human-hair.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/mesh-sdf.d.ts +30 -0
- package/dist/mesh-sdf.d.ts.map +1 -0
- package/dist/mesh-sdf.js +453 -0
- package/dist/mesh-sdf.js.map +1 -0
- package/dist/png.d.ts +12 -0
- package/dist/png.d.ts.map +1 -1
- package/dist/png.js +82 -1
- package/dist/png.js.map +1 -1
- package/dist/proxy-cover.d.ts +23 -0
- package/dist/proxy-cover.d.ts.map +1 -1
- package/dist/proxy-cover.js +31 -18
- package/dist/proxy-cover.js.map +1 -1
- package/dist/skin-paint.d.ts +35 -0
- package/dist/skin-paint.d.ts.map +1 -0
- package/dist/skin-paint.js +156 -0
- package/dist/skin-paint.js.map +1 -0
- package/dist/skinned-glb.d.ts +107 -0
- package/dist/skinned-glb.d.ts.map +1 -0
- package/dist/skinned-glb.js +396 -0
- package/dist/skinned-glb.js.map +1 -0
- package/dist/widgets3d.d.ts +13 -0
- package/dist/widgets3d.d.ts.map +1 -1
- package/dist/widgets3d.js +31 -1
- package/dist/widgets3d.js.map +1 -1
- package/package.json +3 -1
- package/static/attributes.json +4 -0
- package/static/attributes.txt +1 -0
package/dist/character.js
CHANGED
|
@@ -71,7 +71,8 @@ dresses it again, a colour repaints. The work is in `ready()`.
|
|
|
71
71
|
|
|
72
72
|
`DEFAULT_CHARACTER` lists them with their defaults: MakeHuman's macro sliders
|
|
73
73
|
(`DEFAULT_HUMAN_BODY`), `tone` and `redness` (the skin), `iris` and
|
|
74
|
-
`irisColour`, `
|
|
74
|
+
`irisColour`, `eyeStyle` (Tonio's eye art, `basic` or `anime`, or `drawn` in
|
|
75
|
+
code), `stubble`, the hair (`hair`, `beard`, `moustache`, `brows`,
|
|
75
76
|
`hairBase`, `hairHighlight`, and `hairUp`, `hairForward`, `hairSize` to
|
|
76
77
|
nudge it), one setting per clothes slot (`CHARACTER_SLOTS`, a garment's name
|
|
77
78
|
or `none`), the face (`smile`, `browsUp`, `frown`, and `blink`, `talk`),
|
|
@@ -87,12 +88,14 @@ import * as BABYLON from '@babylonjs/core';
|
|
|
87
88
|
import { loadHumanPack } from './human-pack.js';
|
|
88
89
|
import { macroWeights, morphHuman, DEFAULT_HUMAN_BODY } from './human-morph.js';
|
|
89
90
|
import { humanSkin, humanBodyMaker } from './human-rig.js';
|
|
90
|
-
import { skinMaterial
|
|
91
|
+
import { skinMaterial } from './character-builder.js';
|
|
92
|
+
import { lipTint, stubbleMask as stubbleMask_, stubbleTint, } from './skin-paint.js';
|
|
91
93
|
import { humanFace, bodyEyes, eyeGaze, eyeTexture, eyeMaterial, lashMaterial, } from './human-face.js';
|
|
94
|
+
import { eyeStyle } from './eye-art.js';
|
|
92
95
|
import { loadHairLibrary, headScalp, hairMaterial, humanHair, } from './human-hair.js';
|
|
93
96
|
import { skinThinness } from './skin-shading.js';
|
|
94
97
|
import { vertexNormals } from './hair-fit.js';
|
|
95
|
-
import { nearestWeights,
|
|
98
|
+
import { nearestWeights, fitProxy, drawnPositions, underCover, inflate, proxyDelta, smoothUnder, } from './proxy-fit.js';
|
|
96
99
|
import { skinAlbedo } from './skin-tone.js';
|
|
97
100
|
import { humanProxy, proxyMaterial, coverBody } from './human-proxy.js';
|
|
98
101
|
import { hairShading } from './hair-shading.js';
|
|
@@ -107,6 +110,8 @@ import { applyRigRecipe } from './rig-recipe-babylon.js';
|
|
|
107
110
|
import { assetUrl } from './asset-url.js';
|
|
108
111
|
import { CHARACTER_SLOTS, DEFAULT_CHARACTER, hm08PackUrl, } from './character-settings.js';
|
|
109
112
|
export { CHARACTER_SLOTS, DEFAULT_CHARACTER } from './character-settings.js';
|
|
113
|
+
/** A character's `eyeStyle` setting as an eye texture's style. */
|
|
114
|
+
const eyeLook = (v) => v === 'drawn' ? 'drawn' : eyeStyle(v);
|
|
110
115
|
// A hosted body: its URL is read when it is used, after the page has set
|
|
111
116
|
// the asset base (computed at import, it came out relative to the page).
|
|
112
117
|
const hosted = (path, pick) => ({
|
|
@@ -353,7 +358,7 @@ export async function makeCharacter(scene, assets, options = {}) {
|
|
|
353
358
|
pack.part('eyes'),
|
|
354
359
|
pack.part('eyelashes'),
|
|
355
360
|
]);
|
|
356
|
-
const eyes = eyeTexture(scene, { iris: s.iris });
|
|
361
|
+
const eyes = eyeTexture(scene, { iris: s.iris, style: eyeLook(s.eyeStyle) });
|
|
357
362
|
eyes.setIrisColour(s.irisColour);
|
|
358
363
|
const faceMaterials = {
|
|
359
364
|
eye: eyeMaterial(scene, eyes),
|
|
@@ -456,64 +461,19 @@ export async function makeCharacter(scene, assets, options = {}) {
|
|
|
456
461
|
return;
|
|
457
462
|
const body = skin.positions(current);
|
|
458
463
|
const normals = vertexNormals(body, skin.triangles);
|
|
459
|
-
const
|
|
464
|
+
const drawn = async (name) => {
|
|
460
465
|
const p = (await pack.proxy(name));
|
|
461
|
-
return
|
|
466
|
+
return drawnPositions(p, fitProxy(p, current));
|
|
462
467
|
};
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
lipTop = Math.max(lipTop, current[v * 3 + 1]);
|
|
473
|
-
const cap = lipTop + 0.03;
|
|
474
|
-
const smooth = (t) => {
|
|
475
|
-
t = Math.min(1, Math.max(0, t));
|
|
476
|
-
return t * t * (3 - 2 * t);
|
|
477
|
-
};
|
|
478
|
-
const n = body.length / 3;
|
|
479
|
-
const mask = new Float32Array(n);
|
|
480
|
-
for (let i = 0; i < n; i++) {
|
|
481
|
-
const b = beard[i] === Infinity ? 0 : smooth((cap - body[i * 3 + 1]) / 0.015);
|
|
482
|
-
const t = tache && tache[i] !== Infinity ? 1 : 0;
|
|
483
|
-
// Not on the lips themselves.
|
|
484
|
-
mask[i] =
|
|
485
|
-
Math.max(b, t) * (1 - smooth((lips[skin.vertices[i]] - 0.05) / 0.45));
|
|
486
|
-
}
|
|
487
|
-
// Down the neck: the full beard stops at the jaw, but stubble grows on
|
|
488
|
-
// the throat and the sides of the neck, fading over 5 cm below the
|
|
489
|
-
// beard's edge. Front and sides only (the normal faces forward or out).
|
|
490
|
-
const edge = [];
|
|
491
|
-
let low = Infinity;
|
|
492
|
-
for (let i = 0; i < n; i++)
|
|
493
|
-
if (mask[i] > 0.5 && body[i * 3 + 1] < lipTop) {
|
|
494
|
-
edge.push(i);
|
|
495
|
-
low = Math.min(low, body[i * 3 + 1]);
|
|
496
|
-
}
|
|
497
|
-
const REACH = 0.05;
|
|
498
|
-
for (let i = 0; i < n; i++) {
|
|
499
|
-
const y = body[i * 3 + 1];
|
|
500
|
-
if (mask[i] > 0.5 ||
|
|
501
|
-
y > lipTop ||
|
|
502
|
-
y < low - REACH ||
|
|
503
|
-
normals[i * 3 + 2] < -0.2)
|
|
504
|
-
continue;
|
|
505
|
-
let d = Infinity;
|
|
506
|
-
for (const j of edge) {
|
|
507
|
-
if (body[j * 3 + 1] < y)
|
|
508
|
-
continue;
|
|
509
|
-
const dx = body[j * 3] - body[i * 3];
|
|
510
|
-
const dy = body[j * 3 + 1] - y;
|
|
511
|
-
const dz = body[j * 3 + 2] - body[i * 3 + 2];
|
|
512
|
-
d = Math.min(d, dx * dx + dy * dy + dz * dz);
|
|
513
|
-
}
|
|
514
|
-
mask[i] = Math.max(mask[i], smooth(1 - Math.sqrt(d) / REACH));
|
|
515
|
-
}
|
|
516
|
-
stubbleMask = mask;
|
|
468
|
+
stubbleMask = stubbleMask_({
|
|
469
|
+
skin: body,
|
|
470
|
+
normals,
|
|
471
|
+
vertices: skin.vertices,
|
|
472
|
+
positions: current,
|
|
473
|
+
lips: lips,
|
|
474
|
+
beard: await drawn(beardFor),
|
|
475
|
+
tache: tacheFor ? await drawn(tacheFor) : null,
|
|
476
|
+
});
|
|
517
477
|
paint();
|
|
518
478
|
};
|
|
519
479
|
/*
|
|
@@ -970,6 +930,8 @@ export async function makeCharacter(scene, assets, options = {}) {
|
|
|
970
930
|
eyes.setIris(s.iris);
|
|
971
931
|
if (has('irisColour'))
|
|
972
932
|
eyes.setIrisColour(s.irisColour);
|
|
933
|
+
if (has('eyeStyle'))
|
|
934
|
+
eyes.setStyle(eyeLook(s.eyeStyle));
|
|
973
935
|
if (has('hairBase') || has('hairHighlight'))
|
|
974
936
|
recolour();
|
|
975
937
|
queue(async () => {
|
package/dist/character.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RgbaImage } from './png.js';
|
|
2
|
+
/** A texture's mean brightness (linear luminance), sampled as the material measures it. */
|
|
3
|
+
export declare function textureMean(image: RgbaImage): number;
|
|
4
|
+
/**
|
|
5
|
+
* The texture recoloured toward `colour` (sRGB: anything `parseColor` reads)
|
|
6
|
+
* by `amount`, as cloth-shading draws it. `mean` defaults to the texture's
|
|
7
|
+
* own. Alpha is kept. An unreadable colour returns a copy unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export declare function recolourCloth(image: RgbaImage, colour: string, amount: number, mean?: number): RgbaImage;
|
|
10
|
+
/** The sheen colour cloth-shading gives a recoloured fabric: a lighter version of it. */
|
|
11
|
+
export declare function clothSheenColour(colour: string): [number, number, number] | null;
|
|
12
|
+
//# sourceMappingURL=cloth-bake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloth-bake.d.ts","sourceRoot":"","sources":["../src/cloth-bake.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,SAAqB,GACxB,SAAS,CAmBX;AAED,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIhF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*#
|
|
2
|
+
# cloth bake
|
|
3
|
+
|
|
4
|
+
**A recoloured garment as a picture**, with no engine: what
|
|
5
|
+
[cloth-shading](/cloth-shading/)'s recolour does in a shader, done to the
|
|
6
|
+
texture's pixels, so an export carries the colour the character builder
|
|
7
|
+
shows in a plain glTF base-colour texture any engine draws.
|
|
8
|
+
|
|
9
|
+
The recolour reads the texture as grey (its shading: folds, stitching, a
|
|
10
|
+
weave), tints it, and blends by `amount` (0 keeps the texture's own colours,
|
|
11
|
+
1 is the colour wholly). The tint is divided by the texture's MEAN brightness
|
|
12
|
+
so a dark texture tinted keeps the colour's value rather than going darker
|
|
13
|
+
still; `textureMean` measures it exactly as the shader's material does.
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
import { pngDecode, pngEncode } from 'tosijs-3d/png'
|
|
17
|
+
import { recolourCloth, clothSheenColour } from 'tosijs-3d/cloth-bake'
|
|
18
|
+
const shirt = pngDecode(bytes)
|
|
19
|
+
const red = recolourCloth(shirt, '#7a2e2e', 0.8)
|
|
20
|
+
const png = pngEncode(red.data, red.width, red.height)
|
|
21
|
+
const sheen = clothSheenColour('#7a2e2e') // KHR_materials_sheen's colour, linear
|
|
22
|
+
```
|
|
23
|
+
*/
|
|
24
|
+
/*{ "parent": "character-core", "order": 38 }*/
|
|
25
|
+
import { parseColor } from './color.js';
|
|
26
|
+
const toLinear = (c) => c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
27
|
+
const toSrgb = (c) => c <= 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
|
|
28
|
+
/** A texture's mean brightness (linear luminance), sampled as the material measures it. */
|
|
29
|
+
export function textureMean(image) {
|
|
30
|
+
const d = image.data;
|
|
31
|
+
let sum = 0;
|
|
32
|
+
let n = 0;
|
|
33
|
+
for (let i = 0; i < d.length; i += 4 * 37) {
|
|
34
|
+
sum +=
|
|
35
|
+
0.2126 * toLinear(d[i] / 255) +
|
|
36
|
+
0.7152 * toLinear(d[i + 1] / 255) +
|
|
37
|
+
0.0722 * toLinear(d[i + 2] / 255);
|
|
38
|
+
n++;
|
|
39
|
+
}
|
|
40
|
+
return n > 0 ? sum / n : 0.35;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The texture recoloured toward `colour` (sRGB: anything `parseColor` reads)
|
|
44
|
+
* by `amount`, as cloth-shading draws it. `mean` defaults to the texture's
|
|
45
|
+
* own. Alpha is kept. An unreadable colour returns a copy unchanged.
|
|
46
|
+
*/
|
|
47
|
+
export function recolourCloth(image, colour, amount, mean = textureMean(image)) {
|
|
48
|
+
const data = image.data.slice();
|
|
49
|
+
const c = parseColor(colour);
|
|
50
|
+
const a = Math.min(1, Math.max(0, amount));
|
|
51
|
+
if (c == null || a === 0)
|
|
52
|
+
return { ...image, data };
|
|
53
|
+
const k = 1 / Math.max(0.05, mean);
|
|
54
|
+
const tint = [toLinear(c.r) * k, toLinear(c.g) * k, toLinear(c.b) * k];
|
|
55
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
56
|
+
const r = toLinear(data[i] / 255);
|
|
57
|
+
const g = toLinear(data[i + 1] / 255);
|
|
58
|
+
const b = toLinear(data[i + 2] / 255);
|
|
59
|
+
const l = 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
60
|
+
const rgb = [r, g, b];
|
|
61
|
+
for (let ch = 0; ch < 3; ch++) {
|
|
62
|
+
const v = rgb[ch] + (tint[ch] * l - rgb[ch]) * a;
|
|
63
|
+
data[i + ch] = Math.round(Math.min(1, Math.max(0, toSrgb(v))) * 255);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { width: image.width, height: image.height, data };
|
|
67
|
+
}
|
|
68
|
+
/** The sheen colour cloth-shading gives a recoloured fabric: a lighter version of it. */
|
|
69
|
+
export function clothSheenColour(colour) {
|
|
70
|
+
const c = parseColor(colour);
|
|
71
|
+
if (c == null)
|
|
72
|
+
return null;
|
|
73
|
+
return [0.6 + 0.4 * c.r, 0.6 + 0.4 * c.g, 0.6 + 0.4 * c.b];
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cloth-bake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloth-bake.js","sourceRoot":"","sources":["../src/cloth-bake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FittedRig } from './rig-fit.js';
|
|
2
|
+
import type { MeshSdf } from './mesh-sdf.js';
|
|
3
|
+
export interface BoneIssue {
|
|
4
|
+
joint: string;
|
|
5
|
+
kind: 'non-finite' | 'collapsed' | 'scale' | 'asymmetric' | 'order' | 'outside';
|
|
6
|
+
detail: string;
|
|
7
|
+
/** How far off: a ratio for scale/asymmetry, metres for order/outside. */
|
|
8
|
+
amount: number;
|
|
9
|
+
}
|
|
10
|
+
export interface BoneReport {
|
|
11
|
+
/** The body's height, metres (head joint top to floor is not used: mesh span). */
|
|
12
|
+
height: number;
|
|
13
|
+
issues: BoneIssue[];
|
|
14
|
+
/** Each joint's length to its parent, metres. */
|
|
15
|
+
lengths: Record<string, number>;
|
|
16
|
+
}
|
|
17
|
+
export interface BoneReference {
|
|
18
|
+
height: number;
|
|
19
|
+
lengths: Record<string, number>;
|
|
20
|
+
/** Joints outside the skin on the default body (not flagged again). */
|
|
21
|
+
outside: Set<string>;
|
|
22
|
+
}
|
|
23
|
+
/** A bone may grow or shrink by this factor (after height) before it is flagged. */
|
|
24
|
+
export declare const SCALE_LIMIT = 2;
|
|
25
|
+
/** Left and right may differ by this fraction. */
|
|
26
|
+
export declare const SYMMETRY_LIMIT = 0.03;
|
|
27
|
+
export declare function boneLengths(rig: FittedRig): Record<string, number>;
|
|
28
|
+
/** The default body's numbers, for the per-corner checks. */
|
|
29
|
+
export declare function boneReference(rig: FittedRig, height: number, sdf: MeshSdf): BoneReference;
|
|
30
|
+
export declare function checkBones(rig: FittedRig, height: number, sdf: MeshSdf, ref: BoneReference): BoneReport;
|
|
31
|
+
//# sourceMappingURL=extremes-bones.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extremes-bones.d.ts","sourceRoot":"","sources":["../src/extremes-bones.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EACA,YAAY,GACZ,WAAW,GACX,OAAO,GACP,YAAY,GACZ,OAAO,GACP,SAAS,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,uEAAuE;IACvE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAID,oFAAoF;AACpF,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,kDAAkD;AAClD,eAAO,MAAM,cAAc,OAAO,CAAA;AAgBlC,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQlE;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,aAAa,CAMf;AAMD,wBAAgB,UAAU,CACxB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,aAAa,GACjB,UAAU,CA8EZ"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
BONE-LENGTH SANITY: the skeleton a body gets (`humanRig`, UAL's
|
|
3
|
+
65 joints fitted to the morphed body) checked for what would break an
|
|
4
|
+
animation: a bone that collapses or balloons against the body's size, left
|
|
5
|
+
and right that disagree, a chain that folds back on itself, and a joint
|
|
6
|
+
that has left the body it moves.
|
|
7
|
+
|
|
8
|
+
Each check is relative to the default body where it can be, so a quirk of
|
|
9
|
+
the rig table (a joint that sits outside the skin on every body, like the
|
|
10
|
+
floor-level root) is reported once as a baseline, not on every corner.
|
|
11
|
+
|
|
12
|
+
Pure.
|
|
13
|
+
*/
|
|
14
|
+
/** Bones shorter than this on the default body are not scale-checked. */
|
|
15
|
+
const MIN_REFERENCE = 0.005;
|
|
16
|
+
/** A bone may grow or shrink by this factor (after height) before it is flagged. */
|
|
17
|
+
export const SCALE_LIMIT = 2;
|
|
18
|
+
/** Left and right may differ by this fraction. */
|
|
19
|
+
export const SYMMETRY_LIMIT = 0.03;
|
|
20
|
+
const len = (a, b) => Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z);
|
|
21
|
+
/** Chains that run downward (head first, as y falls) in the rest pose. */
|
|
22
|
+
const DOWNWARD = [
|
|
23
|
+
['Head', 'neck_01', 'spine_03', 'spine_02', 'spine_01', 'pelvis'],
|
|
24
|
+
['thigh_l', 'calf_l', 'foot_l'],
|
|
25
|
+
['thigh_r', 'calf_r', 'foot_r'],
|
|
26
|
+
['upperarm_l', 'lowerarm_l', 'hand_l'],
|
|
27
|
+
['upperarm_r', 'lowerarm_r', 'hand_r'],
|
|
28
|
+
];
|
|
29
|
+
export function boneLengths(rig) {
|
|
30
|
+
const out = {};
|
|
31
|
+
for (const j of rig.joints) {
|
|
32
|
+
if (j.parent == null)
|
|
33
|
+
continue;
|
|
34
|
+
const p = rig.at(j.parent);
|
|
35
|
+
if (p)
|
|
36
|
+
out[j.name] = len(j.position, p);
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
/** The default body's numbers, for the per-corner checks. */
|
|
41
|
+
export function boneReference(rig, height, sdf) {
|
|
42
|
+
const outside = new Set();
|
|
43
|
+
for (const j of rig.joints)
|
|
44
|
+
if (sdf.distance(j.position.x, j.position.y, j.position.z) > 0)
|
|
45
|
+
outside.add(j.name);
|
|
46
|
+
return { height, lengths: boneLengths(rig), outside };
|
|
47
|
+
}
|
|
48
|
+
/** The pair of a `_l` joint, or null. */
|
|
49
|
+
const mirror = (name) => name.endsWith('_l') ? name.slice(0, -2) + '_r' : null;
|
|
50
|
+
export function checkBones(rig, height, sdf, ref) {
|
|
51
|
+
const issues = [];
|
|
52
|
+
const lengths = boneLengths(rig);
|
|
53
|
+
for (const j of rig.joints) {
|
|
54
|
+
const { x, y, z } = j.position;
|
|
55
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
|
|
56
|
+
issues.push({
|
|
57
|
+
joint: j.name,
|
|
58
|
+
kind: 'non-finite',
|
|
59
|
+
detail: 'position is not finite',
|
|
60
|
+
amount: NaN,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const k = height / ref.height;
|
|
64
|
+
for (const [name, l] of Object.entries(lengths)) {
|
|
65
|
+
const l0 = ref.lengths[name];
|
|
66
|
+
if (l0 == null || l0 < MIN_REFERENCE)
|
|
67
|
+
continue;
|
|
68
|
+
if (l < 0.001) {
|
|
69
|
+
issues.push({
|
|
70
|
+
joint: name,
|
|
71
|
+
kind: 'collapsed',
|
|
72
|
+
detail: `${(l * 1000).toFixed(1)} mm`,
|
|
73
|
+
amount: l,
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const r = l / (l0 * k);
|
|
78
|
+
if (r > SCALE_LIMIT || r < 1 / SCALE_LIMIT)
|
|
79
|
+
issues.push({
|
|
80
|
+
joint: name,
|
|
81
|
+
kind: 'scale',
|
|
82
|
+
detail: `${r.toFixed(2)}x the default's length, after height`,
|
|
83
|
+
amount: r,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
for (const [name, l] of Object.entries(lengths)) {
|
|
87
|
+
const other = mirror(name);
|
|
88
|
+
if (other == null || lengths[other] == null)
|
|
89
|
+
continue;
|
|
90
|
+
const m = Math.max(l, lengths[other]);
|
|
91
|
+
if (m < MIN_REFERENCE)
|
|
92
|
+
continue;
|
|
93
|
+
const d = Math.abs(l - lengths[other]) / m;
|
|
94
|
+
if (d > SYMMETRY_LIMIT)
|
|
95
|
+
issues.push({
|
|
96
|
+
joint: name,
|
|
97
|
+
kind: 'asymmetric',
|
|
98
|
+
detail: `left ${(l * 1000).toFixed(1)} mm, right ${(lengths[other] * 1000).toFixed(1)} mm`,
|
|
99
|
+
amount: d,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
for (const chain of DOWNWARD)
|
|
103
|
+
for (let i = 1; i < chain.length; i++) {
|
|
104
|
+
const a = rig.at(chain[i - 1]);
|
|
105
|
+
const b = rig.at(chain[i]);
|
|
106
|
+
if (!a || !b)
|
|
107
|
+
continue;
|
|
108
|
+
if (b.y >= a.y)
|
|
109
|
+
issues.push({
|
|
110
|
+
joint: chain[i],
|
|
111
|
+
kind: 'order',
|
|
112
|
+
detail: `not below ${chain[i - 1]} (${((b.y - a.y) * 1000).toFixed(1)} mm above)`,
|
|
113
|
+
amount: b.y - a.y,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
for (const j of rig.joints) {
|
|
117
|
+
if (ref.outside.has(j.name))
|
|
118
|
+
continue;
|
|
119
|
+
const d = sdf.distance(j.position.x, j.position.y, j.position.z);
|
|
120
|
+
if (d > 0)
|
|
121
|
+
issues.push({
|
|
122
|
+
joint: j.name,
|
|
123
|
+
kind: 'outside',
|
|
124
|
+
detail: `${(d * 1000).toFixed(1)} mm outside the skin`,
|
|
125
|
+
amount: d,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return { height, issues, lengths };
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=extremes-bones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extremes-bones.js","sourceRoot":"","sources":["../src/extremes-bones.ts"],"names":[],"mappings":"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"}
|