用语言控制 3D 模型动作的 AI 系统

一个基于大语言模型的开源项目,通过自然语言描述生成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 的流程大致抽象为以下几个步骤:

  1. 用户输入:用自然语言描述一个动作或姿势(如 “raise left arm, look left, smile” 等)。
  2. LLM 推理 / 生成:输入自然语言给微调后的语言模型,模型输出对应的 MPL 代码 / 描述
  3. 解析 / 转换 MPL:将 MPL 表示转换为 MMD 模型的骨骼动画命令 / 关节旋转 / 位置变换等。
  4. 渲染 / 播放:用 Babylon.js + 部分 MMD 引擎(如 babylon-mmd)把这个骨骼动作应用在角色模型上,实时可视化、播放。
  5. 可能的调整 / 编辑:用户可对 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