先看结论:这个项目不是大厂级别的精细角色,而是一颗圆滚滚的卤蛋大脑袋。但它最值得看的地方,恰恰是用最简单的形状,把 Live2D 里最容易让人劝退的“九轴动态”和物理模拟跑通了。建模、绑参数、调物理、导出集成,整个流程一个晚上就能走完,非常适合想入坑 Live2D 又不想一上来就啃复杂手办级模型的人。
标题里提到的桃桃儿大佬的教程,属于这次制作的主要学习资料。如果你是零基础,建议把它当成一个“跟着做一遍”的参考线索,同时配合 Live2D 官方文档和官方示例项目一起看。这颗卤蛋的价值在于:它是圆润的几何体,图层少、绑点少、网格调整量小,所有精力都可以集中在最重要的头颈旋转、视线跟随和表情联动上,不需要一开始就和头发、衣服、布料较劲。
这篇文章会带你完整走一遍:Live2D Cubism 的安装和启动、PSD 分层准备、导入建模、参数轴配置、九轴动态实现、物理模拟、模型导出,以及如何把做好的模型接到网页或直播软件里验证。同时会给出排查思路和合规提醒,帮你避开那些“做完了才发现模型动不了”和“版权来源不明”的坑。
1. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 项目类型 | Live2D 角色模型制作 + 九轴动态 + 物理模拟 |
| 核心工具 | Live2D Cubism,版本以官网当前版本为准 |
| 系统要求 | Windows / macOS,具体以官方安装说明为准 |
| 硬件门槛 | 建模阶段对显卡要求不高,内存 8GB 以上更稳 |
| 是否需要 GPU | 建模不需要;集成到实时渲染平台时看目标设备 |
| 启动方式 | 安装后打开 Cubism Editor,新建或加载工程 |
| 主要功能 | PSD 图层建模、网格编辑、参数轴绑定、物理模拟、动画预览、模型导出 |
| 导出格式 | .moc3 + 贴图 + model3.json 组成完整模型目录 |
| 集成能力 | Cubism SDK(Web / Native / Unity)、VTube Studio、浏览器内嵌 |
| 批量能力 | 图层可批量导入导出,物理和参数配置可按模板复用 |
| 新手友好度 | 比较高,适合用一个简单几何体快速跑通全流程 |
这里需要先解释一个容易混淆的词:九轴。它不是 Live2D 官方手册里写死的术语,更多是创作者圈子的习惯说法。比较普遍的理解是,让一个角色拥有接近九自由度的头部和视线控制能力,通常包括:头部左右旋转、头部上下旋转、头部倾斜、视线左右、视线上下、眼睛开合、嘴巴开合、身体轻微转动、还有表情或者呼吸这一类的附加动态。不同教程对“九轴”的划分不太一样,但核心目标是一致的:让角色看起来不是一张会动的贴图,而是一个能灵活转头的“立体大脑袋”。
2. 适用场景与制作边界
先说什么人适合做这种项目。如果你是想做 VTuber 直播皮、给表情包加动态、给游戏或 Web 页面做低成本虚拟形象,或者只是想搞明白 Live2D 到底怎么建模,这颗卤蛋就是很好的练手素材。它没有复杂的头发分层,也没有物理布料,所有参数都集中在一个圆润的头颅上,调试反馈非常直接。一个晚上做完不是夸张话,前提是你不去纠结精细度。
这个项目不适合做什么?不适合一上来就做精细角色。精细角色需要几十个图层、大量的网格修正、脸部多角度变形,一个晚上完全不够。同样,如果你要做的是生产级项目,比如商业游戏的立绘角色,那需要更严格的项目管理和版本控制,不能只靠“一晚上搓出来”的方式糊弄。九轴动态适合做头部和视线,但如果角色需要复杂衣服摆动、长发物理、飘带碰撞,只用“九轴”这个思路是做不透的,还要单独设计物理模拟物体和网格半透明遮罩。
边界问题要特别说明。制作 Live2D 模型时,素材来源必须明确:你可以用自己绘制或者已获授权的图片,也可以用官方示例资源、无版权素材。不要把别人做的模型下载后直接改个名字拿去商用。Live2D Cubism 本身提供免费下载渠道,个人学习和非商业用途可以用,但商用和 SDK 分发时的授权政策要在官网确认清楚。涉及角色形象、真人肖像、声音素材时,也必须先获得权利人授权。
3. Live2D 本地部署环境准备
如果之前完全没接触过 Live2D,先把环境准备好。这里说的“本地部署”不是跑大模型,而是安装一个建模编辑器。首先,从 Live2D 官网下载 Cubism 安装包。这里强调一句:搜索“live2d cubism 安装包”“live2d 下载免费”的时候,优先选官网渠道,而不是各种来路不明的网盘压缩包。Cubism 有免费下载通道,个人使用一般足够,没必要去找所谓“破解版”,一个是安全风险,另一个是授权风险。
安装时注意两点。第一,安装目录不要放中文路径,也不要有奇怪的空格,否则后续导出模型时容易出现资源路径读取失败。第二,如果你用 macOS,安装后如果提示“无法打开”,要去系统设置的“隐私与安全性”里允许该应用运行。Windows 用户如果杀毒软件拦截,先看一下是不是误报,确认文件来源是官网再放行。
电脑配置方面,Cubism 建模主要吃 CPU 和内存。普通办公笔记本也能跑,但内存建议至少 8GB,否则图层多一点、网格编辑频繁时可能会卡。它不需要 CUDA,不吃显卡显存,这里别被“AI 部署需要显卡”的惯性思维带偏。如果你后续要把模型接到浏览器、Unity 或者 OBS 里做实时渲染,才需要考虑目标设备的渲染能力。
软件装好后,新建一个空工程,会自动打开棋盘格背景的画布。这里就可以准备第一步素材了:一颗卤蛋大脑袋的正面 PSD 图。
4. 制作“卤蛋大脑袋”的完整流程
4.1 起稿与 PSD 分层准备
Live2D 的建模基础是 PSD 分层图。你需要用 Photoshop、Krita、Procreate 这类能导出 PSD 的绘图软件,画一张正面视角的大脑袋图。卤蛋的好处是形状简单:一个圆润的头颅轮廓,加一点顶部高光、前发、后发、眼睛、眉毛、嘴巴、腮红。图层越多,后续可控制的动态越丰富,但第一次练手不用贪多。
分层的核心原则是:每个需要独立运动的部件都要单独占一层。眼球和眼白要分开,嘴巴上下唇最好也分开,高光单独一层,头发按前发/后发展开。这样后续建模时,才能单独给眼睛、嘴、眉毛、头发设置参数轴。图层命名也重要,建议统一用英文或数字,比如head、front_hair、back_hair、eye_L、eye_R、mouth、highlight。命名不规范会导致导入 Cubism 后图层顺序错乱,直接影响网格生成。
这里提供一个简单的 Python 脚本,用来检查导出图层文件命名是否符合规范。它不替代 Photoshop 的分层操作,但可以在你做批处理前先筛一遍:
import os import re # 遍历一个存放分层PNG的目录,校验文件名是否符合 Live2D 习惯 layer_dir = "./psd_layers" pattern = re.compile(r"^[A-Za-z0-9_\-/.]+$") invalid_names = [] for filename in os.listdir(layer_dir): if not pattern.match(filename): invalid_names.append(filename) if invalid_names: print("以下图层文件名需要调整:") for name in invalid_names: print(name) else: print("图层命名全部通过,可以导入 Cubism。")4.2 导入 Cubism 与网格生成
打开 Cubism 后,新建工程,选择画布尺寸。Cubism 会直接把 PSD 导入并生成默认网格。对于卤蛋这种圆润模型,默认网格基本够用,但眼睛、嘴巴周围建议手动加密。网格的作用是承载变形,网格点越密集,参数变化时的局部变形越平滑;太稀疏则会出现硬边或破形。
编辑网格时,重点盯住几个区域:眼睛周围,因为眨眼、眯眼、视线移动都要靠这里变形;嘴巴周围,开口、闭嘴、嘴角上扬都是网格点位移完成的;头部边缘,头转动时需要体现出“圆柱感”,不是整张图左右平移。
第一次操作时容易懵的是“自动生成网格”和“手动编辑”的关系。自动网格只是起点,手动调整才是建模的关键。一颗卤蛋并不复杂,你可以把精力放在眼睛和嘴的网格密度上,头顶高光和后脑勺保持稀疏网格就行。
4.3 建立核心参数轴
Live2D 的参数轴可以理解为一组滑块,每个滑块从 -1 到 1 变化,控制某个部件的变形程度。标准建模流程会建立这些核心参数:
| 参数名 | 控制内容 | 典型数值范围 |
|---|---|---|
| ParamAngleX | 头部左右旋转 | -30 到 30 |
| ParamAngleY | 头部上下点头 | -30 到 30 |
| ParamAngleZ | 头部向左右歪斜 | -30 到 30 |
| ParamEyeLOpen | 左眼开合 | 0 到 1 |
| ParamEyeROpen | 右眼开合 | 0 到 1 |
| ParamMouthOpenY | 嘴巴张开程度 | 0 到 1 |
| ParamEyeballX | 眼球左右移动 | -1 到 1 |
| ParamEyeballY | 眼球上下移动 | -1 到 1 |
| ParamBodyAngleX | 身体或头颈左右摆动 | -15 到 15 |
这里的数值范围不是死的,按你的角色尺寸和预期动态幅度调整。很多教程里说的“九轴”,就是把上面这类参数组合起来,让头部、视线、表情和身体形成联动。
建立参数轴后,给它添加关键帧。操作逻辑是:选中某个参数轴,把滑块拖到 0 处,先记录初始形态,再把滑块拖到最大值或最小值,拖动对应部件到变形后的位置。Cubism 会自动在两个状态之间插值。比如要做头部左右旋转,就把 ParamAngleX 调到 30,然后手动把整个头部的网格点往一侧移动,让模型呈现侧面视角的变化。
4.4 用卤蛋验证九轴动态
九轴做到位后,这颗卤蛋会表现出很强的“立体感”。
先看头部三轴。ParamAngleX 负责摇头,网格点需要呈现弧形位移,脸前方的高光会随着旋转偏移;ParamAngleY 负责点头,下巴和嘴部区域向下压,前发和眼睛的位置稍微错开;ParamAngleZ 负责歪头,整个头部网格整体旋转,同时五官保持相对位置。这三个轴是最容易看出模型“活没活”的关键。
再看视线轴。眼珠单独用 ParamEyeballX 和 ParamEyeballY 控制,这样做的好处是头转时眼睛不会跟着整张脸一起平移,而是在眼眶内滑动。很多初学者把眼珠绑定在头部旋转轴上,结果头一转,眼珠也跟着转出画面,这就是视线轴没有独立设置。
然后是表情轴。眨眼时,上下眼皮的网格向内收缩,不是单纯把眼睛贴图缩小;嘴巴张开时,下唇和下巴联动下拉。卤蛋的脸肉多,眨眼和开口的变形量反而更明显,非常适合观察变形曲线是否流畅。
最后加物理模拟。选中前发、高光这类易晃动图层,在“物理模拟”面板里添加摆动物体,设置重力、刚性和衰减参数。开启物理模拟后,头部旋转时头发和高光会产生延迟摆动,这就是很多 Live2D 模型“灵动感”的来源。卤蛋没头发,但可以给顶部的呆毛或者高光加一个轻微摆动,测试物理模拟状态。
4.5 导出模型
模型调整完成后,进入导出环节。Cubism 会生成一个包含 .moc3、纹理贴图和 .model3.json 的目录。导出前检查三点:参数关键帧是否都保存;物理模拟设置是否启用;纹理图集是否合理,不要把所有图层堆进一张超大贴图。
导出后,可以先用下面命令看一下模型目录结构,确认关键文件都在:
# 检查模型目录结构,确认 .model3.json、贴图、物理文件是否齐全 find ./model -type f | sort正常导出后应看到类似这样的结构:
./model/ludan.model3.json ./model/ludan.moc3 ./model/ludan.texture0000.png ./model/ludan.physics3.json如果缺少 physics3.json,说明物理模拟没有导出成功;如果缺少 model3.json,说明整个模型配置就没有生成,要去 Cubism 里重新检查导出设置。
5. 九轴参数配置的实操细节
九轴不是简单地建九个参数就完事,更多是参数之间的联动。这里以“头部旋转 + 视线补偿”为例。当 ParamAngleX 从 0 转到 30 时,头部向右转,如果眼珠还死死盯着正前方,观感会很奇怪。正确做法是建一个联动关系,让 ParamEyeballX 在头转时朝相反方向移动一点,形成“头转但视线还在看观众”的效果。
Cubism 里做联动有两种方式。第一种是用变形路径,直接在同一参数轴上控制多个部件;第二种是手动把关键帧里不同参数组合起来。实操时,建议把九轴的参数值写进一份配置表,方便对照调试:
{ "modelName": "ludan_head", "params": [ "ParamAngleX", "ParamAngleY", "ParamAngleZ", "ParamEyeLOpen", "ParamEyeROpen", "ParamMouthOpenY", "ParamEyeballX", "ParamEyeballY", "ParamBodyAngleX" ], "paramMapping": { "ParamAngleX": { "defaultValue": 0, "min": -30, "max": 30 }, "ParamEyeballX": { "defaultValue": 0, "min": -1, "max": 1 } } }这里把参数名和范围集中写出来,不是为了直接丢给引擎,而是方便你在建模时对照检查,避免漏建参数。如果你使用 VTube Studio 或者其他支持参数映射的工具,这份 JSON 也能作为后续配置的起点。
参数轴之间的插值曲线也需要调。Cubism 里每个关键帧之间默认是线性插值,但真实人脸转动时,旋转边缘的压缩感并不是线性的。头部转到接近侧面时,脸型变化会加速。这时候需要把参数曲线调成缓动曲线,让旋转到两端时速度减慢,中间的弧度更饱满。卤蛋模型简单,这个调整很快,但对后续做真人比例模型非常重要。
物理模拟面板里的参数同样值得花时间。刚性和重力值不要一味拉高,摆动幅度太大或者衰减太慢,会导致模型看起来发飘。建议先给呆毛设一个小的摆动角度,测试头部快速旋转时呆毛是否跟着上下抖动,再逐步加大幅度。
6. 模型导出后的集成与验证
模型做完了,放在 Cubism 里预览只是第一步。真正的验证场景是运行到其他环境里,确认它在实时交互时表现稳定。有三种常见接法。
第一种是用 Live2D Cubism Viewer,这是官方自带的预览工具。打开 .model3.json,就能直接看到模型在当前工程里的最终效果。如果 Viewer 里模型正常,说明导出文件本身是完整的。
第二种是接到 VTube Studio,适合做直播皮。把模型目录拷到 VTube Studio 的 Live2DModels 目录下,打开软件后识别。VTube Studio 会读取 model3.json 里的参数和物理配置,用摄像头驱动面部追踪。之前调的 ParamAngleX 会直接对应头部左右转动,ParamMouthOpenY 对应张嘴,所以建模阶段参数命名越规范,接直播时就越好用。
第三种是接入 Web 页面,适合做网页虚拟形象或客服助手。这里需要用 Live2D Cubism SDK for Web。下面是一个简化版的加载思路,核心是先构造应用实例,再加载 model3.json:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Live2D 卤蛋模型预览</title> </head> <body> <canvas id="l2d-canvas"></canvas> <script src="cubism-sdk.js"></script> <script> // 伪代码结构,实际 API 路径以你当前 SDK 版本的官方示例为准 const modelUrl = "./model/ludan.model3.json"; const canvas = document.getElementById("l2d-canvas"); const app = new Live2DApp(); app.init(canvas); app.loadModel(modelUrl); app.start(); </script> </body> </html>注意,这段代码只是示意,实际 Cubism Web SDK 的初始化逻辑因为版本差异会不一样。下载 SDK 后,先跑官方示例,再把里面的模型路径替换成你的卤蛋模型,这样最省事。
不管用哪种方式验证,都对照这份清单检查:
- 头部旋转时,五官是否按透视关系变化,而不是整张脸贴图平移。
- 眼睛开合时,眼皮有没有覆盖眼球,而不是把眼球直接缩小。
- 嘴巴张开时,下巴和下唇是否联动,而不是嘴巴图层原地变形。
- 物理模拟是否正常工作,呆毛或高光是否有延迟摆动。
- 身份参数映射是否正确,特别是接入 VTube Studio 时。
7. 性能观察与资源占用
Live2D 模型不是神经网络推理,它不依赖显存计算,但实时渲染时依旧会消耗资源。影响性能的主要是四个点:纹理图集大小、网格三角形数量、物理模拟物体数量、参数插值计算量。
纹理图集越大,显存或内存占用越高。如果卤蛋模型的贴图是一张 2048x2048 的图集,在普通笔记本上可能没问题,但在低端手机上就会明显发热。优化方向是压缩贴图尺寸,或者把不必要的透明区域裁掉。网格三角形数量决定了每一帧变形的计算量,圆润脸型可以适度加密,但平面区域不要堆点。物理模拟的物体会逐帧计算摆动,物体数量多时,性能下降肉眼可见。
观察性能的方式取决于运行环境。在 Cubism Viewer 里,可以看到网格和纹理信息。在浏览器里,用 DevTools 的 Performance 面板录制一段头部旋转动画,查看每一帧的耗时。如果帧耗时飙升,优先检查贴图尺寸和物理模拟数量。在直播软件里,看 OBS 或 VTube Studio 的 GPU 占用,正常情况下,一个圆脑袋模型不应该让显卡风扇狂转。
这颗卤蛋的优势就在于面数和图层都很克制,性能压力天然很小。这也是推荐新手用简单模型起步的原因之一:你可以先把性能基线跑出来,以后换精致角色时,才知道哪些环节会拖慢性能。
8. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| PSD 导入失败或图层错乱 | 图层命名不规范、存在非法字符 | 检查图层名,确认不含空格和中文特殊符号 | 按 4.1 的命名规则重命名后重新导入 |
| 网格绑定时部件变形异常 | 网格点没有覆盖完整部件,或者绑到了错误图层 | 切到网格编辑模式,逐个确认网格归属 | 重新生成网格或手动移动网格点 |
| 参数轴滑块拖动无效 | 关键帧没有添加,或变形路径没有选中对应网格 | 检查参数轴是否建立了 0 值关键帧 | 在滑块 -1/0/1 三个位置各保存一次关键帧 |
| 头部旋转时五官比例很怪 | 网格点位移是硬平移,缺少内侧压缩感 | 检查旋转过程的关键帧,观察脸型是否自然 | 把头部旋转关键帧的网格点改为弧线位移 |
| 物理模拟不生效或疯狂抖动 | 物理物体没有加入正确的渲染图层,或刚性和衰减参数不合理 | 查看物理模拟面板,确认摆动物体已添加 | 调整重力、刚性和衰减参数,降低摆动幅度 |
| VTube Studio 不识别模型 | model3.json 路径错误,或模型目录名不规范 | 打开 model3.json 检查贴图和 moc3 路径 | 把模型目录整体拷贝,不要单独复制文件 |
| Web 加载模型失败 | SDK 路径或 model3.json 路径错误,跨域限制 | 打开浏览器控制台看报错信息 | 确认资源路径正确,本地测试时启动 HTTP 服务 |
| 模型导出后没有物理文件 | 物理模拟没有启用或未保存 | 检查物理面板,确认已添加摆动物体 | 重新导出,确认 physics3.json 生成 |
最常卡住新人的是第二个问题。建模时网格点一旦绑定错图层,参数轴拖动时会出现“整个眼睛飞出去了”之类的诡异现象。解决办法不是急着调参数,而是回到网格编辑面板,把每个部件的网格归位。
9. 最佳实践与合规建议
做这种一晚上速成项目,最怕的是做完就丢。几个习惯可以让你这次的经验复用起来。
第一,从第一笔起就建立图层命名规范。哪怕卤蛋只有十几个图层,也按head/eye_L/eye_R/mouth/hair_front的方式命名。以后做复杂角色时,这套命名能直接套用。
第二,每调完一个参数轴就另存快照。Cubism 工程文件不大,多存几个版本不占空间。回头发现某个轴改坏了,能快速回退,不用从头再来。
第三,把卤蛋工程保存成模板。它可以作为一个小型测试模型,以后验证新素材、测试物理参数、学习新版本 SDK 时,直接把这个最原始的卤蛋拷出来用,不用担心碰坏正式项目。
第四,批量制作时要注意目录管理。建议模型目录、贴图、物理文件、SDK 示例分开放置,避免多个项目混在一起。后续接网页或直播时,路径混乱会浪费大量排查时间。
第五,合规使用素材和工具。官网免费版适合学习和个人项目,如果要做商业分发或企业集成,务必确认 Cubism 和 SDK 的授权范围。别人分享的 Live2D 模型资源,可能包含角色形象版权,你要先确认有没有商用授权。不要觉得“只要我重新命名了图层就没事”,这不是技术问题,是基本的素材来源合规问题。
第六,搜索结果里的“live2d下载免费”“live2d cubism安装包”,只从官方网站获取,不要用网盘里的绿色版、汉化版。安全比省事重要。
10. 总结与下一步
这颗卤蛋最值得尝试的点,是把 Live2D 最容易劝退的九轴动态和物理模拟,用最小的成本完整走了一遍。如果你也想做一个 Live2D 角色,先从一颗圆脑袋开始,比一开始就做带头发带衣服的角色稳妥得多。最先要验证的一定是头部三轴旋转和视线跟随,这两个效果做通了,模型就已经“活”了一半。最容易踩的坑是图层命名不规范和网格绑定错对象,出了问题别慌,按上面的排查表逐项看。
下一步可以扩展的方向很多:把卤蛋换成真正有头发的角色,给头发加更复杂的物理摆动;做一套表情控制,让嘴巴和眼睛的联动更自然;接 VTube Studio 做直播虚拟形象;或者用 Cubism SDK 把它嵌到自己的博客和网页里。把第一个模型做完,后面的路就顺了。