@rydr/game-sdk 8.14.0 → 8.15.0
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/protocol/identity.d.ts +39 -0
- package/dist/protocol/identity.d.ts.map +1 -1
- package/dist/protocol/version.d.ts +1 -1
- package/dist/protocol/version.js +1 -1
- package/dist/three/README.md +132 -4
- package/dist/three/controller/index.d.ts +2 -0
- package/dist/three/controller/index.d.ts.map +1 -1
- package/dist/three/controller/index.js +2 -0
- package/dist/three/controller/index.js.map +1 -1
- package/dist/three/controller/joycon-designs.d.ts +15 -1
- package/dist/three/controller/joycon-designs.d.ts.map +1 -1
- package/dist/three/controller/joycon-designs.js +301 -17
- package/dist/three/controller/joycon-designs.js.map +1 -1
- package/dist/three/controller/joycon-object.d.ts +216 -0
- package/dist/three/controller/joycon-object.d.ts.map +1 -0
- package/dist/three/controller/joycon-object.js +578 -0
- package/dist/three/controller/joycon-object.js.map +1 -0
- package/dist/three/controller/joycon-spec.d.ts +116 -4
- package/dist/three/controller/joycon-spec.d.ts.map +1 -1
- package/dist/three/controller/joycon-spec.js +128 -22
- package/dist/three/controller/joycon-spec.js.map +1 -1
- package/dist/three/controller/press-pulse.d.ts +89 -0
- package/dist/three/controller/press-pulse.d.ts.map +1 -0
- package/dist/three/controller/press-pulse.js +309 -0
- package/dist/three/controller/press-pulse.js.map +1 -0
- package/dist/three/controller/three-pad-renderer.d.ts +11 -22
- package/dist/three/controller/three-pad-renderer.d.ts.map +1 -1
- package/dist/three/controller/three-pad-renderer.js +49 -247
- package/dist/three/controller/three-pad-renderer.js.map +1 -1
- package/dist/three/rider/three-rider-rig.d.ts +12 -0
- package/dist/three/rider/three-rider-rig.d.ts.map +1 -1
- package/dist/three/rider/three-rider-rig.js +101 -6
- package/dist/three/rider/three-rider-rig.js.map +1 -1
- package/dist/ui/README.md +133 -7
- package/dist/ui/controller/controller-pad.d.ts +105 -2
- package/dist/ui/controller/controller-pad.d.ts.map +1 -1
- package/dist/ui/controller/controller-pad.js +347 -16
- package/dist/ui/controller/controller-pad.js.map +1 -1
- package/dist/ui/controller/renderer.d.ts +13 -0
- package/dist/ui/controller/renderer.d.ts.map +1 -1
- package/dist/ui/controller/renderer.js.map +1 -1
- package/dist/ui/controller/styles.js +50 -1
- package/dist/ui/controller/styles.js.map +1 -1
- package/dist/ui/hud-placement.d.ts +81 -0
- package/dist/ui/hud-placement.d.ts.map +1 -0
- package/dist/ui/hud-placement.js +74 -0
- package/dist/ui/hud-placement.js.map +1 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/rider-rig.d.ts +108 -10
- package/dist/ui/rider-rig.d.ts.map +1 -1
- package/dist/ui/rider-rig.js +299 -48
- package/dist/ui/rider-rig.js.map +1 -1
- package/package.json +4 -2
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* be read from across a room, which is the actual use case.
|
|
12
12
|
* {@link buildHoloJoycon} "Holo" — translucent shell with lit edges and emissive controls, in
|
|
13
13
|
* the SDK's own accent language. Reads as UI rather than as an object.
|
|
14
|
+
* {@link buildNoirJoycon} "Noir" — "Toy" repainted: both shells black, white keys with dark
|
|
15
|
+
* lettering, black shoulders with light lettering.
|
|
14
16
|
*
|
|
15
17
|
* Each returns a `JoyconBuild`: the group to add to a scene, plus the per-control nodes a driver would
|
|
16
18
|
* later need, plus everything to dispose. None of them is wired to input yet — that comes once one is
|
|
@@ -174,6 +176,158 @@ function domedButton(r, rise, segments = 24) {
|
|
|
174
176
|
geo.rotateX(Math.PI / 2);
|
|
175
177
|
return geo;
|
|
176
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* ONE KEY of the d-pad cross — the PS5 shape, not the Joy-Con's round pip.
|
|
181
|
+
*
|
|
182
|
+
* Four of these make the cross, and they stay four separate meshes: the driver lights `dpadUp` on its
|
|
183
|
+
* own, and `partRect()` projects each key's own bounding box to hang a leader line off. A single
|
|
184
|
+
* plus-shaped plate would read the same from a distance and break both.
|
|
185
|
+
*
|
|
186
|
+
* ## The shape, and which way round it goes
|
|
187
|
+
*
|
|
188
|
+
* POINTED TOWARDS THE CENTRE of the cross, widening outwards into a rounded rectangle. That direction
|
|
189
|
+
* matters and is easy to get backwards — the first pass built it the other way up, as an arrowhead
|
|
190
|
+
* with its tip pointing outwards, which is a different object altogether. On a DualSense the four keys
|
|
191
|
+
* converge to points at the hub and present a broad rounded end under the thumb; the engraved arrow
|
|
192
|
+
* points outwards, but the KEY does not.
|
|
193
|
+
*
|
|
194
|
+
* It buys something real, too: a key that is narrow where the four meet can be much longer before its
|
|
195
|
+
* neighbours collide, so the cross can be both tighter at the hub and larger overall.
|
|
196
|
+
*
|
|
197
|
+
* Authored pointing at +y — tip at −y, rounded end at +y — and centred on its own middle, so
|
|
198
|
+
* `place()` drops it on a face position and a rotation about z aims it.
|
|
199
|
+
*/
|
|
200
|
+
function dpadKey(length, width, rise, roundFrac, taperFrac) {
|
|
201
|
+
const b = Math.max(1e-4, Math.min(rise * 0.3, width * 0.12));
|
|
202
|
+
// The outline, counter-clockwise from the inner tip. `taper` is how much of the length the pointed
|
|
203
|
+
// section takes; past it the sides run parallel to the rounded outer end.
|
|
204
|
+
const taper = Math.min(Math.max(taperFrac, 0.05), 0.95) * length;
|
|
205
|
+
const yTip = -length / 2;
|
|
206
|
+
const yShoulder = yTip + taper;
|
|
207
|
+
const yEnd = length / 2;
|
|
208
|
+
const outline = [
|
|
209
|
+
[0, yTip],
|
|
210
|
+
[width / 2, yShoulder],
|
|
211
|
+
[width / 2, yEnd],
|
|
212
|
+
[-width / 2, yEnd],
|
|
213
|
+
[-width / 2, yShoulder],
|
|
214
|
+
];
|
|
215
|
+
// Per-vertex rounding. The outer end is the one that reads — it is the part under the thumb — so it
|
|
216
|
+
// gets `roundFrac`; the shoulders get less, and the tip least, or the point stops being a point.
|
|
217
|
+
const radii = [width * roundFrac * 0.3, width * roundFrac * 0.55, width * roundFrac, width * roundFrac, width * roundFrac * 0.55];
|
|
218
|
+
// ⚠️ Same trap as `roundedBox`: the bevel GROWS the profile on every side, so the outline has to be
|
|
219
|
+
// shrunk by `b` first or the key comes out bigger than asked for. A triangle could be inset by
|
|
220
|
+
// scaling about its incentre; a five-sided outline cannot, so this offsets each EDGE inwards by `b`
|
|
221
|
+
// along its normal and re-intersects consecutive edges — exact for any convex outline.
|
|
222
|
+
const n = outline.length;
|
|
223
|
+
const inset = [];
|
|
224
|
+
for (let i = 0; i < n; i++) {
|
|
225
|
+
const lineOf = (a, c) => {
|
|
226
|
+
const len = Math.hypot(c[0] - a[0], c[1] - a[1]);
|
|
227
|
+
const d = [(c[0] - a[0]) / len, (c[1] - a[1]) / len];
|
|
228
|
+
// Interior is to the LEFT of every edge on a counter-clockwise outline.
|
|
229
|
+
const nrm = [-d[1], d[0]];
|
|
230
|
+
return { p: [a[0] + nrm[0] * b, a[1] + nrm[1] * b], d };
|
|
231
|
+
};
|
|
232
|
+
const e0 = lineOf(outline[(i + n - 1) % n], outline[i]);
|
|
233
|
+
const e1 = lineOf(outline[i], outline[(i + 1) % n]);
|
|
234
|
+
const det = e0.d[0] * -e1.d[1] - e0.d[1] * -e1.d[0];
|
|
235
|
+
if (Math.abs(det) < 1e-9) {
|
|
236
|
+
inset.push(e1.p); // collinear edges: the offset point is already the answer
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
const rx = e1.p[0] - e0.p[0];
|
|
240
|
+
const ry = e1.p[1] - e0.p[1];
|
|
241
|
+
const t = (rx * -e1.d[1] - ry * -e1.d[0]) / det;
|
|
242
|
+
inset.push([e0.p[0] + e0.d[0] * t, e0.p[1] + e0.d[1] * t]);
|
|
243
|
+
}
|
|
244
|
+
const shape = roundedPolygon(inset, radii.map((r) => Math.max(1e-4, r - b)));
|
|
245
|
+
const geo = new THREE.ExtrudeGeometry(shape, {
|
|
246
|
+
depth: Math.max(1e-4, rise - b * 2),
|
|
247
|
+
bevelEnabled: true,
|
|
248
|
+
bevelThickness: b,
|
|
249
|
+
bevelSize: b,
|
|
250
|
+
bevelSegments: 4,
|
|
251
|
+
curveSegments: 10,
|
|
252
|
+
});
|
|
253
|
+
// The bevel starts at z = −b; lift so the key's base sits exactly on the face, like `domedButton`'s.
|
|
254
|
+
geo.translate(0, 0, b);
|
|
255
|
+
// Recentre on the key's OWN bounding box, in x/y only.
|
|
256
|
+
//
|
|
257
|
+
// Rounding does not treat the corners alike: the tip is a sharp corner, so a given radius eats much
|
|
258
|
+
// further back along the axis there than it does at the blunt outer ones. The shape therefore comes
|
|
259
|
+
// out of the builder sitting off-centre, which pushed each key towards the middle of the cross —
|
|
260
|
+
// enough, before this, for opposite keys to interpenetrate. Recentring makes the key honestly
|
|
261
|
+
// centred on its face position, so the only thing deciding whether the four clash is their spacing
|
|
262
|
+
// against their size, which is what the tuning sliders control.
|
|
263
|
+
geo.computeBoundingBox();
|
|
264
|
+
const bb = geo.boundingBox;
|
|
265
|
+
geo.translate(-(bb.min.x + bb.max.x) / 2, -(bb.min.y + bb.max.y) / 2, 0);
|
|
266
|
+
return geo;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* A closed outline with a rounding radius PER VERTEX.
|
|
270
|
+
*
|
|
271
|
+
* One radius for the whole shape is not enough here: the d-pad key wants a generous round on the end
|
|
272
|
+
* under the thumb and almost none on its point, and a single value cannot say both.
|
|
273
|
+
*
|
|
274
|
+
* Each corner is cut back along both of its edges by its radius, then curved through the corner
|
|
275
|
+
* itself. The cut is clamped to half of each adjacent edge so neighbouring corners cannot eat into one
|
|
276
|
+
* another and cross the outline over itself.
|
|
277
|
+
*/
|
|
278
|
+
function roundedPolygon(pts, radii) {
|
|
279
|
+
const n = pts.length;
|
|
280
|
+
const dist = (p, q) => Math.hypot(p[0] - q[0], p[1] - q[1]);
|
|
281
|
+
const shape = new THREE.Shape();
|
|
282
|
+
for (let i = 0; i < n; i++) {
|
|
283
|
+
const cur = pts[i];
|
|
284
|
+
const prev = pts[(i + n - 1) % n];
|
|
285
|
+
const next = pts[(i + 1) % n];
|
|
286
|
+
const rr = Math.min(radii[i] ?? 0, dist(cur, prev) / 2, dist(cur, next) / 2);
|
|
287
|
+
const towards = (to) => {
|
|
288
|
+
const d = dist(cur, to);
|
|
289
|
+
if (d < 1e-9)
|
|
290
|
+
return cur;
|
|
291
|
+
return [cur[0] + ((to[0] - cur[0]) / d) * rr, cur[1] + ((to[1] - cur[1]) / d) * rr];
|
|
292
|
+
};
|
|
293
|
+
const from = towards(prev);
|
|
294
|
+
const to = towards(next);
|
|
295
|
+
if (i === 0)
|
|
296
|
+
shape.moveTo(from[0], from[1]);
|
|
297
|
+
else
|
|
298
|
+
shape.lineTo(from[0], from[1]);
|
|
299
|
+
shape.quadraticCurveTo(cur[0], cur[1], to[0], to[1]);
|
|
300
|
+
}
|
|
301
|
+
shape.closePath();
|
|
302
|
+
return shape;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* THE LITTLE ARROW ENGRAVED ON A D-PAD KEY.
|
|
306
|
+
*
|
|
307
|
+
* A plain triangle, pointing the way its key does. It is what actually names the direction: the key's
|
|
308
|
+
* shape says "this is the d-pad", the arrow says "this one is up". The right half's keys carry letters
|
|
309
|
+
* for the same reason — this is the d-pad's equivalent, and the one mark on the hardware's cross.
|
|
310
|
+
*
|
|
311
|
+
* Drawn as flat geometry rather than through {@link glyphPlane}: a triangle needs no font and no
|
|
312
|
+
* canvas, so there is nothing to rasterise and nothing to look soft when the pad is scaled up.
|
|
313
|
+
*/
|
|
314
|
+
function dpadGlyph(size, mat, track) {
|
|
315
|
+
const w = size / 2;
|
|
316
|
+
const h = size * 0.86; // an equilateral-ish triangle reads better here than a tall thin one
|
|
317
|
+
const shape = new THREE.Shape();
|
|
318
|
+
shape.moveTo(0, h / 2);
|
|
319
|
+
shape.lineTo(w, -h / 2);
|
|
320
|
+
shape.lineTo(-w, -h / 2);
|
|
321
|
+
shape.closePath();
|
|
322
|
+
return new THREE.Mesh(track(new THREE.ShapeGeometry(shape)), mat);
|
|
323
|
+
}
|
|
324
|
+
/** Which way each direction key points, radians about z. The shape is authored pointing UP. */
|
|
325
|
+
const DPAD_AIM = {
|
|
326
|
+
dpadUp: 0,
|
|
327
|
+
dpadRight: -Math.PI / 2,
|
|
328
|
+
dpadDown: Math.PI,
|
|
329
|
+
dpadLeft: Math.PI / 2,
|
|
330
|
+
};
|
|
177
331
|
/**
|
|
178
332
|
* Minimal geometry merge — enough for the handful of two-part shapes here.
|
|
179
333
|
*
|
|
@@ -404,19 +558,61 @@ function buildPair(skin) {
|
|
|
404
558
|
/** Look a control up on its half's face map. They are mutable now (the showcase can drag them). */
|
|
405
559
|
const face = (k) => (side === "l" ? LEFT_FACE : RIGHT_FACE)[k] ?? { u: 0.5, v: 0.5 };
|
|
406
560
|
const stickPos = face("stick");
|
|
561
|
+
// The LEFT half's four directions are arrow keys, the RIGHT half's four faces are round pips. They
|
|
562
|
+
// used to share one list of round buttons, which is precisely why the two halves read alike.
|
|
407
563
|
const round = side === "l"
|
|
408
|
-
? [
|
|
409
|
-
["dpadUp", face("dpadUp"), SIZES.dpadR],
|
|
410
|
-
["dpadDown", face("dpadDown"), SIZES.dpadR],
|
|
411
|
-
["dpadLeft", face("dpadLeft"), SIZES.dpadR],
|
|
412
|
-
["dpadRight", face("dpadRight"), SIZES.dpadR],
|
|
413
|
-
]
|
|
564
|
+
? []
|
|
414
565
|
: [
|
|
415
566
|
["faceTop", face("faceTop"), SIZES.faceR],
|
|
416
567
|
["faceRight", face("faceRight"), SIZES.faceR],
|
|
417
568
|
["faceBottom", face("faceBottom"), SIZES.faceR],
|
|
418
569
|
["faceLeft", face("faceLeft"), SIZES.faceR],
|
|
419
570
|
];
|
|
571
|
+
if (side === "l") {
|
|
572
|
+
const DIRECTIONS = ["dpadUp", "dpadRight", "dpadDown", "dpadLeft"];
|
|
573
|
+
// THE CROSS SPREADS WITH ITS KEYS.
|
|
574
|
+
//
|
|
575
|
+
// `buttonScale` grows every key, and the d-pad is the one cluster whose keys meet: scale them
|
|
576
|
+
// where they stand and the four collide almost immediately, because their points already nearly
|
|
577
|
+
// touch at the hub. So the four PLACEMENTS scale too, about the cluster's own centre — the cross
|
|
578
|
+
// grows as one object and the hub gap stays proportional, instead of closing up.
|
|
579
|
+
//
|
|
580
|
+
// It scales the OFFSET from the centre, never the centre itself, so wherever the four have been
|
|
581
|
+
// placed by hand is respected, and at the default scale of 1 this changes nothing at all.
|
|
582
|
+
// One material for all four arrows: nothing paints them, so unlike the keys themselves they do
|
|
583
|
+
// not each need their own instance.
|
|
584
|
+
const glyphMat = track(new THREE.MeshBasicMaterial({ color: new THREE.Color(skin.ink ?? "#eaf2ff"), depthWrite: false }));
|
|
585
|
+
const centre = DIRECTIONS.reduce((acc, k) => {
|
|
586
|
+
const p = face(k);
|
|
587
|
+
return { u: acc.u + p.u / DIRECTIONS.length, v: acc.v + p.v / DIRECTIONS.length };
|
|
588
|
+
}, { u: 0, v: 0 });
|
|
589
|
+
for (const key of DIRECTIONS) {
|
|
590
|
+
const geo = track(dpadKey(SIZES.dpadKeyLength * sz, SIZES.dpadKeyWidth * sz, rise, TUNING.dpadKeyRound, TUNING.dpadKeyTaper));
|
|
591
|
+
const mesh = new THREE.Mesh(geo, own(skin.button()));
|
|
592
|
+
const p = face(key);
|
|
593
|
+
place(mesh, shellX, {
|
|
594
|
+
u: centre.u + (p.u - centre.u) * TUNING.buttonScale,
|
|
595
|
+
v: centre.v + (p.v - centre.v) * TUNING.buttonScale,
|
|
596
|
+
}, frontZ());
|
|
597
|
+
// Aim the key. The geometry is authored pointing outwards, so only this line differs per key.
|
|
598
|
+
mesh.rotation.z = DPAD_AIM[key];
|
|
599
|
+
group.add(mesh);
|
|
600
|
+
controls.set(key, mesh);
|
|
601
|
+
// The engraved arrow, as a CHILD of the key.
|
|
602
|
+
//
|
|
603
|
+
// Being a child is the point: it inherits the key's aim, so the arrow never has to be rotated
|
|
604
|
+
// separately, and it inherits the key's press travel, so the mark sinks WITH the key instead
|
|
605
|
+
// of floating where the key used to be. The right half's letters predate this and are still
|
|
606
|
+
// siblings; they do not move, which is the bug this avoids.
|
|
607
|
+
if (TUNING.dpadGlyphSize > 0) {
|
|
608
|
+
geo.computeBoundingBox();
|
|
609
|
+
const bb = geo.boundingBox;
|
|
610
|
+
const arrow = dpadGlyph(SIZES.dpadKeyWidth * sz * TUNING.dpadGlyphSize, glyphMat, track);
|
|
611
|
+
arrow.position.set(0, (bb.max.y - bb.min.y) * TUNING.dpadGlyphNudge, bb.max.z + rise * 0.02 + 0.002);
|
|
612
|
+
mesh.add(arrow);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
420
616
|
/** What is printed on each key, straight from the flat layout so the two never disagree. */
|
|
421
617
|
const FACE_GLYPH = {
|
|
422
618
|
faceTop: JOYCON_LAYOUT.face.top.glyph,
|
|
@@ -430,13 +626,15 @@ function buildPair(skin) {
|
|
|
430
626
|
place(mesh, shellX, pos, frontZ());
|
|
431
627
|
group.add(mesh);
|
|
432
628
|
controls.set(key, mesh);
|
|
433
|
-
//
|
|
434
|
-
//
|
|
629
|
+
// Only the right half's diamond is lettered. The d-pad has no glyphs at all — its keys are
|
|
630
|
+
// arrows, so the shape already says which direction each one is.
|
|
435
631
|
const g = FACE_GLYPH[key];
|
|
436
632
|
if (g) {
|
|
437
633
|
const label = glyphPlane(g, r * sz * 1.9, skin.ink ?? "#eaf2ff", track);
|
|
438
|
-
|
|
439
|
-
|
|
634
|
+
// Parented to the KEY, not to the shell: the letter is PRINTED on the key, so it has to ride
|
|
635
|
+
// it down when it is pressed. As a sibling it stayed put and detached itself mid-press.
|
|
636
|
+
label.position.set(0, 0, rise + 0.004);
|
|
637
|
+
mesh.add(label);
|
|
440
638
|
}
|
|
441
639
|
}
|
|
442
640
|
// System buttons: `−` / `+` and Home. Flatter and smaller — they are on the hardware too.
|
|
@@ -491,6 +689,9 @@ function buildPair(skin) {
|
|
|
491
689
|
const innerX = (side === "l" ? 1 : -1) * half;
|
|
492
690
|
return Math.min(arc(Math.abs(x - -innerX), SILHOUETTE.outerTopR), arc(Math.abs(x - innerX), SILHOUETTE.innerTopR));
|
|
493
691
|
};
|
|
692
|
+
/** The two shoulder keys, kept so their lettering can be parented to them below. */
|
|
693
|
+
let bumperMesh;
|
|
694
|
+
let triggerMesh;
|
|
494
695
|
// ── the shoulder row ─────────────────────────────────────────────────────────────────────────
|
|
495
696
|
// Verbatim geometry, so there is nothing to place: the triangles already carry their position on
|
|
496
697
|
// the shell. Only the mirror for the right-hand half is applied.
|
|
@@ -509,6 +710,7 @@ function buildPair(skin) {
|
|
|
509
710
|
mesh.position.set(shellX, W * (TUNING.shoulderRaise + TUNING.shoulderLift), W * TUNING.shoulderLift * 0.4);
|
|
510
711
|
group.add(mesh);
|
|
511
712
|
controls.set(side === "l" ? "lb" : "rb", mesh);
|
|
713
|
+
bumperMesh = mesh;
|
|
512
714
|
}
|
|
513
715
|
// ZL / ZR: generated to the measured footprint — see crownPadGeometry for why it is not copied.
|
|
514
716
|
{
|
|
@@ -521,19 +723,35 @@ function buildPair(skin) {
|
|
|
521
723
|
mesh.position.set(shellX, W * (TUNING.shoulderRaise + TUNING.shoulderLift), W * TUNING.shoulderLift * 0.4);
|
|
522
724
|
group.add(mesh);
|
|
523
725
|
controls.set(side === "l" ? "lt" : "rt", mesh);
|
|
726
|
+
triggerMesh = mesh;
|
|
524
727
|
}
|
|
525
728
|
// Shoulder lettering: L / R in front, ZL / ZR behind. Laid flat on the crown, facing up, since
|
|
526
729
|
// that is the face you actually see once the pad is tilted.
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
730
|
+
//
|
|
731
|
+
// Parented to its KEY, and positioned from that key's own bounding box.
|
|
732
|
+
//
|
|
733
|
+
// It used to be a sibling placed by a SECOND copy of the crown maths — its own guess at how high
|
|
734
|
+
// the crown is and how far back the key sits. The two drifted: the letter sat off-centre on the key
|
|
735
|
+
// and BELOW its top face, so the key clipped through its own lettering. Asking the key where its
|
|
736
|
+
// top is cannot drift, and as a child the letter also rides the key DOWN when it is pressed, which
|
|
737
|
+
// a sibling could never do.
|
|
738
|
+
for (const [text, key] of [
|
|
739
|
+
[side === "l" ? "L" : "R", bumperMesh],
|
|
740
|
+
[side === "l" ? JOYCON_LAYOUT.triggers.l.glyph : JOYCON_LAYOUT.triggers.r.glyph, triggerMesh],
|
|
530
741
|
]) {
|
|
531
|
-
if (!text)
|
|
742
|
+
if (!text || !key)
|
|
743
|
+
continue;
|
|
744
|
+
const keyGeo = key.geometry;
|
|
745
|
+
if (!keyGeo.boundingBox)
|
|
746
|
+
keyGeo.computeBoundingBox();
|
|
747
|
+
const b = keyGeo.boundingBox;
|
|
748
|
+
if (!b)
|
|
532
749
|
continue;
|
|
533
|
-
const label = glyphPlane(text, W * 0.2, skin.ink ?? "#eaf2ff", track);
|
|
750
|
+
const label = glyphPlane(text, W * 0.2, skin.shoulderInk ?? skin.ink ?? "#eaf2ff", track);
|
|
534
751
|
label.rotation.x = -Math.PI / 2;
|
|
535
|
-
|
|
536
|
-
|
|
752
|
+
// Centred across the key's width and depth, a hair above the crown of its domed top face.
|
|
753
|
+
label.position.set((b.min.x + b.max.x) / 2, b.max.y + W * 0.004, (b.min.z + b.max.z) / 2);
|
|
754
|
+
key.add(label);
|
|
537
755
|
}
|
|
538
756
|
}
|
|
539
757
|
skin.decorate?.(group, track);
|
|
@@ -586,6 +804,48 @@ export function buildToyJoycon() {
|
|
|
586
804
|
build.disposables.push(shellL, shellR, btn, sys, post, cap, sh);
|
|
587
805
|
return build;
|
|
588
806
|
}
|
|
807
|
+
// ── design 4 · "Noir" ─────────────────────────────────────────────────────────────────────────────
|
|
808
|
+
/**
|
|
809
|
+
* "Noir" — {@link buildToyJoycon}'s proportions, in black and white.
|
|
810
|
+
*
|
|
811
|
+
* Same chunky volumes, same oversized high-relief controls, same flat matte surfaces: everything that
|
|
812
|
+
* makes the toy direction readable at two metres is kept, and ONLY the palette changes. Both shells go
|
|
813
|
+
* black, the keys go white, and the shoulder row goes black again.
|
|
814
|
+
*
|
|
815
|
+
* Which means the pad carries lettering on two opposite backgrounds at once — dark letters on the white
|
|
816
|
+
* face keys, light letters on the black shoulders — and that is the whole reason {@link Skin.shoulderInk}
|
|
817
|
+
* exists. With a single ink one of the two sets vanishes into what it is printed on.
|
|
818
|
+
*/
|
|
819
|
+
export function buildNoirJoycon() {
|
|
820
|
+
const flat = (c) => new THREE.MeshStandardMaterial({ color: c, roughness: 0.92, metalness: 0 });
|
|
821
|
+
// Not pure black: a 0x000000 shell takes no shading at all, so every face reads the same and the
|
|
822
|
+
// volume disappears. A very dark grey still separates the crown from the front under any light.
|
|
823
|
+
const shell = flat(0x14161a);
|
|
824
|
+
const btn = flat(0xf7f9fc);
|
|
825
|
+
const sys = flat(0xe2e7ef);
|
|
826
|
+
const post = flat(0x0e1013);
|
|
827
|
+
const cap = flat(0xf7f9fc);
|
|
828
|
+
const sh = flat(0x17191e);
|
|
829
|
+
const build = buildPair({
|
|
830
|
+
// Both halves the same: the red/blue split is what says "Joy-Con", and dropping it is the point of
|
|
831
|
+
// this direction — it reads as one black pad rather than as a pair of coloured ones.
|
|
832
|
+
shell: () => shell,
|
|
833
|
+
button: () => btn,
|
|
834
|
+
system: () => sys,
|
|
835
|
+
stickPost: () => post,
|
|
836
|
+
stickCap: () => cap,
|
|
837
|
+
shoulder: () => sh,
|
|
838
|
+
// The toy direction's proportions, unchanged — this is a repaint, not a new shape.
|
|
839
|
+
riseScale: 2.4,
|
|
840
|
+
sizeScale: 1.28,
|
|
841
|
+
/** Near-black on the white keys. */
|
|
842
|
+
ink: "#15181d",
|
|
843
|
+
/** ...and near-white on the black shoulders. */
|
|
844
|
+
shoulderInk: "#f7f9fc",
|
|
845
|
+
});
|
|
846
|
+
build.disposables.push(shell, btn, sys, post, cap, sh);
|
|
847
|
+
return build;
|
|
848
|
+
}
|
|
589
849
|
// ── design 3 · "Holo" ─────────────────────────────────────────────────────────────────────────────
|
|
590
850
|
const ACCENT = 0x38bdf8;
|
|
591
851
|
export function buildHoloJoycon() {
|
|
@@ -696,5 +956,29 @@ export const JOYCON_DESIGNS = [
|
|
|
696
956
|
scene.add(r);
|
|
697
957
|
},
|
|
698
958
|
},
|
|
959
|
+
{
|
|
960
|
+
id: "noir",
|
|
961
|
+
name: "Noir",
|
|
962
|
+
note: "« Toy » repeint en noir et blanc : mêmes volumes épais et mêmes commandes surdimensionnées, " +
|
|
963
|
+
"mais les deux coques en noir, les boutons en blanc à texte sombre, et la rangée des gâchettes " +
|
|
964
|
+
"en noir à texte clair.",
|
|
965
|
+
backdrop: "radial-gradient(circle at 50% 35%, #2a2d33 0%, #08090b 70%)",
|
|
966
|
+
build: buildNoirJoycon,
|
|
967
|
+
light(scene) {
|
|
968
|
+
// Brighter and more directional than "Toy"'s rig, and deliberately so: a near-black shell
|
|
969
|
+
// returns very little light, so the flat generous lighting that suits a coloured pad leaves this
|
|
970
|
+
// one a silhouette. The key light does the shaping, and a rim behind separates the shell from a
|
|
971
|
+
// backdrop that is nearly as dark as it is.
|
|
972
|
+
scene.add(new THREE.AmbientLight(0xffffff, 0.38));
|
|
973
|
+
const k = new THREE.DirectionalLight(0xffffff, 1.05);
|
|
974
|
+
k.position.set(-1.6, 2.8, 3.2);
|
|
975
|
+
scene.add(k);
|
|
976
|
+
const f = new THREE.HemisphereLight(0xe6edff, 0x2a2e36, 0.5);
|
|
977
|
+
scene.add(f);
|
|
978
|
+
const r = new THREE.DirectionalLight(0xffffff, 0.5);
|
|
979
|
+
r.position.set(0.6, 1.2, -2.8);
|
|
980
|
+
scene.add(r);
|
|
981
|
+
},
|
|
982
|
+
},
|
|
699
983
|
];
|
|
700
984
|
//# sourceMappingURL=joycon-designs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joycon-designs.js","sourceRoot":"","sources":["../../../src/three/controller/joycon-designs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"joycon-designs.js","sourceRoot":"","sources":["../../../src/three/controller/joycon-designs.ts"],"names":[],"mappings":"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"}
|