Skip to content

模型实例

47 words
0 min

创建模型将返回一个实例, 用于方便后续操作模型的样式和行为

ts
l2d.load({
  path: 'https://model.hacxy.cn/HK416-1-normal/model.json',
}).then(() => {
  l2d.setPosition(0.2, -0.2); // 重新设置位置
  message.success('模型加载成功');
});

方法

on()

on<K>(event: K, listener: L2DEventMap[K]): L2D

类型参数:

类型 参数名
K extends keyof L2DEventMap

参数:

参数名类型
eventK
listenerL2DEventMap[K]

返回值类型: L2D

继承自: Emitter.on


emit()

protected emit<K>(event: K, ...args: 参数名s<L2DEventMap[K]>): void

类型参数:

类型 参数名
K extends keyof L2DEventMap

参数:

参数名类型
eventK
...args参数名s<L2DEventMap[K]>

返回值类型: void

继承自: Emitter.emit


load()

load(options: Options): Promise<void>

加载并渲染一个 Live2D 模型,自动识别 Cubism 2 / 6 版本。 加载完成后触发 loaded 事件。

参数:

参数名类型描述
optionsOptions模型加载选项,参见 Options

返回值类型: Promise<void>


create() 已弃用

create(options: Options): Promise<void>

参数:

参数名类型
optionsOptions

返回值类型: Promise<void>


resize()

resize(): void

返回值类型: void


getCanvas()

getCanvas(): HTMLCanvasElement

返回当前绑定的 canvas 元素

返回值类型: HTMLCanvasElement


playMotion()

playMotion(group: string, index?: number, priority?: number): void

播放指定动作组中的动作。

参数:

参数名类型描述
groupstring动作组名称
index?number组内动作索引,省略时随机播放
priority?number播放优先级,数值越大越优先

返回值类型: void


getMotions()

getMotions(): Record<string, string[]>

获取所有动作,结构为 { 组名: [文件路径, ...] }

返回值类型: Record<string, string[]>


playMotionByFile()

playMotionByFile(file: string, priority?: number): void

通过动作文件路径播放动作,内部自动匹配对应的动作组和索引。

参数:

参数名类型描述
filestring动作文件路径,如 'motions/idle.motion3.json'
priority?number播放优先级

返回值类型: void


getExpressions()

getExpressions(): string[]

获取所有可用表情的 ID 列表

返回值类型: string[]


setExpression()

setExpression(id?: string): void

切换模型表情。

参数:

参数名类型描述
id?string表情 ID,省略时随机切换

返回值类型: void


setScale()

setScale(scale: number): void

设置模型缩放比例,与加载选项中的 scale 作用一致。

参数:

参数名类型描述
scalenumber缩放比例,1 为原始大小

返回值类型: void


setPosition()

setPosition(x: number, y: number): void

设置模型在画布中的位置偏移,与加载选项中的 position 作用一致。

参数:

参数名类型描述
xnumberX 轴偏移,范围为-2 ~ 2
ynumberY 轴偏移,范围为-2 ~ 2

返回值类型: void


setParams()

setParams(params: Record<string, number>): void

批量设置模型参数值,参数 ID 可在模型的 .cdi3.json 文件中查看。

参数:

参数名类型
paramsRecord<string, number>

返回值类型: void

示例: l2d.setParams({ ParamEyeLOpen: 0, ParamA: 1 })


getHitAreaBounds()

getHitAreaBounds(): object[]

获取所有 hit area 的当前边界(相对 canvas 的 0~1 比例)。 每帧调用可实现实时追踪。

返回值类型: object[]

示例:

ts
// canvas overlay
ctx.strokeRect(b.x * canvas.width, b.y * canvas.height, b.w * canvas.width, b.h * canvas.height)
// div overlay
el.style.left = `${b.x * 100}%`

destroy()

destroy(): void

销毁当前模型并释放 WebGL 资源,清空画布。 画布 DOM 节点本身不会被移除。

返回值类型: void

MIT Licensed