@chatlychat/world 0.1.0 → 0.2.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/CHANGELOG.md +11 -0
- package/README.md +70 -6
- package/dist/agent.d.ts +5 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +22 -3
- package/dist/agent.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +11 -0
- package/dist/capabilities.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +34 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +35 -9
- package/dist/model.js.map +1 -1
- package/dist/picks.d.ts +45 -0
- package/dist/picks.d.ts.map +1 -0
- package/dist/picks.js +186 -0
- package/dist/picks.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vrm.d.ts +97 -0
- package/dist/vrm.d.ts.map +1 -0
- package/dist/vrm.js +212 -0
- package/dist/vrm.js.map +1 -0
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +28 -187
- package/dist/world.js.map +1 -1
- package/package.json +13 -5
- package/dist/examples/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @chatlychat/world
|
|
2
2
|
|
|
3
|
+
## 0.2.0 — 2026-10-26
|
|
4
|
+
|
|
5
|
+
Not yet published.
|
|
6
|
+
|
|
7
|
+
- VRM avatars. An avatar with `format: 'vrm'`, or a glTF carrying the `VRM` / `VRMC_vrm` extension, loads through `@pixiv/three-vrm`'s `VRMLoaderPlugin`. `@pixiv/three-vrm` (`^3.5.5`) is an OPTIONAL peer dependency, loaded by dynamic import; a glTF-only host does not install or bundle it. Missing, it is a `WorldError` with code `missing_peer` naming the package. Bundlers: pass `loadVrm: () => import('@pixiv/three-vrm')`.
|
|
8
|
+
- The mouth on a VRM avatar is driven through the `aa` / `ih` / `ou` / `ee` / `oh` expression bindings (`VISEME_TO_VRM`), not morph targets.
|
|
9
|
+
- `embodiment.expression` maps to the `happy`, `sad` and `surprised` presets (`EXPRESSION_TO_VRM`); gestures stay clips. Automatic blink (off under reduced motion).
|
|
10
|
+
- `lookAt` drives VRM's `lookAt.target` and the humanoid head bone. `vrm.update(delta)` runs every frame.
|
|
11
|
+
- `ModelLoader` takes an optional second argument `{ format }`; `LoadedModel` has an optional `vrm`; `WorldErrorCode` gains `missing_peer`; new `loadVrm` option and `gltfLoader({ loadVrm })`.
|
|
12
|
+
- The glTF morph-target path is unchanged.
|
|
13
|
+
|
|
3
14
|
## 0.1.0 — 2026-10-25
|
|
4
15
|
|
|
5
16
|
Unpublished. The first version: a Chatly conversation rendered into your three.js scene.
|
package/README.md
CHANGED
|
@@ -8,11 +8,9 @@ contains and sends the visitor's taps back.
|
|
|
8
8
|
pnpm add @chatlychat/world @chatlychat/core three
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
`three` (>= 0.160) and `@chatlychat/core` are peer dependencies.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
> `@chatlychat/world` is **not yet published to npm**; the install above will 404
|
|
15
|
-
> until it is.
|
|
11
|
+
`three` (>= 0.160) and `@chatlychat/core` are peer dependencies. The only other
|
|
12
|
+
is **optional**: `@pixiv/three-vrm`, for VRM avatars (see below). Nothing here
|
|
13
|
+
touches the web widget.
|
|
16
14
|
|
|
17
15
|
```ts
|
|
18
16
|
import { createChatlyCore } from '@chatlychat/core';
|
|
@@ -55,12 +53,78 @@ renderer.setAnimationLoop(() => {
|
|
|
55
53
|
`follow: 'locked'` in a placement is honoured as `lazy`.
|
|
56
54
|
Typing is yours: fill `world.composer.setDraft(text)` from your keyboard, mic or
|
|
57
55
|
overlay (`onComposeRequest` fires when the field is pressed), then it sends.
|
|
58
|
-
- **An agent body**: avatar model (glTF; `usdz` is refused with a typed error),
|
|
56
|
+
- **An agent body**: avatar model (glTF or VRM; `usdz` is refused with a typed error),
|
|
59
57
|
`idle`/`listening`/`thinking`/`speaking` clips from `presence.clips`, one-shot
|
|
60
58
|
`expressions`, `lookAt` cues resolved through `anchors.resolve(ref)`, and a mouth
|
|
61
59
|
driven by `message.metadata.visemes` (`[{ t: ms, v: 'aa', w?: 0..1 }]`) when
|
|
62
60
|
present. `presence.idle` and `personalSpaceMetres` are yours to honour.
|
|
63
61
|
|
|
62
|
+
## VRM avatars
|
|
63
|
+
|
|
64
|
+
An avatar whose `format` is `vrm` (or whose file carries the VRM extension) is
|
|
65
|
+
loaded through `@pixiv/three-vrm`'s `VRMLoaderPlugin`. The package is an
|
|
66
|
+
**optional** peer dependency: a glTF-only host does not install it, and nothing
|
|
67
|
+
of it is in your bundle.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm install @pixiv/three-vrm # ^3.5.5; VRM avatars only
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If you bundle, hand the import over so your bundler can see the package:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
createWorld({ conversation, camera, loadVrm: () => import('@pixiv/three-vrm') });
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Without it installed, a VRM avatar reports a `WorldError` with code `missing_peer`
|
|
80
|
+
to `onError`, names the package, and the placeholder body stays.
|
|
81
|
+
|
|
82
|
+
**Mouth.** Chatly visemes drive VRM's five expression bindings
|
|
83
|
+
(`aa`, `ih`, `ou`, `ee`, `oh`) instead of morph targets. Names are case-insensitive
|
|
84
|
+
and a `viseme_` prefix is ignored.
|
|
85
|
+
|
|
86
|
+
| Chatly viseme | VRM expression | Opening |
|
|
87
|
+
| ----------------------------- | -------------- | -------------------------- |
|
|
88
|
+
| `aa` | `aa` | full |
|
|
89
|
+
| `ih`, `I` | `ih` | full |
|
|
90
|
+
| `ou`, `U` | `ou` | full |
|
|
91
|
+
| `ee`, `E` | `ee` | full |
|
|
92
|
+
| `oh`, `O` | `oh` | full |
|
|
93
|
+
| `FF`, `TH`, `SS` | `ih` | 0.4, 0.5, 0.5 |
|
|
94
|
+
| `DD`, `kk` | `aa` | 0.4 |
|
|
95
|
+
| `CH`, `RR` | `ou` | 0.5 |
|
|
96
|
+
| `nn` | `ih` | 0.3 |
|
|
97
|
+
| `PP`, `sil`, anything unknown | none | closed (all five set to 0) |
|
|
98
|
+
|
|
99
|
+
The opening is multiplied by the track's own `w`. The five are always set
|
|
100
|
+
together, so a released mouth closes.
|
|
101
|
+
|
|
102
|
+
**Face.** `embodiment.expression` maps to a VRM preset where one exists:
|
|
103
|
+
|
|
104
|
+
| Expression | Preset | Weight |
|
|
105
|
+
| ----------- | ----------- | ------ |
|
|
106
|
+
| `smile` | `happy` | 0.7 |
|
|
107
|
+
| `laugh` | `happy` | 1 |
|
|
108
|
+
| `surprised` | `surprised` | 1 |
|
|
109
|
+
| `concerned` | `sad` | 0.6 |
|
|
110
|
+
|
|
111
|
+
The face eases in over 0.12 s, holds 2.5 s and fades over 0.5 s. `nod`,
|
|
112
|
+
`shake_head`, `point`, `wave`, `shrug` and `think` are gestures with no preset:
|
|
113
|
+
they play only as your own clip from `presence.expressions`, as on a glTF avatar.
|
|
114
|
+
A preset and a host clip both play if both exist. No Chatly expression is
|
|
115
|
+
`angry` or `relaxed`, so those presets are never driven. `blink` is automatic
|
|
116
|
+
(every 4 s) and off under reduced motion; there, a face is applied and removed
|
|
117
|
+
without easing.
|
|
118
|
+
|
|
119
|
+
**Gaze.** A `lookAt` cue sets VRM's `lookAt.target` (eyes) and turns the humanoid
|
|
120
|
+
`head` bone toward it, clamped to about 20 degrees up or down and 34 degrees sideways.
|
|
121
|
+
The body still turns on the spot as before. **Clips.** State and expression clips
|
|
122
|
+
in the file play on the model as they do for glTF; the SDK does not retarget
|
|
123
|
+
clips from other rigs (such as separate VRMA files) — load those yourself.
|
|
124
|
+
`vrm.update(delta)` runs every `world.update`.
|
|
125
|
+
|
|
126
|
+
The glTF morph-target path (`v`, `viseme_v`, `Viseme_v`) is unchanged.
|
|
127
|
+
|
|
64
128
|
## Input
|
|
65
129
|
|
|
66
130
|
The host owns input; the world only knows which of its objects a ray hit.
|
package/dist/agent.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { Group, Vector3, type Camera, type Object3D } from 'three';
|
|
16
16
|
import { type ModelLoader } from './model.js';
|
|
17
17
|
import { type VisemeTrack } from './visemes.js';
|
|
18
|
-
import type { AgentPresenceState, AgentWorldPresence } from '@chatlychat/core';
|
|
18
|
+
import type { AgentExpression, AgentPresenceState, AgentWorldPresence } from '@chatlychat/core';
|
|
19
19
|
import type { ResolvedWorldTheme } from '@chatlychat/core';
|
|
20
20
|
export type GazeTarget = Object3D | Vector3 | 'visitor' | null;
|
|
21
21
|
export declare class AgentBody {
|
|
@@ -35,6 +35,7 @@ export declare class AgentBody {
|
|
|
35
35
|
private track;
|
|
36
36
|
private trackStart;
|
|
37
37
|
private morphs;
|
|
38
|
+
private rig;
|
|
38
39
|
private lastState;
|
|
39
40
|
private refused;
|
|
40
41
|
constructor(theme: ResolvedWorldTheme, loadModel: ModelLoader, onError: (e: unknown) => void, reduced: boolean);
|
|
@@ -50,6 +51,9 @@ export declare class AgentBody {
|
|
|
50
51
|
setState(state: AgentPresenceState): void;
|
|
51
52
|
/** Play a one-shot expression clip. Skipped entirely under reduced motion. */
|
|
52
53
|
playExpression(clipName: string | null): boolean;
|
|
54
|
+
/** A face for a cue, on a VRM avatar. False for a gesture or a glTF avatar: the host's clip is all there is. */
|
|
55
|
+
express(e: AgentExpression | null): boolean;
|
|
56
|
+
get isVrm(): boolean;
|
|
53
57
|
lookAt(target: GazeTarget): void;
|
|
54
58
|
setVisemes(track: VisemeTrack | null, nowMs: number): void;
|
|
55
59
|
private applyViseme;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAIL,KAAK,EAIL,OAAO,EAEP,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAIL,KAAK,EAIL,OAAO,EAEP,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAK3D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAO/D,qBAAa,SAAS;IAmBlB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IApB1B,SAAgB,IAAI,QAAe;IAC5B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC3C,OAAO,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,OAAO,CAAuB;gBAG5B,KAAK,EAAE,kBAAkB,EAChB,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,EAC9C,OAAO,EAAE,OAAO;IAOlB,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAErC;IAEM,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAIhD,OAAO,CAAC,WAAW;IAWZ,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAiC7D,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,MAAM;IAQd,oFAAoF;IAC7E,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAiBhD,8EAA8E;IACvE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAYvD,gHAAgH;IACzG,OAAO,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO;IAIlD,IAAW,KAAK,IAAI,OAAO,CAE1B;IAEM,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIhC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjE,OAAO,CAAC,WAAW;IA0BZ,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiCzD,OAAO,IAAI,IAAI;CAIvB"}
|
package/dist/agent.js
CHANGED
|
@@ -19,6 +19,7 @@ import { createTextMesh } from './text.js';
|
|
|
19
19
|
import { accentMaterial } from './theme-apply.js';
|
|
20
20
|
import { WORLD_CONTRACT, WorldError } from './types.js';
|
|
21
21
|
import { morphNamesFor, visemeAt } from './visemes.js';
|
|
22
|
+
import { gazePoint, VrmRig } from './vrm.js';
|
|
22
23
|
const TURN_RATE = 6;
|
|
23
24
|
const FADE_S = 0.25;
|
|
24
25
|
export class AgentBody {
|
|
@@ -38,6 +39,7 @@ export class AgentBody {
|
|
|
38
39
|
track = null;
|
|
39
40
|
trackStart = 0;
|
|
40
41
|
morphs = [];
|
|
42
|
+
rig = null;
|
|
41
43
|
lastState = null;
|
|
42
44
|
refused = null;
|
|
43
45
|
constructor(theme, loadModel, onError, reduced) {
|
|
@@ -84,9 +86,9 @@ export class AgentBody {
|
|
|
84
86
|
this.swapModel(null, []);
|
|
85
87
|
return;
|
|
86
88
|
}
|
|
87
|
-
this.loadModel(url).then((m) => {
|
|
89
|
+
this.loadModel(url, a.format === undefined ? undefined : { format: a.format }).then((m) => {
|
|
88
90
|
if (this.avatarUrl === url) {
|
|
89
|
-
this.swapModel(fitModel(m.scene, a.scale ?? 1, a.anchor ?? 'base'), m.animations);
|
|
91
|
+
this.swapModel(fitModel(m.scene, a.scale ?? 1, a.anchor ?? 'base'), m.animations, m.vrm ?? null);
|
|
90
92
|
}
|
|
91
93
|
}, this.onError);
|
|
92
94
|
}
|
|
@@ -102,7 +104,7 @@ export class AgentBody {
|
|
|
102
104
|
this.root.add(this.tag);
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
|
-
swapModel(model, clips) {
|
|
107
|
+
swapModel(model, clips, vrm = null) {
|
|
106
108
|
this.mixer?.stopAllAction();
|
|
107
109
|
this.mixer = null;
|
|
108
110
|
this.current = null;
|
|
@@ -114,6 +116,7 @@ export class AgentBody {
|
|
|
114
116
|
this.model = model;
|
|
115
117
|
this.clips = clips;
|
|
116
118
|
this.morphs = [];
|
|
119
|
+
this.rig = vrm === null || model === null ? null : new VrmRig(vrm, this.reduced);
|
|
117
120
|
if (model === null) {
|
|
118
121
|
this.root.add(this.placeholder());
|
|
119
122
|
return;
|
|
@@ -167,6 +170,13 @@ export class AgentBody {
|
|
|
167
170
|
a.play();
|
|
168
171
|
return true;
|
|
169
172
|
}
|
|
173
|
+
/** A face for a cue, on a VRM avatar. False for a gesture or a glTF avatar: the host's clip is all there is. */
|
|
174
|
+
express(e) {
|
|
175
|
+
return this.rig?.express(e) ?? false;
|
|
176
|
+
}
|
|
177
|
+
get isVrm() {
|
|
178
|
+
return this.rig !== null;
|
|
179
|
+
}
|
|
170
180
|
lookAt(target) {
|
|
171
181
|
this.gaze = target;
|
|
172
182
|
}
|
|
@@ -178,6 +188,10 @@ export class AgentBody {
|
|
|
178
188
|
}
|
|
179
189
|
}
|
|
180
190
|
applyViseme(v, w) {
|
|
191
|
+
if (this.rig !== null) {
|
|
192
|
+
this.rig.setMouth(v, w);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
181
195
|
for (const m of this.morphs) {
|
|
182
196
|
const dict = m.morphTargetDictionary;
|
|
183
197
|
const inf = m.morphTargetInfluences;
|
|
@@ -217,6 +231,11 @@ export class AgentBody {
|
|
|
217
231
|
this.root.rotation.y =
|
|
218
232
|
this.reduced || Math.abs(err) <= step ? want : this.root.rotation.y + Math.sign(err) * step;
|
|
219
233
|
}
|
|
234
|
+
if (this.rig !== null) {
|
|
235
|
+
this.rig.reduced = this.reduced;
|
|
236
|
+
this.rig.gazeAt(this.root, gazePoint(this.gaze, camera), dtMs / 1000);
|
|
237
|
+
this.rig.update(dtMs / 1000);
|
|
238
|
+
}
|
|
220
239
|
if (this.tag !== null) {
|
|
221
240
|
// The tag turns to the viewer regardless of where the body faces.
|
|
222
241
|
const cam = camera.getWorldPosition(new Vector3());
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,OAAO,GAIR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/capabilities.js
CHANGED
|
@@ -102,6 +102,17 @@ export class CapabilityRegistry {
|
|
|
102
102
|
/** Route a bot-fired invocation to its handler and answer it into the thread. */
|
|
103
103
|
bind(conversation) {
|
|
104
104
|
return conversation.onCapability((inv) => {
|
|
105
|
+
/*
|
|
106
|
+
* The operator's switch, as a second wall. The core already drops a
|
|
107
|
+
* bot-fired capability when the space turned them off
|
|
108
|
+
* (`Conversation.setUnpromptedAllowed`); this keeps a stand-in
|
|
109
|
+
* conversation, or a core older than the switch, from running a
|
|
110
|
+
* handler for one. Read structurally because `ConversationLike` is a
|
|
111
|
+
* fixed pick of the core class.
|
|
112
|
+
*/
|
|
113
|
+
if (conversation.acceptsUnprompted === false) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
105
116
|
void this.invoke(inv.capability, inv.args, true)
|
|
106
117
|
.then((r) => conversation.reportAction({
|
|
107
118
|
messageId: inv.messageId,
|
package/dist/capabilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* scene.add(world.root);
|
|
6
6
|
* renderer.setAnimationLoop(() => world.update(clock.getDelta()));
|
|
7
7
|
*
|
|
8
|
-
* `three` and `@chatlychat/core` are peer dependencies
|
|
9
|
-
*
|
|
8
|
+
* `three` and `@chatlychat/core` are peer dependencies. `@pixiv/three-vrm` is an
|
|
9
|
+
* OPTIONAL peer, needed only for VRM avatars (see `vrm.ts`).
|
|
10
10
|
*/
|
|
11
11
|
export { createWorld } from './world.js';
|
|
12
12
|
export type { ChatlyWorld } from './world-api.js';
|
|
@@ -17,10 +17,11 @@ export { GRID_PLACEMENTS, layoutCards, type GridLayout, type GridPlacement, type
|
|
|
17
17
|
export { bubbleScale } from './bubble.js';
|
|
18
18
|
export { DEAD_METRES, DEAD_YAW, lazyStep, type FollowPose, type FollowState } from './panel.js';
|
|
19
19
|
export { buildGrid, defaultCard, formatPrice, isHighlighted, readCard, type CardData, } from './cards.js';
|
|
20
|
-
export { anchorOffset, fitModel, gltfLoader, type LoadedModel, type ModelAnchor, type ModelLoader, } from './model.js';
|
|
20
|
+
export { anchorOffset, fitModel, gltfLoader, type GltfLoaderLike, type GltfLoaderOptions, type LoadedModel, type ModelAnchor, type ModelLoader, } from './model.js';
|
|
21
21
|
export { readVisemes, visemeAt, type Viseme, type VisemeTrack } from './visemes.js';
|
|
22
22
|
export { Selection } from './selection.js';
|
|
23
23
|
export { Motion } from './motion.js';
|
|
24
24
|
export { AgentBody, type GazeTarget } from './agent.js';
|
|
25
25
|
export { interactive, pickRay, type Hit, type Interactive, type InteractiveKind } from './input.js';
|
|
26
|
+
export { EXPRESSION_TO_VRM, VISEME_TO_VRM, VRM_PEER, VrmRig, hasVrmExtension, loadVrmModule, vrmVisemeFor, wantsVrm, type VrmLike, type VrmModule, type VrmModuleLoader, type VrmVowel, } from './vrm.js';
|
|
26
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,IAAI,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,IAAI,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,QAAQ,GACd,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* scene.add(world.root);
|
|
6
6
|
* renderer.setAnimationLoop(() => world.update(clock.getDelta()));
|
|
7
7
|
*
|
|
8
|
-
* `three` and `@chatlychat/core` are peer dependencies
|
|
9
|
-
*
|
|
8
|
+
* `three` and `@chatlychat/core` are peer dependencies. `@pixiv/three-vrm` is an
|
|
9
|
+
* OPTIONAL peer, needed only for VRM avatars (see `vrm.ts`).
|
|
10
10
|
*/
|
|
11
11
|
export { createWorld } from './world.js';
|
|
12
12
|
export { WORLD_CONTRACT, WorldError, } from './types.js';
|
|
@@ -21,4 +21,5 @@ export { Selection } from './selection.js';
|
|
|
21
21
|
export { Motion } from './motion.js';
|
|
22
22
|
export { AgentBody } from './agent.js';
|
|
23
23
|
export { interactive, pickRay } from './input.js';
|
|
24
|
+
export { EXPRESSION_TO_VRM, VISEME_TO_VRM, VRM_PEER, VrmRig, hasVrmExtension, loadVrmModule, vrmVisemeFor, wantsVrm, } from './vrm.js';
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,UAAU,GAUX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,GAQnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAqC,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,GAET,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,UAAU,GAUX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,GAQnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAqC,MAAM,YAAY,CAAC;AAChG,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,GAET,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,GAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAiC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAoD,MAAM,YAAY,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,QAAQ,GAKT,MAAM,UAAU,CAAC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -8,18 +8,50 @@
|
|
|
8
8
|
* point of the model that sits at the placement's origin.
|
|
9
9
|
*/
|
|
10
10
|
import { Box3, Group, Vector3, type AnimationClip, type Object3D } from 'three';
|
|
11
|
+
import { type VrmLike, type VrmModuleLoader } from './vrm.js';
|
|
11
12
|
export declare const MODEL_ANCHORS: readonly ["center", "base", "top", "back"];
|
|
12
13
|
export type ModelAnchor = (typeof MODEL_ANCHORS)[number];
|
|
13
14
|
export interface LoadedModel {
|
|
14
15
|
readonly scene: Object3D;
|
|
15
16
|
readonly animations: readonly AnimationClip[];
|
|
17
|
+
/** Present when the file was loaded through three-vrm. */
|
|
18
|
+
readonly vrm?: VrmLike | null;
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
export
|
|
20
|
+
/** `hint.format` is the avatar's declared format; a loader may use it to pick a plugin. */
|
|
21
|
+
export type ModelLoader = (url: string, hint?: {
|
|
22
|
+
format?: string;
|
|
23
|
+
}) => Promise<LoadedModel>;
|
|
24
|
+
interface GltfResult extends LoadedModel {
|
|
25
|
+
readonly userData?: Record<string, unknown>;
|
|
26
|
+
readonly parser?: {
|
|
27
|
+
json?: {
|
|
28
|
+
extensionsUsed?: unknown;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** The slice of three's `GLTFLoader` used here. */
|
|
33
|
+
export interface GltfLoaderLike {
|
|
34
|
+
register(plugin: (parser: unknown) => unknown): unknown;
|
|
35
|
+
loadAsync(url: string): Promise<GltfResult>;
|
|
36
|
+
}
|
|
37
|
+
export interface GltfLoaderOptions {
|
|
38
|
+
/** `() => import('@pixiv/three-vrm')` — needed only to load VRM avatars through a bundler. */
|
|
39
|
+
readonly loadVrm?: VrmModuleLoader;
|
|
40
|
+
/** Test seam: a fresh loader. Defaults to three's own `GLTFLoader`, imported lazily. */
|
|
41
|
+
readonly createLoader?: () => Promise<GltfLoaderLike>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* three's GLTFLoader, plus VRM when the avatar is one: by its declared
|
|
45
|
+
* `format: 'vrm'`, or because the loaded file carries the VRM extension.
|
|
46
|
+
* `@pixiv/three-vrm` is only touched on those two paths; a plain glTF never
|
|
47
|
+
* asks for it.
|
|
48
|
+
*/
|
|
49
|
+
export declare const gltfLoader: (opts?: GltfLoaderOptions) => ModelLoader;
|
|
19
50
|
/** Load each URL once; every caller gets its own clone, because a scene can have one parent. */
|
|
20
51
|
export declare const cachedLoader: (load: ModelLoader) => ModelLoader;
|
|
21
52
|
/** The translation that moves `anchor` of `box` to the origin. */
|
|
22
53
|
export declare function anchorOffset(box: Box3, anchor: ModelAnchor): Vector3;
|
|
23
54
|
/** Wrap a loaded scene so its scale and anchor are applied and the wrapper sits at the origin. */
|
|
24
55
|
export declare function fitModel(model: Object3D, scale?: number, anchor?: ModelAnchor): Group;
|
|
56
|
+
export {};
|
|
25
57
|
//# sourceMappingURL=model.d.ts.map
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEhF,eAAO,MAAM,aAAa,4CAA6C,CAAC;AACxE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvF,eAAO,MAAM,aAAa,4CAA6C,CAAC;AACxE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AACD,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE5F,UAAU,UAAW,SAAQ,WAAW;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;CAC3D;AACD,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACvD;AAOD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,UAAU,iBAAiB,KAAQ,WAwBzD,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,YAAY,SAAU,WAAW,KAAG,WAahD,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAWpE;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,SAAI,EAAE,MAAM,GAAE,WAAsB,GAAG,KAAK,CAS1F"}
|
package/dist/model.js
CHANGED
|
@@ -8,24 +8,50 @@
|
|
|
8
8
|
* point of the model that sits at the placement's origin.
|
|
9
9
|
*/
|
|
10
10
|
import { Box3, Group, Vector3 } from 'three';
|
|
11
|
+
import { loadVrmModule, wantsVrm } from './vrm.js';
|
|
11
12
|
export const MODEL_ANCHORS = ['center', 'base', 'top', 'back'];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const threeLoader = async () => {
|
|
14
|
+
const { GLTFLoader } = await import('three/examples/jsm/loaders/GLTFLoader.js');
|
|
15
|
+
return new GLTFLoader();
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* three's GLTFLoader, plus VRM when the avatar is one: by its declared
|
|
19
|
+
* `format: 'vrm'`, or because the loaded file carries the VRM extension.
|
|
20
|
+
* `@pixiv/three-vrm` is only touched on those two paths; a plain glTF never
|
|
21
|
+
* asks for it.
|
|
22
|
+
*/
|
|
23
|
+
export const gltfLoader = (opts = {}) => {
|
|
24
|
+
const create = opts.createLoader ?? threeLoader;
|
|
25
|
+
let plain = null;
|
|
26
|
+
const withVrm = async (url) => {
|
|
27
|
+
const mod = await loadVrmModule(opts.loadVrm);
|
|
28
|
+
const loader = await create();
|
|
29
|
+
loader.register((parser) => new mod.VRMLoaderPlugin(parser));
|
|
30
|
+
const gltf = await loader.loadAsync(url);
|
|
31
|
+
const vrm = (gltf.userData?.['vrm'] ?? null);
|
|
32
|
+
if (vrm === null) {
|
|
33
|
+
// Declared VRM but the file has no VRM data: it is a plain glTF after all.
|
|
34
|
+
return gltf;
|
|
35
|
+
}
|
|
36
|
+
mod.VRMUtils?.rotateVRM0?.(vrm); // VRM 0.x faces -Z; this turns it to +Z, and ignores 1.0
|
|
37
|
+
return { scene: vrm.scene, animations: gltf.animations, vrm };
|
|
38
|
+
};
|
|
39
|
+
return async (url, hint) => {
|
|
40
|
+
if (wantsVrm(hint?.format)) {
|
|
41
|
+
return withVrm(url);
|
|
18
42
|
}
|
|
19
|
-
|
|
43
|
+
plain ??= await create();
|
|
44
|
+
const gltf = await plain.loadAsync(url);
|
|
45
|
+
return wantsVrm(undefined, gltf) ? withVrm(url) : gltf;
|
|
20
46
|
};
|
|
21
47
|
};
|
|
22
48
|
/** Load each URL once; every caller gets its own clone, because a scene can have one parent. */
|
|
23
49
|
export const cachedLoader = (load) => {
|
|
24
50
|
const cache = new Map();
|
|
25
|
-
return async (url) => {
|
|
51
|
+
return async (url, hint) => {
|
|
26
52
|
let p = cache.get(url);
|
|
27
53
|
if (p === undefined) {
|
|
28
|
-
p = load(url);
|
|
54
|
+
p = hint === undefined ? load(url) : load(url, hint);
|
|
29
55
|
cache.set(url, p);
|
|
30
56
|
// A failure is not cached: the next card gets a fresh attempt.
|
|
31
57
|
p.catch(() => cache.delete(url));
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAqC,MAAM,OAAO,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/picks.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The picks: a grid of cards drawn from the latest card message, one of which
|
|
3
|
+
* can be selected and held. Selection is told to the thread before the world
|
|
4
|
+
* claims it; a refusal puts the card back.
|
|
5
|
+
*
|
|
6
|
+
* `theme` and `reduced` are read per call because both change under a live
|
|
7
|
+
* world (`setTheme`, `setReducedMotion`).
|
|
8
|
+
*/
|
|
9
|
+
import { type ConversationMessage, type ResolvedWorldTheme, type ResolvedWorldPlacement } from '@chatlychat/core';
|
|
10
|
+
import { type Object3D } from 'three';
|
|
11
|
+
import { type GridBuild } from './cards.js';
|
|
12
|
+
import { type HandlerHooks } from './handlers.js';
|
|
13
|
+
import { type Motion } from './motion.js';
|
|
14
|
+
import { type SoundKind, type WorldOptions } from './types.js';
|
|
15
|
+
import type { cachedLoader } from './model.js';
|
|
16
|
+
import type { Selection } from './selection.js';
|
|
17
|
+
export type PickGrid = GridBuild & {
|
|
18
|
+
message: ConversationMessage;
|
|
19
|
+
cards: readonly Record<string, unknown>[];
|
|
20
|
+
};
|
|
21
|
+
export declare const named: (node: Object3D, name: string) => Object3D;
|
|
22
|
+
export interface PicksDeps {
|
|
23
|
+
conversation: WorldOptions['conversation'];
|
|
24
|
+
camera: WorldOptions['camera'];
|
|
25
|
+
renderers: WorldOptions['renderers'];
|
|
26
|
+
anchors: NonNullable<WorldOptions['anchors']>;
|
|
27
|
+
theme: () => ResolvedWorldTheme;
|
|
28
|
+
reduced: () => boolean;
|
|
29
|
+
placement: ResolvedWorldPlacement;
|
|
30
|
+
root: Object3D;
|
|
31
|
+
motion: Motion;
|
|
32
|
+
selection: Selection;
|
|
33
|
+
hooks: HandlerHooks;
|
|
34
|
+
loadModel: ReturnType<typeof cachedLoader>;
|
|
35
|
+
onError: (err: unknown) => void;
|
|
36
|
+
sound: (kind: SoundKind, at?: Object3D) => void;
|
|
37
|
+
}
|
|
38
|
+
export interface Picks {
|
|
39
|
+
grid: () => PickGrid | null;
|
|
40
|
+
select: (key: string) => Promise<void>;
|
|
41
|
+
release: () => void;
|
|
42
|
+
showGrid: (message: ConversationMessage) => void;
|
|
43
|
+
}
|
|
44
|
+
export declare function createPicks(deps: PicksDeps): Picks;
|
|
45
|
+
//# sourceMappingURL=picks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picks.d.ts","sourceRoot":"","sources":["../src/picks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,KAAK,SAAU,QAAQ,QAAQ,MAAM,KAAG,QAGpD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACrC,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,kBAAkB,CAAC;IAChC,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,SAAS,EAAE,sBAAsB,CAAC;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CA6MlD"}
|