@tomiaa/live2d
Version:
开箱即用的 Live2d
87 lines (86 loc) • 2.52 kB
TypeScript
import type { Application, IApplicationOptions } from "pixi.js";
import type { Live2DModel as Live2DModelType } from "pixi-live2d-display";
import { HitokotoOptions, Hitokoto } from "@tomiaa/hitokoto";
import live2d from "pixi-live2d-display";
import type * as PIXI from "pixi.js";
import { ModelOption } from "./modelList";
export interface Live2dOptions {
el: any;
jsBaseURL?: string;
live2d_2_ModelBaseURL?: string;
live2d_3_ModelBaseURL?: string;
loadLive2d_2?: boolean;
loadLive2d_3?: boolean;
playLoadingAnimation?: boolean;
showLoading?: boolean;
showControl?: boolean;
iApplicationOptions?: IApplicationOptions;
maxWidth?: number;
minWidth?: number;
aspectRatio?: [number, number];
beforeInit?: (data: {
options: Live2dOptions;
modelList: ModelOption[];
}) => void;
afterInit?: (data: {
options: Live2dOptions;
modelList: ModelOption[];
currentModelOption: ModelOption;
Live2DModel: typeof Live2DModelType;
app: Application;
}) => void;
randomPeople?: boolean;
allowDrag?: boolean;
hitokoto?: boolean;
hitokotoOptions?: HitokotoOptions;
}
declare global {
interface Window {
PIXI: typeof PIXI & {
live2d: typeof live2d;
};
LIVE2DCUBISMFRAMEWORK: any;
Live2DCubismCore: any;
LIVE2DCUBISMPIXI: any;
}
}
export declare class Live2d {
options: Live2dOptions;
el: any;
canvas: any;
Live2DModel?: typeof Live2DModelType;
app?: Application;
loading: boolean;
model?: InstanceType<typeof Live2DModelType> & {
[prop: string]: any;
};
modelList: ModelOption[];
currentModelOption?: ModelOption;
personIndex: number;
clothingIndex: number;
elLoading: any;
elControl: any;
elSwitchPerson: any;
elSwitchClothing: any;
elHitokoto?: any;
hitokoto?: Hitokoto;
constructor(options: Live2dOptions);
get getJsBaseURL(): string;
get getLive2d_2_ModelBaseURL(): string;
get getLive2d_3_ModelBaseURL(): string;
init(): Promise<void>;
loadJS(): Promise<void>;
createPIXI(): void;
loadModelList(): Promise<undefined>;
addLoadingSvg(): void;
addControls(): void;
loadModel(): Promise<void>;
setPersonIndex(): void;
onresize(): void;
animation(e?: MouseEvent | string): void;
switchPerson(): void;
switchClothing(): void;
createHitokoto(): void;
destroy(): void;
}
export default Live2d;