distark-render 1.1.16 → 1.1.17
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/assets/KidB.json +2088 -0
- package/dist/cli/distark-check.d.ts +1 -0
- package/dist/cli/distark-check.d.ts.map +1 -1
- package/dist/cli/distark-check.js +6 -0
- package/dist/cli/distark-check.js.map +1 -1
- package/dist/cli/explode.d.ts +8 -0
- package/dist/cli/explode.d.ts.map +1 -0
- package/dist/cli/explode.js +282 -0
- package/dist/cli/explode.js.map +1 -0
- package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
- package/dist/modules/adapters/skiaRenderer.js +22 -3
- package/dist/modules/adapters/skiaRenderer.js.map +1 -1
- package/dist/modules/eyeSystem.d.ts +46 -14
- package/dist/modules/eyeSystem.d.ts.map +1 -1
- package/dist/modules/eyeSystem.js +122 -101
- package/dist/modules/eyeSystem.js.map +1 -1
- package/dist/tests/test-eye-extremes-visual.d.ts +22 -0
- package/dist/tests/test-eye-extremes-visual.d.ts.map +1 -0
- package/dist/tests/test-eye-extremes-visual.js +281 -0
- package/dist/tests/test-eye-extremes-visual.js.map +1 -0
- package/package.json +2 -4
|
@@ -15,107 +15,125 @@ const DEFAULT_MOVEMENT_RANGES = {
|
|
|
15
15
|
'down-right': { x: 4, y: 2 },
|
|
16
16
|
'': { x: 0, y: 0 }
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* Socket coordinates are stored as 0-100 percentages of the head image dimensions.
|
|
34
|
-
* headWidth / headHeight must be the HEAD IMAGE size (dimensionValues.head), not the
|
|
35
|
-
* full character body, because the socket is drawn on top of the head sprite in
|
|
36
|
-
* EyeSocketModal.
|
|
37
|
-
*/
|
|
38
|
-
function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData) {
|
|
18
|
+
function buildDirectionMap(r) {
|
|
19
|
+
return {
|
|
20
|
+
'left': { x: -r.negX, y: 0 },
|
|
21
|
+
'right': { x: r.posX, y: 0 },
|
|
22
|
+
'up': { x: 0, y: -r.negY },
|
|
23
|
+
'down': { x: 0, y: r.posY },
|
|
24
|
+
'center': { x: 0, y: 0 },
|
|
25
|
+
'up-left': { x: -r.negX * 0.8, y: -r.negY * 0.8 },
|
|
26
|
+
'up-right': { x: r.posX * 0.8, y: -r.negY * 0.8 },
|
|
27
|
+
'down-left': { x: -r.negX * 0.8, y: r.posY * 0.8 },
|
|
28
|
+
'down-right': { x: r.posX * 0.8, y: r.posY * 0.8 },
|
|
29
|
+
'': { x: 0, y: 0 }
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData, headJointOffset) {
|
|
39
33
|
const left = eyeSockets.left;
|
|
40
34
|
const right = eyeSockets.right;
|
|
41
35
|
const hasLeft = left && left.length >= 3;
|
|
42
36
|
const hasRight = right && right.length >= 3;
|
|
43
|
-
if (!hasLeft && !hasRight)
|
|
44
|
-
return { ...DEFAULT_MOVEMENT_RANGES };
|
|
37
|
+
if (!hasLeft && !hasRight) {
|
|
38
|
+
return { left: { ...DEFAULT_MOVEMENT_RANGES }, right: { ...DEFAULT_MOVEMENT_RANGES } };
|
|
39
|
+
}
|
|
45
40
|
// Detect whether socket values are 0-100 percentages or raw pixels.
|
|
46
41
|
const allPts = [...(left || []), ...(right || [])];
|
|
47
42
|
const maxCoord = Math.max(...allPts.flatMap(p => [p.x, p.y]));
|
|
48
43
|
const isPercent = maxCoord > 0 && maxCoord <= 100;
|
|
49
|
-
const
|
|
44
|
+
const jx = headJointOffset?.x || 0;
|
|
45
|
+
const jy = headJointOffset?.y || 0;
|
|
46
|
+
/**
|
|
47
|
+
* Map a socket percentage point to iris coordinate space
|
|
48
|
+
* (headBaseTransform / headParentTransform local coordinates).
|
|
49
|
+
*
|
|
50
|
+
* The head image is drawn at headTransform which is offset from
|
|
51
|
+
* headBaseTransform by (jointOffset.x, jointOffset.y - headHeight/2).
|
|
52
|
+
* Within the head image, percentage (px, py) maps to local pixel
|
|
53
|
+
* ((px/100 - 0.5) * headWidth, (py/100 - 0.5) * headHeight).
|
|
54
|
+
*/
|
|
55
|
+
const socketPctToIris = (px, py) => {
|
|
56
|
+
if (isPercent) {
|
|
57
|
+
return {
|
|
58
|
+
x: jx + (px / 100 - 0.5) * headWidth,
|
|
59
|
+
y: (jy - headHeight / 2) + (py / 100 - 0.5) * headHeight,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return { x: px, y: py };
|
|
63
|
+
};
|
|
50
64
|
/** Full bounding box for one socket polygon. */
|
|
51
|
-
const
|
|
52
|
-
let
|
|
65
|
+
const socketBBox = (points) => {
|
|
66
|
+
let mnX = Infinity, mxX = -Infinity, mnY = Infinity, mxY = -Infinity;
|
|
53
67
|
for (const p of points) {
|
|
54
|
-
if (p.x <
|
|
55
|
-
|
|
56
|
-
if (p.x >
|
|
57
|
-
|
|
58
|
-
if (p.y <
|
|
59
|
-
|
|
60
|
-
if (p.y >
|
|
61
|
-
|
|
68
|
+
if (p.x < mnX)
|
|
69
|
+
mnX = p.x;
|
|
70
|
+
if (p.x > mxX)
|
|
71
|
+
mxX = p.x;
|
|
72
|
+
if (p.y < mnY)
|
|
73
|
+
mnY = p.y;
|
|
74
|
+
if (p.y > mxY)
|
|
75
|
+
mxY = p.y;
|
|
62
76
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
77
|
+
const topLeft = socketPctToIris(mnX, mnY);
|
|
78
|
+
const botRight = socketPctToIris(mxX, mxY);
|
|
79
|
+
return { minX: topLeft.x, maxX: botRight.x, minY: topLeft.y, maxY: botRight.y };
|
|
67
80
|
};
|
|
68
81
|
// Ratio-scaled iris rendered dimensions (same as renderRig.ts rendering).
|
|
69
82
|
const leftIrisW = ((eyeData?.leftIrisWidth || 10) * (eyeData?.leftIrisWidthRatio || 1));
|
|
70
83
|
const leftIrisH = ((eyeData?.leftIrisHeight || 10) * (eyeData?.leftIrisHeightRatio || 1));
|
|
71
84
|
const rightIrisW = ((eyeData?.rightIrisWidth || 10) * (eyeData?.rightIrisWidthRatio || 1));
|
|
72
85
|
const rightIrisH = ((eyeData?.rightIrisHeight || 10) * (eyeData?.rightIrisHeightRatio || 1));
|
|
86
|
+
const edgeFactor = 0.85;
|
|
73
87
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* to the boundary (mirrors the edgeFactor concept from the original design).
|
|
88
|
+
* Compute asymmetric per-direction max displacements from the iris BASE
|
|
89
|
+
* position, ensuring the iris edge stays within the usable bounds.
|
|
77
90
|
*
|
|
78
|
-
*
|
|
79
|
-
* When iris overflows (oversize iris ratios): iris center travels to the edge of
|
|
80
|
-
* the usable zone — same best-effort behaviour as Body.js manual mode.
|
|
91
|
+
* usable bounds = socket bbox shrunk by edgeFactor from its center.
|
|
81
92
|
*/
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
93
|
+
const computeRanges = (bbox, irisBaseX, irisBaseY, irisW, irisH) => {
|
|
94
|
+
const cx = (bbox.minX + bbox.maxX) / 2;
|
|
95
|
+
const cy = (bbox.minY + bbox.maxY) / 2;
|
|
96
|
+
const halfW = (bbox.maxX - bbox.minX) / 2;
|
|
97
|
+
const halfH = (bbox.maxY - bbox.minY) / 2;
|
|
98
|
+
const usableHalfW = halfW * edgeFactor;
|
|
99
|
+
const usableHalfH = halfH * edgeFactor;
|
|
100
|
+
// Max negative X displacement (moving left):
|
|
101
|
+
// irisBase + disp - irisW/2 >= cx - usableHalfW
|
|
102
|
+
// disp >= (cx - usableHalfW + irisW/2) - irisBase
|
|
103
|
+
const negX = Math.max(0, irisBaseX - (cx - usableHalfW + irisW / 2));
|
|
104
|
+
// Max positive X displacement (moving right):
|
|
105
|
+
// irisBase + disp + irisW/2 <= cx + usableHalfW
|
|
106
|
+
const posX = Math.max(0, (cx + usableHalfW - irisW / 2) - irisBaseX);
|
|
107
|
+
const negY = Math.max(0, irisBaseY - (cy - usableHalfH + irisH / 2));
|
|
108
|
+
const posY = Math.max(0, (cy + usableHalfH - irisH / 2) - irisBaseY);
|
|
109
|
+
return { negX, posX, negY, posY };
|
|
87
110
|
};
|
|
88
|
-
const
|
|
89
|
-
const
|
|
111
|
+
const leftIrisBaseX = eyeData?.leftIrisXCoor ?? 0;
|
|
112
|
+
const leftIrisBaseY = eyeData?.leftIrisYCoor ?? 0;
|
|
113
|
+
const rightIrisBaseX = eyeData?.rightIrisXCoor ?? 0;
|
|
114
|
+
const rightIrisBaseY = eyeData?.rightIrisYCoor ?? 0;
|
|
115
|
+
let leftRanges = { negX: 5, posX: 5, negY: 3, posY: 3 };
|
|
116
|
+
let rightRanges = { negX: 5, posX: 5, negY: 3, posY: 3 };
|
|
90
117
|
if (hasLeft && left) {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
rangesY.push(effectiveRange(b.socketH, leftIrisH));
|
|
118
|
+
const bb = socketBBox(left);
|
|
119
|
+
leftRanges = computeRanges(bb, leftIrisBaseX, leftIrisBaseY, leftIrisW, leftIrisH);
|
|
94
120
|
}
|
|
95
121
|
if (hasRight && right) {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
rangesY.push(effectiveRange(b.socketH, rightIrisH));
|
|
122
|
+
const bb = socketBBox(right);
|
|
123
|
+
rightRanges = computeRanges(bb, rightIrisBaseX, rightIrisBaseY, rightIrisW, rightIrisH);
|
|
99
124
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
125
|
+
if (!hasLeft && hasRight)
|
|
126
|
+
leftRanges = rightRanges;
|
|
127
|
+
else if (hasLeft && !hasRight)
|
|
128
|
+
rightRanges = leftRanges;
|
|
129
|
+
console.log('[EyeSystem] Socket-derived per-eye movement ranges:', {
|
|
130
|
+
left: leftRanges, right: rightRanges,
|
|
105
131
|
leftIrisRendered: { w: leftIrisW, h: leftIrisH },
|
|
106
132
|
rightIrisRendered: { w: rightIrisW, h: rightIrisH },
|
|
107
133
|
});
|
|
108
134
|
return {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
'up': { x: 0, y: -rangeY },
|
|
112
|
-
'down': { x: 0, y: rangeY },
|
|
113
|
-
'center': { x: 0, y: 0 },
|
|
114
|
-
'up-left': { x: -rangeX * 0.8, y: -rangeY * 0.8 },
|
|
115
|
-
'up-right': { x: rangeX * 0.8, y: -rangeY * 0.8 },
|
|
116
|
-
'down-left': { x: -rangeX * 0.8, y: rangeY * 0.8 },
|
|
117
|
-
'down-right': { x: rangeX * 0.8, y: rangeY * 0.8 },
|
|
118
|
-
'': { x: 0, y: 0 }
|
|
135
|
+
left: buildDirectionMap(leftRanges),
|
|
136
|
+
right: buildDirectionMap(rightRanges),
|
|
119
137
|
};
|
|
120
138
|
}
|
|
121
139
|
/**
|
|
@@ -145,20 +163,23 @@ export class EyeSystem {
|
|
|
145
163
|
hasValidSockets
|
|
146
164
|
});
|
|
147
165
|
if (hasValidSockets && eyeSockets) {
|
|
148
|
-
this.
|
|
149
|
-
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
this.
|
|
153
|
-
console.log('[EyeSystem]
|
|
166
|
+
this.perEyeRanges = computeMovementRangesFromSockets(eyeSockets, options?.headWidth ?? 100, options?.headHeight ?? 100, eyeData, options?.headJointOffset);
|
|
167
|
+
const lr = this.perEyeRanges.left;
|
|
168
|
+
const rr = this.perEyeRanges.right;
|
|
169
|
+
this.leftManualScale = Math.max(Math.abs(lr['left'].x), Math.abs(lr['right'].x), Math.abs(lr['up'].y), Math.abs(lr['down'].y)) / 2;
|
|
170
|
+
this.rightManualScale = Math.max(Math.abs(rr['left'].x), Math.abs(rr['right'].x), Math.abs(rr['up'].y), Math.abs(rr['down'].y)) / 2;
|
|
171
|
+
console.log('[EyeSystem] Per-eye movement ranges from sockets:', {
|
|
154
172
|
characterId: this.characterId,
|
|
155
|
-
|
|
156
|
-
|
|
173
|
+
leftRanges: this.perEyeRanges.left,
|
|
174
|
+
rightRanges: this.perEyeRanges.right,
|
|
175
|
+
leftManualScale: this.leftManualScale,
|
|
176
|
+
rightManualScale: this.rightManualScale
|
|
157
177
|
});
|
|
158
178
|
}
|
|
159
179
|
else {
|
|
160
|
-
this.
|
|
161
|
-
this.
|
|
180
|
+
this.perEyeRanges = { left: { ...DEFAULT_MOVEMENT_RANGES }, right: { ...DEFAULT_MOVEMENT_RANGES } };
|
|
181
|
+
this.leftManualScale = 2.5;
|
|
182
|
+
this.rightManualScale = 2.5;
|
|
162
183
|
}
|
|
163
184
|
// Store immutable copy of base iris coordinates
|
|
164
185
|
// This prevents accumulation when rigData is updated
|
|
@@ -306,12 +327,12 @@ export class EyeSystem {
|
|
|
306
327
|
*/
|
|
307
328
|
setEyeDirection(direction) {
|
|
308
329
|
this.state.currentDirection = direction;
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
this.state.leftIrisX = this.baseIrisCoords.leftX +
|
|
312
|
-
this.state.leftIrisY = this.baseIrisCoords.leftY +
|
|
313
|
-
this.state.rightIrisX = this.baseIrisCoords.rightX +
|
|
314
|
-
this.state.rightIrisY = this.baseIrisCoords.rightY +
|
|
330
|
+
const leftMov = this.perEyeRanges.left[direction] || { x: 0, y: 0 };
|
|
331
|
+
const rightMov = this.perEyeRanges.right[direction] || { x: 0, y: 0 };
|
|
332
|
+
this.state.leftIrisX = this.baseIrisCoords.leftX + leftMov.x;
|
|
333
|
+
this.state.leftIrisY = this.baseIrisCoords.leftY + leftMov.y;
|
|
334
|
+
this.state.rightIrisX = this.baseIrisCoords.rightX + rightMov.x;
|
|
335
|
+
this.state.rightIrisY = this.baseIrisCoords.rightY + rightMov.y;
|
|
315
336
|
}
|
|
316
337
|
/**
|
|
317
338
|
* Calculate eye direction to look at a target position
|
|
@@ -494,13 +515,11 @@ export class EyeSystem {
|
|
|
494
515
|
* - +2 represents maximum right/up
|
|
495
516
|
*/
|
|
496
517
|
setManualIrisPositions(eyePositions, currentTime) {
|
|
497
|
-
//
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
this.state.
|
|
501
|
-
this.state.
|
|
502
|
-
this.state.rightIrisX = this.baseIrisCoords.rightX + (eyePositions.right.x * scaleFactor);
|
|
503
|
-
this.state.rightIrisY = this.baseIrisCoords.rightY + (eyePositions.right.y * scaleFactor);
|
|
518
|
+
// Per-eye scale factors convert -2 to 2 range into pixel offsets
|
|
519
|
+
this.state.leftIrisX = this.baseIrisCoords.leftX + (eyePositions.left.x * this.leftManualScale);
|
|
520
|
+
this.state.leftIrisY = this.baseIrisCoords.leftY + (eyePositions.left.y * this.leftManualScale);
|
|
521
|
+
this.state.rightIrisX = this.baseIrisCoords.rightX + (eyePositions.right.x * this.rightManualScale);
|
|
522
|
+
this.state.rightIrisY = this.baseIrisCoords.rightY + (eyePositions.right.y * this.rightManualScale);
|
|
504
523
|
// Update last updated time to prevent automatic movement from overriding manual positioning
|
|
505
524
|
this.state.eyeLastUpdatedTime = currentTime;
|
|
506
525
|
// Mark as custom position
|
|
@@ -525,27 +544,29 @@ export class EyeSystem {
|
|
|
525
544
|
* @param options - Optional: { eyeSockets, headWidth, headHeight } - when provided, movement ranges are computed from eye socket polygons
|
|
526
545
|
*/
|
|
527
546
|
export function createEyeSystem(characterId, eyeDataOrRigData, options) {
|
|
528
|
-
// Check if rigData object was passed (has eyeSockets or eyes property)
|
|
529
547
|
const isRigData = eyeDataOrRigData && typeof eyeDataOrRigData === 'object' &&
|
|
530
548
|
('eyeSockets' in eyeDataOrRigData || 'eyes' in eyeDataOrRigData);
|
|
531
549
|
if (isRigData) {
|
|
532
550
|
const rigData = eyeDataOrRigData;
|
|
533
551
|
const eyeData = rigData.eyes || {};
|
|
534
|
-
// Prefer rigData's eyeSockets over options
|
|
535
552
|
const eyeSockets = rigData.eyeSockets || options?.eyeSockets;
|
|
536
|
-
|
|
537
|
-
|
|
553
|
+
// Socket coordinates are 0-100 percentages of the HEAD image, so we
|
|
554
|
+
// must use the head's own dimensions — not the rig-level width/height.
|
|
555
|
+
const headDims = rigData.dimensionValues?.head;
|
|
556
|
+
const headWidth = headDims?.width || options?.headWidth;
|
|
557
|
+
const headHeight = headDims?.height || options?.headHeight;
|
|
558
|
+
const headJointOffset = rigData.jointOffset?.['torso_head'];
|
|
538
559
|
if (eyeSockets) {
|
|
539
560
|
return new EyeSystem(characterId, {
|
|
540
561
|
eyeData,
|
|
541
562
|
eyeSockets,
|
|
542
563
|
headWidth,
|
|
543
|
-
headHeight
|
|
564
|
+
headHeight,
|
|
565
|
+
headJointOffset
|
|
544
566
|
});
|
|
545
567
|
}
|
|
546
568
|
return new EyeSystem(characterId, eyeData);
|
|
547
569
|
}
|
|
548
|
-
// Legacy: eyeData passed directly
|
|
549
570
|
const eyeData = eyeDataOrRigData;
|
|
550
571
|
if (options?.eyeSockets) {
|
|
551
572
|
return new EyeSystem(characterId, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test: Eye Iris Extreme Positions — Visual Verification
|
|
3
|
+
*
|
|
4
|
+
* Loads a character rig JSON and renders the irises at the four most extreme
|
|
5
|
+
* cardinal positions (left, right, up, down) as computed from the eye socket
|
|
6
|
+
* bounding calculations.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* npx tsx tests/test-eye-extremes-visual.ts [path/to/rig.json]
|
|
10
|
+
*
|
|
11
|
+
* Defaults to assets/KidB.json when no argument is given.
|
|
12
|
+
*
|
|
13
|
+
* Output images (in test-outputs/):
|
|
14
|
+
* <name>-socket-bounds.png — full rig with socket polygon overlays
|
|
15
|
+
* <name>-usable-bounds.png — full rig with usable bounds overlays
|
|
16
|
+
* <name>-iris-extreme-*.png — iris-only + solid bounding boxes (no rig)
|
|
17
|
+
*
|
|
18
|
+
* The core assertion: at each extreme position, each iris must be completely
|
|
19
|
+
* contained inside its own usable bounding box (verified via pixel checks).
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=test-eye-extremes-visual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-eye-extremes-visual.d.ts","sourceRoot":"","sources":["../../tests/test-eye-extremes-visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|