wobnimo 0.0.0-stage → 0.1.1
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/AGENTS.md +84 -0
- package/LICENSE +21 -0
- package/README.md +149 -2
- package/dist/characters/boo.d.ts +6 -0
- package/dist/characters/boo.js +1 -0
- package/dist/characters/index.d.ts +12 -0
- package/dist/characters/index.js +692 -0
- package/dist/characters/inky.d.ts +6 -0
- package/dist/characters/inky.js +1 -0
- package/dist/characters/microduck.d.ts +10 -0
- package/dist/characters/microduck.js +1 -0
- package/dist/characters/miso.d.ts +6 -0
- package/dist/characters/miso.js +1 -0
- package/dist/characters/mochi.d.ts +6 -0
- package/dist/characters/mochi.js +1 -0
- package/dist/characters/pebble.d.ts +6 -0
- package/dist/characters/pebble.js +1 -0
- package/dist/characters/pip.d.ts +6 -0
- package/dist/characters/pip.js +1 -0
- package/dist/characters/rex.d.ts +6 -0
- package/dist/characters/rex.js +1 -0
- package/dist/characters/tad.d.ts +6 -0
- package/dist/characters/tad.js +1 -0
- package/dist/characters/volt.d.ts +6 -0
- package/dist/characters/volt.js +1 -0
- package/dist/element-DRDEWSGV.d.ts +8 -0
- package/dist/element.d.ts +2 -0
- package/dist/element.js +692 -0
- package/dist/index.d.ts +155 -0
- package/dist/index.js +692 -0
- package/dist/react.d.ts +23 -0
- package/dist/react.js +692 -0
- package/dist/status-DVudJbtp.d.ts +197 -0
- package/dist/types-PAZ6PnKv.d.ts +308 -0
- package/dist/wobnimo.js +692 -0
- package/package.json +76 -4
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { a as MascotState, P as Palette, b as Mat4, c as Channels, d as CompiledCharacter, R as Rig } from './status-DVudJbtp.js';
|
|
2
|
+
export { C as ChatStatus, E as EXPRESSIONS, e as Mascot, f as MascotEvents, M as MascotOptions, S as STATES, g as SpecError, h as albedo, i as compile, j as compileCached, k as defineCharacter, l as driveFromStatus, m as mount, r as recolor, v as variant } from './status-DVudJbtp.js';
|
|
3
|
+
import { C as CharacterSpec, E as Expression, T as Temperament, V as Vec3, F as FxSpec } from './types-PAZ6PnKv.js';
|
|
4
|
+
export { A as AnchorSpec, a as Axis, B as BoneSpec, b as Channel, c as EmitterSpec, d as EyesSpec, e as FaceSpec, f as FxTrigger, G as Glyph, H as Hex, J as JiggleSpec, M as MaterialSpec, g as Motion, O as Op, P as PaintSpec, h as PartSpec, S as SurfaceSpec, i as Vec2 } from './types-PAZ6PnKv.js';
|
|
5
|
+
|
|
6
|
+
interface SnapshotOptions {
|
|
7
|
+
state?: MascotState;
|
|
8
|
+
/** CSS pixels, square. Default 256. */
|
|
9
|
+
size?: number;
|
|
10
|
+
/** Device pixels per CSS pixel. Default the screen's, at most 2. */
|
|
11
|
+
pixelRatio?: number;
|
|
12
|
+
framing?: number;
|
|
13
|
+
/** Strength of the floor shadow, 0–1. Default 1. */
|
|
14
|
+
floor?: number;
|
|
15
|
+
palette?: Palette;
|
|
16
|
+
seed?: number;
|
|
17
|
+
}
|
|
18
|
+
/** Draws the character once onto a new canvas, resolving when the frame is there. */
|
|
19
|
+
declare function snapshot(spec: CharacterSpec, options?: SnapshotOptions): Promise<HTMLCanvasElement>;
|
|
20
|
+
|
|
21
|
+
declare function defineMascotElement(characters: CharacterSpec[], tag?: string): void;
|
|
22
|
+
|
|
23
|
+
/** Moments in the animation that effects can react to. */
|
|
24
|
+
type BeatEvent = 'land' | 'syllable' | `enter:${Expression}`;
|
|
25
|
+
/** Everything one frame needs from the behaviour layer. */
|
|
26
|
+
interface Pose {
|
|
27
|
+
root: Mat4;
|
|
28
|
+
/** The root's smallest scale, for the shader's distance correction. */
|
|
29
|
+
minScale: number;
|
|
30
|
+
lift: number;
|
|
31
|
+
channels: Channels;
|
|
32
|
+
/** How much each expression's acting applies right now; they sum to 1. */
|
|
33
|
+
weights: Record<Expression, number>;
|
|
34
|
+
expression: Expression;
|
|
35
|
+
/** blink, lid, squint, smile */
|
|
36
|
+
faceA: [number, number, number, number];
|
|
37
|
+
/** talk, gaze x, gaze y, tilt */
|
|
38
|
+
faceB: [number, number, number, number];
|
|
39
|
+
/** expression, previous expression, cross-fade, glitch */
|
|
40
|
+
faceC: [number, number, number, number];
|
|
41
|
+
/** seconds in the state, mouth roundness, wide eyes, asymmetry (signed by side) */
|
|
42
|
+
faceD: [number, number, number, number];
|
|
43
|
+
glow: Vec3;
|
|
44
|
+
exposure: number;
|
|
45
|
+
/** Beats since the last frame, for effects. */
|
|
46
|
+
events: BeatEvent[];
|
|
47
|
+
}
|
|
48
|
+
declare class Brain {
|
|
49
|
+
readonly temperament: Temperament;
|
|
50
|
+
state: MascotState;
|
|
51
|
+
/** The pointer relative to the character, in its own sizes (±1 ≈ one size away), or null. */
|
|
52
|
+
pointer: {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
} | null;
|
|
56
|
+
private shown;
|
|
57
|
+
private previous;
|
|
58
|
+
private switched;
|
|
59
|
+
private time;
|
|
60
|
+
private since;
|
|
61
|
+
private readonly random;
|
|
62
|
+
private readonly yaw;
|
|
63
|
+
private readonly pitch;
|
|
64
|
+
private readonly roll;
|
|
65
|
+
private readonly squash;
|
|
66
|
+
private readonly hover;
|
|
67
|
+
private readonly face;
|
|
68
|
+
private readonly weights;
|
|
69
|
+
private glow;
|
|
70
|
+
private jump;
|
|
71
|
+
private look;
|
|
72
|
+
private saccade;
|
|
73
|
+
private nextLook;
|
|
74
|
+
private nextBlink;
|
|
75
|
+
private blinkAge;
|
|
76
|
+
private nextHop;
|
|
77
|
+
private nextSide;
|
|
78
|
+
private side;
|
|
79
|
+
private nextNod;
|
|
80
|
+
private shake;
|
|
81
|
+
private sigh;
|
|
82
|
+
private reactUntil;
|
|
83
|
+
private readonly speech;
|
|
84
|
+
private lastTalk;
|
|
85
|
+
private syllableArmed;
|
|
86
|
+
private readonly matrices;
|
|
87
|
+
readonly pose: Pose;
|
|
88
|
+
constructor(temperament?: Partial<Temperament>, seed?: number);
|
|
89
|
+
setState(s: MascotState): void;
|
|
90
|
+
/** A click: a hop with a full turn and a happy face. */
|
|
91
|
+
poke(): void;
|
|
92
|
+
update(dt: number): void;
|
|
93
|
+
private enter;
|
|
94
|
+
private startShake;
|
|
95
|
+
private hop;
|
|
96
|
+
private step;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** The effects every character gets unless its spec replaces them. */
|
|
100
|
+
declare const DEFAULT_FX: FxSpec;
|
|
101
|
+
declare class Fx {
|
|
102
|
+
private readonly character;
|
|
103
|
+
private readonly random;
|
|
104
|
+
/** Packed for upload: position + size, glyph + alpha + rotation + glow, colour + seed. */
|
|
105
|
+
readonly a: Float32Array;
|
|
106
|
+
readonly b: Float32Array;
|
|
107
|
+
readonly c: Float32Array;
|
|
108
|
+
count: number;
|
|
109
|
+
private readonly emitters;
|
|
110
|
+
private readonly carry;
|
|
111
|
+
private particles;
|
|
112
|
+
constructor(character: CompiledCharacter, random: () => number);
|
|
113
|
+
update(dt: number, pose: Pose, rig: Rig): void;
|
|
114
|
+
private emitContinuous;
|
|
115
|
+
private burst;
|
|
116
|
+
private pack;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
interface Frame {
|
|
120
|
+
pose: Pose;
|
|
121
|
+
bones: Float32Array;
|
|
122
|
+
fx: Fx;
|
|
123
|
+
/** Material colours, laid out like `CompiledCharacter.albedo`. */
|
|
124
|
+
albedo: Float32Array;
|
|
125
|
+
time: number;
|
|
126
|
+
/** Device pixels. */
|
|
127
|
+
width: number;
|
|
128
|
+
height: number;
|
|
129
|
+
shadow: Vec3;
|
|
130
|
+
/** Strength of the floor shadow, 0–1. */
|
|
131
|
+
floor: number;
|
|
132
|
+
exposure: number;
|
|
133
|
+
/** Room around the character: 1 fits it snugly, 1.2 pulls the camera back a fifth. */
|
|
134
|
+
framing: number;
|
|
135
|
+
}
|
|
136
|
+
interface Renderer {
|
|
137
|
+
/** Starts building (or reuses) the character's program; cheap to call again with the same character. */
|
|
138
|
+
load(character: CompiledCharacter): void;
|
|
139
|
+
/** Draws a frame. False while the character's program is still being built. */
|
|
140
|
+
render(frame: Frame): boolean;
|
|
141
|
+
dispose(): void;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
declare class WebGL2Renderer implements Renderer {
|
|
145
|
+
private readonly canvas;
|
|
146
|
+
private readonly gpu;
|
|
147
|
+
private readonly target;
|
|
148
|
+
private character;
|
|
149
|
+
constructor(canvas: HTMLCanvasElement);
|
|
150
|
+
load(character: CompiledCharacter): void;
|
|
151
|
+
render(frame: Frame): boolean;
|
|
152
|
+
dispose(): void;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { type BeatEvent, Brain, CharacterSpec, CompiledCharacter, DEFAULT_FX, Expression, type Frame, Fx, FxSpec, MascotState, Palette, type Pose, type Renderer, Rig, type SnapshotOptions, Temperament, Vec3, WebGL2Renderer, defineMascotElement, snapshot };
|