C
SONARI · CUBISM PIPELINE 浏览器版

Cubism Pipeline · 中间环节自动化

把 PSD 到 Live2D 模型的中间步骤压成网页操作。 PSD 预处理 + 8 表情生成 + model3.json 后处理 — 全部在浏览器内完成,数据不上传。

这个工具能做什么

把命令行版的 Cubism Pipeline 装进浏览器,无需 Python 环境。

任务
本工具
Cubism
PSD 图层验证 / 重命名 / 移除 dust
✓ 浏览器内
需手工
生成 8 个 .exp3.json 表情文件
✓ 一键
需手工调 30-60 分钟
model3.json 后处理(眨眼+呼吸+绑定)
✓ 一键
需手工编辑
导入 PSD + 生成 mesh + auto-rig
无法
✓ 仅此可做
导出 .moc3 模型文件
无法(闭源格式)
✓ 仅此可做
调头发物理 / 视觉确认
无法
✓ 必须人工

三层自动化

L1
完全可自动化(本工具覆盖) PSD 进 Cubism 前的预处理 + moc3 导出后的 model3.json 后处理。 占总工时 ~30%。这部分省 30-40 分钟/角色。
L2
半自动(操作宏) Cubism 内点击 5 下变成按 F1。AutoHotkey/Hammerspoon 配置,本工具不能做但提供脚本下载。 占总工时 ~10%。省 5-10 分钟。
L3
必须人工 头转穿模修正、物理调试、视觉确认 — 这是 Cubism Editor 的根本边界, 任何工具都做不到。占总工时 ~60%。25-30 分钟。
总工时

从 PSD 到 PixiJS 可加载的 Live2D:25-40 分钟/角色

本工具加速 L1 部分(~5 分钟),配合 Cubism 5.0 的 AI Auto-rig(L2 关键)和必要的人工调整(L3), 全管线压到 25-40 分钟。原始流程 60-90 分钟。

第 1 步 · PSD 预处理

检查图层 / 重命名 / 检测 dust,输出 Cubism 兼容的标准化 PSD。

[ + ]
上传 PSD 文件
从 See-through API 输出的 PSD,或任何分图层 PSD

第 2 步 · Cubism 内操作(本工具不能做,但精简到极致)

这部分必须在 Cubism 5.0 中完成。15-25 分钟。

必备软件

Live2D Cubism Editor 5.0(免费 PRO 试用 42 天)

下载:live2d.com/en/cubism/download/editor

PRO 试用结束后降级 FREE 版,FREE 版限制 30 参数 / 30 部件 / 100 ArtMesh — MVP 阶段够用。

步骤详解

2.1
导入 PSD(2 分钟) Cubism Editor → 文件 → 新建 → 拖拽 Step 1 处理后的 PSD 进窗口。 Cubism 自动识别图层结构。
2.2
自动生成 Mesh(1 分钟) 选中所有 ArtMesh(Ctrl+A) → 右键 → Apply Automatic Mesh Generation
2.3
AI Auto-Rigging(1 分钟,核心) 菜单 → Modeling → Auto Generate Face Motion → 选 Angle X / Y / Z → 等 30 秒
2.4
调整头发(10-20 分钟,L3 人工) 头转时头发可能穿模,在 Parameters 面板调整,参考 Cubism Sample 模型 "Hiyori"
2.5
物理设置(3 分钟,可选) 菜单 → Modeling → Physics Settings → 添加头发组 → Pendulum=8, Damping=0.5, Reaction=0.4
2.6
导出 model3.json(2 分钟) File → Export Embedded File → Export as moc3 file

AutoHotkey / Hammerspoon 操作宏(可选,L2 半自动)

把 Cubism 内的固定操作压成快捷键,每个角色省 5-10 分钟。

第 3 步 · 生成 8 个 Expression 文件

基于 Sweet Candy 8 种情绪的预设参数。手工调每个表情 5-8 分钟,本工具 5 秒搞定。

淡入淡出

模板预设

参数预设是基于 Sweet Candy 主题调好的。如果做不同风格的角色(冷静女神 / 姐姐风),可以切换:

第 4 步 · model3.json 后处理

添加自动眨眼 + 自动呼吸 + 8 表情绑定 + Groups 定义。手工 5-10 分钟,本工具 5 秒。

[ + ]
上传 Cubism 导出的 model3.json
来自 Step 2.6 的 Cubism File → Export → model3.json

第 5 步 · 打包总览

把所有产出整理成 PixiJS 可加载的目录结构。

已生成的文件

candy_v1/ ├── candy.moc3 [ Cubism 导出 ] ├── candy.model3.json [ 等待处理 ] ├── candy.physics3.json [ Cubism 可选导出 ] ├── textures/ │ └── texture_00.png [ Cubism 导出 ] └── expressions/ ├── exp_idle.exp3.json [ 等待生成 ] ├── exp_cheering.exp3.json ├── exp_excited.exp3.json ├── exp_euphoric.exp3.json ├── exp_tense.exp3.json ├── exp_sad.exp3.json ├── exp_cozy.exp3.json └── exp_sleepy.exp3.json

PixiJS 集成代码

// 在 Sweet Candy 项目中 import * as PIXI from 'pixi.js'; import { Live2DModel } from 'pixi-live2d-display'; // 加载模型 const candy = await Live2DModel.from('/assets/candy_v1/candy.model3.json'); candy.scale.set(0.18); candy.x = app.screen.width - 80; candy.y = 80; app.stage.addChild(candy); // 切换表情(对应 8 种情绪) candy.expression('exp_euphoric'); // 大奖! // 眼球追踪 app.stage.on('pointermove', (e) => { candy.focus(e.data.global.x, e.data.global.y); });

批量下载

把本工具的所有产出打包成 zip,直接放到 Sweet Candy 项目:

下一步

整套管线已跑通

把 candy_v1/ 放到 Sweet Candy 项目的 public/assets/ 下, 在 Slot 主控制器调用 Live2DModel.from() 加载即可。 先灰度 5% 用户跑 24 小时,数据正向再扩大。

预期表现:玩家点 SPIN 时 Candy 表情变紧张(cheering),reels 停时屏息(tense), 中奖欢呼(excited / euphoric)。预期玩家会话时长 +25-40%。