← 作品展 CASE 03 / 05
Pixi 6 · Cubism 4

Pixi Stage · 渲染循环接管

Pixi 舞台

Pixi 6 + pixi-live2d-display · Cubism 4

Pixi 管渲染循环,插件把 moc3 挂进场景图。

Pixi 6.5 pixi-live2d-display 0.4 Cubism Core 5.1 7 官方模型
正在检测模型…
LIVE DEMO · 03
移动鼠标看她转头 · 点击角色切换表情
操作:鼠标移动 / 点击模型:Haru · 本地资源
01

实现要点

Implementation
  1. 复用画布:PIXI.Application 直接接管既有 canvas,resizeTo: stage 跟随舞台尺寸。
  2. 一行加载:Live2DModel.from(...) 内部会解析 moc3、贴图、动作与物理。
  3. 自适应布局:各模型画布留白不同,先整块渲染一帧、读回像素量出人物可见范围,再按可见范围等比缩放并贴底居中。
  4. 交互:锚点设在底部中心;pointertap 轮换表情;视线跟随由插件的 autoInteract 处理。

运行条件

运行状态
可离线 Pixi、Core、插件与 7 个官方模型全部在仓库内。
依赖 / 资源
Pixi 6.5.10(js/pixi.min.js)
Cubism Core 5.1(js/live2dcubismcore.min.js)
pixi-live2d-display 0.4(js/)
Haru Cubism 4(models/Haru)
入口文件
06-cubism4-pixi/live2D3.html
初始化
new PIXI.Application({ view, resizeTo: stage }) 接管既有 canvas,随后 Live2DModel.from('../models/Haru/Haru.model3.json') 并 app.stage.addChild(model)。
02

关键代码

Code
JS
const app = new PIXI.Application({
  view: document.getElementById('canvas'),
  resizeTo: stage, backgroundAlpha: 0
});

const model = await PIXI.live2d.Live2DModel.from(
  '../models/Haru/Haru.model3.json'
);
app.stage.addChild(model);
model.anchor.set(0.5, 1);

model.on('pointertap', () => model.expression(index++ % 8));
03

注意

Caveats
04

不同用法

Variants