@doki-land/live2d 0.0.11 → 0.0.12
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/README.md +1 -1
- package/dist/index.d.ts +118 -23
- package/dist/index.js +938 -339
- package/package.json +4 -4
- package/src/create-live2d.ts +23 -575
- package/src/index.ts +15 -2
- package/src/stage/actor-model-slot.ts +429 -0
- package/src/stage/actor.ts +188 -0
- package/src/stage/index.ts +18 -0
- package/src/stage/single-facade.ts +221 -0
- package/src/stage/stage.ts +388 -0
- package/src/stage/transform.ts +161 -0
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as _doki_land_live2d_core from '@doki-land/live2d-core';
|
|
2
|
+
import { LoadProgress, InternalModel, ModelSource, AssetResolver, Live2dActor, CreateActorOptions, ActorTransform, ActorHit, CreateLive2dStageOptions, Live2dStage, PointerTrackingPolicy, StagePointerEvent, Live2DSession } from '@doki-land/live2d-core';
|
|
3
|
+
export { ActorHit, ActorTransform, AssetResolver, CreateActorOptions, CreateLive2dStageOptions, DEFAULT_ACTOR_TRANSFORM, EventEmitter, FrameProfile, FrameSnapshot, InternalModel, Live2DSession, Live2dActor, Live2dStage, LoadProgress, LoadProgressStage, ModelFormat, ModelInstance, ModelProgram, ModelSettings, ModelSource, PointerTrackingMode, PointerTrackingPolicy, SessionPhase, SessionState, StagePointerEvent, StageUpdateMode } from '@doki-land/live2d-core';
|
|
3
4
|
export { DEFAULT_NPM_CDN, resolveModelSourceUrl, resolveNpmSpecifier } from '@doki-land/live2d-loader';
|
|
4
|
-
import { ModelBackend, Renderer,
|
|
5
|
+
import { ModelBackend, Renderer, ParameterBinding, DrawableMesh, RendererKind } from '@doki-land/live2d-renderer';
|
|
5
6
|
export { ModelBackend, ParameterBinding, Renderer, RendererKind, createCanvas2DRenderer, createMoc2Backend, createMoc3Backend, createQuadProgram, createRenderer, createWebGl2Renderer, createWebGpuRenderer, decodeMoc3, evaluateFrame, fingerprintSnapshot, parseCpuProgram, serializeCpuProgram } from '@doki-land/live2d-renderer';
|
|
6
7
|
|
|
7
8
|
/** Cubism motion3 segment kinds (spec). */
|
|
@@ -157,36 +158,133 @@ declare function blendMotionLayers(layers: ReadonlyArray<{
|
|
|
157
158
|
*/
|
|
158
159
|
declare function parseMotion3(json: unknown): Motion3Clip;
|
|
159
160
|
|
|
161
|
+
interface ActorModelSlotOptions {
|
|
162
|
+
backends: readonly ModelBackend[];
|
|
163
|
+
renderer: Renderer;
|
|
164
|
+
onProgress?: (payload: LoadProgress) => void;
|
|
165
|
+
onMotionStart?: (payload: {
|
|
166
|
+
group: string;
|
|
167
|
+
index: number;
|
|
168
|
+
slot: string;
|
|
169
|
+
}) => void;
|
|
170
|
+
onMotionFinish?: (payload: {
|
|
171
|
+
group: string;
|
|
172
|
+
index: number;
|
|
173
|
+
slot: string;
|
|
174
|
+
}) => void;
|
|
175
|
+
}
|
|
176
|
+
/** One loaded model + draw pass owned by an actor (not a renderer). */
|
|
177
|
+
declare class ActorModelSlot {
|
|
178
|
+
#private;
|
|
179
|
+
constructor(options: ActorModelSlotOptions);
|
|
180
|
+
get model(): InternalModel | null;
|
|
181
|
+
get drawPass(): ReturnType<Renderer["createModelDrawPass"]> | null;
|
|
182
|
+
ensureDrawPass(): ReturnType<Renderer["createModelDrawPass"]>;
|
|
183
|
+
load(source: ModelSource, resolver?: AssetResolver): Promise<InternalModel>;
|
|
184
|
+
setParameter(id: string, value: number): void;
|
|
185
|
+
listParameters(): readonly ParameterBinding[];
|
|
186
|
+
listMotionGroups(): Record<string, readonly _doki_land_live2d_core.MotionDefinition[]>;
|
|
187
|
+
playMotion(group: string, index?: number, options?: PlayMotionOptions): Promise<boolean>;
|
|
188
|
+
stopMotion(opts?: {
|
|
189
|
+
fade?: boolean;
|
|
190
|
+
slot?: string;
|
|
191
|
+
}): void;
|
|
192
|
+
listPlayingMotions(): ReadonlyArray<{
|
|
193
|
+
slot: string;
|
|
194
|
+
group: string;
|
|
195
|
+
index: number;
|
|
196
|
+
time: number;
|
|
197
|
+
priority: number;
|
|
198
|
+
}>;
|
|
199
|
+
update(deltaTimeSeconds: number): DrawableMesh[] | null;
|
|
200
|
+
hitTestModelCoords(modelX: number, modelY: number): string | null;
|
|
201
|
+
destroy(): void;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
interface Live2dActorImplOptions {
|
|
205
|
+
id: string;
|
|
206
|
+
creationIndex: number;
|
|
207
|
+
backends: readonly ModelBackend[];
|
|
208
|
+
renderer: Renderer;
|
|
209
|
+
}
|
|
210
|
+
declare class Live2dActorImpl implements Live2dActor {
|
|
211
|
+
#private;
|
|
212
|
+
readonly id: string;
|
|
213
|
+
readonly creationIndex: number;
|
|
214
|
+
constructor(options: CreateActorOptions | undefined, shared: Live2dActorImplOptions);
|
|
215
|
+
get model(): InternalModel | null;
|
|
216
|
+
get visible(): boolean;
|
|
217
|
+
set visible(value: boolean);
|
|
218
|
+
get opacity(): number;
|
|
219
|
+
set opacity(value: number);
|
|
220
|
+
get layer(): string;
|
|
221
|
+
set layer(value: string);
|
|
222
|
+
get order(): number;
|
|
223
|
+
set order(value: number);
|
|
224
|
+
getTransform(): ActorTransform;
|
|
225
|
+
setTransform(patch: Partial<ActorTransform>): void;
|
|
226
|
+
load(source: Parameters<Live2dActor["load"]>[0], resolver?: Parameters<Live2dActor["load"]>[1]): Promise<InternalModel>;
|
|
227
|
+
setParameter(id: string, value: number): void;
|
|
228
|
+
lookAt(stageX: number, stageY: number): void;
|
|
229
|
+
/** Internal: evaluate motion/physics and cache drawables for render. */
|
|
230
|
+
update(deltaTimeSeconds: number): DrawableMesh[] | null;
|
|
231
|
+
get lastDrawables(): DrawableMesh[] | null;
|
|
232
|
+
get slot(): ActorModelSlot;
|
|
233
|
+
hitTestStage(stageX: number, stageY: number): Omit<ActorHit, "actor"> | null;
|
|
234
|
+
destroy(): void;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
interface CreateLive2dStageFullOptions extends CreateLive2dStageOptions {
|
|
238
|
+
backends?: ModelBackend[];
|
|
239
|
+
renderer?: Renderer;
|
|
240
|
+
prefer?: RendererKind[];
|
|
241
|
+
}
|
|
242
|
+
type PointerListener = (event: StagePointerEvent) => void;
|
|
243
|
+
declare class Live2dStageImpl implements Live2dStage {
|
|
244
|
+
#private;
|
|
245
|
+
constructor(options?: CreateLive2dStageFullOptions);
|
|
246
|
+
get actors(): readonly Live2dActor[];
|
|
247
|
+
get pointerTracking(): PointerTrackingPolicy;
|
|
248
|
+
set pointerTracking(policy: PointerTrackingPolicy);
|
|
249
|
+
get renderer(): Renderer;
|
|
250
|
+
mount(canvas: HTMLCanvasElement): Promise<void>;
|
|
251
|
+
createActor(options?: CreateActorOptions): Live2dActor;
|
|
252
|
+
removeActor(actorOrId: Live2dActor | string): void;
|
|
253
|
+
defineLayers(layers: readonly string[]): void;
|
|
254
|
+
update(deltaTimeSeconds: number): void;
|
|
255
|
+
render(): void;
|
|
256
|
+
start(): void;
|
|
257
|
+
pause(): void;
|
|
258
|
+
resume(): void;
|
|
259
|
+
stop(): void;
|
|
260
|
+
hitTest(stageX: number, stageY: number): ActorHit | null;
|
|
261
|
+
hitTestAll(stageX: number, stageY: number): readonly ActorHit[];
|
|
262
|
+
addEventListener(type: "pointerdown" | "pointermove" | "pointerup", listener: PointerListener): void;
|
|
263
|
+
removeEventListener(type: "pointerdown" | "pointermove" | "pointerup", listener: PointerListener): void;
|
|
264
|
+
destroy(): void;
|
|
265
|
+
}
|
|
266
|
+
declare function createLive2dStage(options?: CreateLive2dStageFullOptions): Live2dStage;
|
|
267
|
+
|
|
160
268
|
interface CreateLive2DOptions {
|
|
161
269
|
backends?: ModelBackend[];
|
|
162
|
-
/** Defaults to `createRenderer({ prefer })` (async fallback on initialize). */
|
|
163
270
|
renderer?: Renderer;
|
|
164
|
-
/**
|
|
165
|
-
* Renderer try order when `renderer` is omitted.
|
|
166
|
-
* Default: `["webgpu", "webgl2", "canvas2d"]`.
|
|
167
|
-
*/
|
|
168
271
|
prefer?: RendererKind[];
|
|
272
|
+
updateMode?: "auto" | "manual";
|
|
169
273
|
}
|
|
170
274
|
interface Live2DRuntime extends Live2DSession {
|
|
171
275
|
readonly renderer: Renderer;
|
|
172
276
|
readonly backends: readonly ModelBackend[];
|
|
277
|
+
readonly stage: Live2dStageImpl;
|
|
278
|
+
readonly actor: Live2dActorImpl;
|
|
173
279
|
setParameter(id: string, value: number): void;
|
|
174
280
|
listParameters(): readonly ParameterBinding[];
|
|
175
|
-
/** Hit-test the current model in normalized canvas coordinates (-1..1). */
|
|
176
281
|
hitTest(x: number, y: number): string | null;
|
|
177
|
-
|
|
178
|
-
listMotionGroups(): Record<string, readonly MotionDefinition[]>;
|
|
179
|
-
/**
|
|
180
|
-
* Load and play a motion from `settings.motionGroups[group][index]`.
|
|
181
|
-
* Returns false if priority rejects or the entry is missing.
|
|
182
|
-
*/
|
|
282
|
+
listMotionGroups(): Record<string, readonly _doki_land_live2d_core.MotionDefinition[]>;
|
|
183
283
|
playMotion(group: string, index?: number, options?: PlayMotionOptions): Promise<boolean>;
|
|
184
|
-
/** Fade out (default) or hard-stop. Optional slot; omit = all slots. */
|
|
185
284
|
stopMotion(opts?: {
|
|
186
285
|
fade?: boolean;
|
|
187
286
|
slot?: string;
|
|
188
287
|
}): void;
|
|
189
|
-
/** Active motion slots (idle + tap can both appear). */
|
|
190
288
|
listPlayingMotions(): ReadonlyArray<{
|
|
191
289
|
slot: string;
|
|
192
290
|
group: string;
|
|
@@ -194,16 +292,13 @@ interface Live2DRuntime extends Live2DSession {
|
|
|
194
292
|
time: number;
|
|
195
293
|
priority: number;
|
|
196
294
|
}>;
|
|
197
|
-
/**
|
|
198
|
-
* Draw one frame and encode the canvas as PNG.
|
|
199
|
-
* Works for Canvas2D and WebGL2 (`preserveDrawingBuffer`).
|
|
200
|
-
*/
|
|
201
295
|
capturePng(opts?: {
|
|
202
296
|
mimeType?: "image/png";
|
|
203
297
|
quality?: number;
|
|
204
298
|
}): Promise<Blob>;
|
|
205
299
|
}
|
|
206
|
-
|
|
300
|
+
|
|
301
|
+
/** Wire moc backends and a renderer into one single-actor session. */
|
|
207
302
|
declare function createLive2D(options?: CreateLive2DOptions): Live2DRuntime;
|
|
208
303
|
|
|
209
304
|
/**
|
|
@@ -228,4 +323,4 @@ declare function focusParameterUpdates(parameters: readonly ParameterBinding[],
|
|
|
228
323
|
|
|
229
324
|
declare const LIVE2D_VERSION: "0.0.0";
|
|
230
325
|
|
|
231
|
-
export { type CreateLive2DOptions, LIVE2D_VERSION, type Live2DRuntime, type Motion3Clip, type MotionApplySample, MotionPlayer, MotionPriority, type PlayMotionOptions, blendMotionLayers, createLive2D, evaluateCurve, evaluateMotion3, focusParameterUpdates, parseMotion3 };
|
|
326
|
+
export { type CreateLive2DOptions, type CreateLive2dStageFullOptions, LIVE2D_VERSION, type Live2DRuntime, type Motion3Clip, type MotionApplySample, MotionPlayer, MotionPriority, type PlayMotionOptions, blendMotionLayers, createLive2D, createLive2dStage, evaluateCurve, evaluateMotion3, focusParameterUpdates, parseMotion3 };
|