一个基于大语言模型的开源项目,通过自然语言描述生成MMD角色的姿势和动画。
使用了一种名为MPL(MMD Pose Language)的语义姿势描述语言,使得AI能够理解和生成符合解剖学的姿势。
只需输入简单的自然语言指令,例如“用大笑挥右手,邀请我吃晚餐”,系统便能实时生成相应的MMD姿势代码,并进行平滑的骨骼动画渲染。
一、项目概况
- 名称:PoPo — “Pose and animate MMD model with LLM”
- 功能定位:将自然语言 → LLM 生成的语义姿态语言 → 转换为 MMD 可用的骨骼动画或姿态控制
- 使用场景举例:你说 “wave right hand with big laugh, inviting me for dinner”,系统就能生成对应的骨骼动作,让模型做出这个姿势 / 动作
- 实时渲染:支持即时姿态创建 + 平滑骨骼动画
- 模型适配方向:针对 MMD 模型 / 动漫风格角色,考虑骨骼约束、物理、运动合理性等 ([GitHub][1])
二、关键技术与设计
下面是该项目的几个关键技术点与架构要素:
技术/模块 | 说明 |
---|---|
MPL(MMD Pose Language) | 是 PoPo 自定义的一种语义姿态描述语言,用来作为 LLM 的输出目标,而不是让 LLM 直接输出原始四元数、变换矩阵之类的低层数据。这样做有几个好处:更结构化、可读性更高、能让模型更好地学“动作语法”、输出更稳定、便于调试。 |
LLM 微调(Fine-tuning) | 将大语言模型(项目中提到是 fine-tuned GPT-4o-mini)针对从自然语言到 MPL 语言的映射进行训练。 |
前端 / 可视化部分 | 使用 Next.js + TypeScript 构建界面,利用 Babylon.js + babylon-mmd 进行 3D 渲染与骨骼动画展示。 |
训练数据 | 项目里有一个 dataset 目录,里面应该包含自然语言描述 + 对应 MPL 输出的对照数据。 |
骨骼 / 物理 / 约束处理 | 由于目标是 MMD 模型(通常是动漫风格,有特定骨骼结构与动作约束),所以在渲染 / 动画生成中需要考虑骨骼约束、防止不合理扭曲、运动连贯性等。项目 README 中提到 “anatomically correct – built-in constraints prevent impossible movements” |
三、工作流程(从输入到输出)
可以把 PoPo 的流程大致抽象为以下几个步骤:
- 用户输入:用自然语言描述一个动作或姿势(如 “raise left arm, look left, smile” 等)。
- LLM 推理 / 生成:输入自然语言给微调后的语言模型,模型输出对应的 MPL 代码 / 描述。
- 解析 / 转换 MPL:将 MPL 表示转换为 MMD 模型的骨骼动画命令 / 关节旋转 / 位置变换等。
- 渲染 / 播放:用 Babylon.js + 部分 MMD 引擎(如 babylon-mmd)把这个骨骼动作应用在角色模型上,实时可视化、播放。
- 可能的调整 / 编辑:用户可对 MPL 代码(或对应的骨骼命令)做微调 / 手动编辑,以修正或细化动作。
四、优点 & 挑战 / 局限
优点
- 自然语言控制:用户不需要手动操控各个关节参数,只要“说”动作,就能得到结果,提高创作效率。
- 结构化姿态表达(MPL):比起让模型输出难以解释的数值参数,用语义语言表达动作更有可读性、更容易调试。
- 针对 MMD 优化:项目特别针对 MMD 模型设计,注重骨骼约束和合理性处理。
- 实时性 / 可视化:前端渲染能即时看到结果,对于交互体验友好。
挑战 / 局限
- 准确性 / 细节控制:自然语言描述本身含糊,一条“挥手”可能有很多变体,LLM 可能输出与用户预期不同的动作。
- 姿态极端 / 复杂动作:对于复杂的舞蹈、连贯动画序列(多帧连续运动)可能比较难支持。
- 通用性:目前特别针对 MMD 模型设计,对于其他类型的 3D 模型、骨骼系统可能兼容性不佳。
- 物理 / 碰撞 / 布料 / 动态模拟:MMD 模型中还可能涉及发丝、衣物、物理碰撞,这类模拟超出姿态控制层面,需要额外机制支持。
- 训练数据依赖:效果高低受限于所使用的 NLP ↔ MPL 的训练数据质量与多样性。
- 推理成本 / 延迟:LLM 模型(尤其如果模型较大)推理可能会有延迟,实时性可能受到限制。
五、和类似 / 相近项目的对比 & 应用前景
PoPo 属于 用语言驱动 3D / 动画 / 虚拟人 的那类交叉应用,类似方向在业界/学术界也有不少探讨,比如将自然语言转换为动作轨迹、控制角色演出、角色自动化表演等。
它和常规动画制作流程相比,有潜力在概念阶段、快速原型制作、虚拟主播 / 虚拟人演示等场景中节省大量人工调节动作的成本。
如果项目继续发展,未来可能扩展为支持连贯动作序列(motion clips)、多模态输入(自然语言 + 手势 / 草图 /音频节奏)等。
Github:https://github.com/AmyangXYZ/PoPo
油管:https://youtu.be/yfMWD9wqdyY