Live2D与3D舞台
本页属于 GenPy Ren'Py 学习路线。教程内容面向 Ren'Py 8.x,并在页面末尾连接到 GenPy 的对应工作流。
学习目标
- 了解“Live2D与3D舞台”在 Ren'Py 项目中的用途。
- 能在一个最小项目里验证本章相关语法或工作流。
- 知道发布前需要检查的常见风险,并能在 GenPy 中继续维护。
核心语法
Live2DCubismModel3Dcamerarenpy.variant
可运行示例
text
image hiyori = Live2D("live2d/hiyori", base=1.0, loop=True)
label start:
show hiyori
"她在动!"
show hiyori idle # 播放名为 idle 的动作/表情教程正文
让立绘“动起来”的两条路径:Live2D Cubism(导入会动的 Live2D 模型)和 3D Stage (给 2D 图层加 Z 轴做景深/视差)。
8.5 新特性:Live2D 现已支持 Web 平台,可在 HTML5 构建中使用动画角色。
1. Live2D Cubism
前置条件
- 需要在 Cubism 编辑器导出的 Cubism 4+/Moc3 模型:包含
model3.json、*.moc3、 纹理、动作(motion3.json)、表情(exp3.json)等。 - 把整个模型文件夹放进
game/(例如game/live2d/hiyori/)。 - Live2D 有其官方授权条款,商用需遵守 Cubism 许可(个人/小团队多数可免费)。
定义与显示
text
image hiyori = Live2D("live2d/hiyori", base=1.0, loop=True)
label start:
show hiyori
"她在动!"
show hiyori idle # 播放名为 idle 的动作/表情Live2D(directory, ...) 常用参数:
| 参数 | 作用 |
|---|---|
base | 基准缩放 |
loop | 动作是否循环 |
default_fade | 动作淡入淡出时间 |
attribute_function | 自定义属性→动作映射 |
seamless | 无缝循环指定动作 |
动作与表情(attributes)
模型里的动作/表情名可当作图像属性使用:
text
show hiyori happy # 表情
show hiyori wave # 动作
e happy "你好!" # 配合 image= 用 say attributes嘴型同步(lip sync)
配合语音可做口型同步:
text
define h = Character("Hiyori", image="hiyori", voice_tag="hiyori")
# 在 Live2D(...) 中配置 voice/lipsync 相关参数,语音播放时自动驱动嘴部2. 3D 舞台(3D Stage)
3D Stage 给原本平面的图层加上 Z 轴深度,配合摄像机移动产生视差/景深效果, 常用于做有纵深感的镜头推拉。
开启与摄像机
text
# 给某层启用 3D,并放置摄像机
camera:
perspective True
show bg room:
zpos -500 # 背景放远(Z 越小越远,按配置)
show eileen happy:
zpos 0 # 角色在近处用 ATL 推拉镜头
text
camera:
perspective True
xpos 0
linear 3.0 xpos 200 # 摄像机横移 → 不同 zpos 的层产生视差要点:
- 用
camera语句(等同对camera层做变换)控制“镜头”。 - 给不同图层设不同
zpos,移动摄像机时近大远小、近快远慢,形成立体感。 perspective True启用透视投影。
常见坑
- 路径指向模型文件夹(含
model3.json),不是单个文件。 - 动作/表情名要与 Cubism 导出的名称一致。
- 移动端/Web 性能有限,控制模型复杂度与同屏数量。
- 确认遵守 Live2D Cubism 的授权条款。
官方参考
在 GenPy 里怎么做
- 在 GenPy 的代码模式中维护相关 .rpy 文件,先保持语法清晰,再逐步加入本章功能。
- 用故事图谱、变量、校验或演出编辑器把“能运行”提升到“可维护”。
- 导出前结合 Ren'Py Lint 和 GenPy 校验结果,确认脚本、素材和发布路径一致。
推荐继续阅读:
