VMD 动作数据 — MMD 生态里最有价值的共享资产
什么是 VMD
VMD = Vocaloid Motion Data(Vocaloid 动作数据),是 MMD 生态里最通用的动作文件格式。一个 VMD 文件本质上就是一堆预录制好的关键帧数据——骨骼姿势、表情数值、相机位置、照明参数。
当你加载一个 VMD 到 MMD 里时,你是在把别人 K 好的帧直接填进你的时间轴。
VMD 文件里包含什么
| 数据类型 | 包含内容 | 说明 |
|---|---|---|
| 骨骼关键帧 | 每根骨骼每帧的旋转/平移数据 | 动作的主体——手臂怎么动、腿怎么踢 |
| 表情 Morph 关键帧 | 每帧的表情数值(0-100%) | 眨眼、张嘴、眉毛动 |
| 相机关键帧 | 相机位置/朝向/FOV/焦点 | VMD 可以自带相机! |
| 照明关键帧 | 光源方向/颜色/强度 | 可选 |
| IK/FK 设置 | 哪些骨骼用了 IK | 影响动作播放 |
| 帧循环标志 | 是否标记为可循环 | 部分 VMD 会标记 |
一个舞蹈 VMD 的典型数据量
- 时长 30 秒(900 帧)
- 骨骼关键帧:每帧 ~30 根骨骼 × 平均 3 次关键帧 ≈ 8100 个关键帧
- 表情关键帧:~200 个
- 相机关键帧(如果有):~100 个
VMD vs VPD
| VMD | VPD | |
|---|---|---|
| 全称 | Vocaloid Motion Data | Vocaloid Pose Data |
| 内容 | 完整时间轴的多帧数据 | 单帧姿势快照 |
| 用途 | 完整舞蹈/动作 | 起始姿势/特定 pose |
| 时间轴 | 覆盖多帧 | 只有一个帧号 |
| 文件大小 | 大(KB-MB 级) | 小(KB 级) |
VPD 是"姿势"——比如"让角色摆出这个起始姿势"或"在第 100 帧插入这个 pose"。VMD 是"动作"——"让角色从帧 0 舞到帧 900"。
动作数据从哪里来
社区配布(最主流)
Niconico、B 站、GitHub、模型配布站——到处都有免费下载的 VMD。热门舞蹈(极乐净土、千本樱、Lemon 等)都有成百上千的 VMD 配布。
下载后注意:
- 读配布说明(通常在 README.txt)
- 有些 VMD 需要特定版本的 MMD
- 有些 VMD 需要搭配特定模型(骨骼命名完全匹配才能正常播放)
自制(进阶)
用 MMD 自带的骨骼操作面板手动 K 帧——从零开始摆姿势、注册、播放、调整。
动捕工具(高级)
- Microsoft Kinect:MMD 原支持 Kinect 1.0/2.0 做全身动作捕捉
- Perception Neuron:光学动捕套
- 手机 App:MediaPipe 等手机端骨架识别
- MMotion / VMDMotion:第三方动作编辑工具,支持导出 VMD
AI 生成(前沿)
2023 年以来,AI 动捕工具快速发展——视频输入 + MediaPipe/OpenPose → 自动生成 VMD。代表工具有:
- DensePose + Blender 插件
- MMDPose 等社区项目
- 商业工具如 DeepMotion
这些工具大大降低了 K 帧门槛,但生成的 VMD 通常需要手工修正。
动作数据的版权
和模型一样,VMD 也有配布规则:
- 社区配布的 VMD 通常禁止商用
- 禁止二次配布(你改过的 VMD 要经原作者同意才能分享)
- 署名要求(公开作品标注动作作者)
自己 K 的动作就是你的,随便用。Kinect/AI 生成的动作如果基于公共视频,注意不要侵犯原视频作者的权利。
VMD 与模型的兼容性
最容易踩坑的地方:不是所有 VMD 都能在所有模型上正常播放。
兼容性关键:骨骼命名
VMD 里记录的骨骼名称(如「腕左」「足右」)必须和你加载的模型完全一致。如果 VMD 找了半天找不到对应的骨骼,会:
- 跳过找不到的骨骼的关键帧
- 模型那部分不动
- 严重时导致整体错位
解决方法
| 情况 | 处理 |
|---|---|
| VMD 专为某模型制作 | 尽量用同模型播放 |
| 模型骨骼名轻微差异 | 用「动作改名工具」批量重命名 VMD 里的骨骼名 |
| 差异很大 | 用 PMX Editor 批量重命名模型骨骼 |
| T-Pose vs A-Pose 冲突 | 动作可能整体错位,微调或换 VMD |
动作配布时常见的模型依赖标注
【对応モデル】
・初音未来 Append
・镜音铃 V4X
(适配这两个模型,其他模型骨名不同可能错位)
配布者通常会标注哪些模型能完美播放这个 VMD。
VMD 的导入方式
文件菜单
「文件 → 载入动作数据(Load Motion Data)」→ 选择 VMD → 选中目标模型 → 导入到该模型的时间轴。
拖放
直接把 .vmd 文件拖到视口上 → 弹出选择模型的对话框 → 选中 → 导入。
⚠️ VMD 不是直接堆上去的——它会覆盖目标模型在 VMD 时间范围内的所有现有关键帧。如果之前 K 了一些帧,先备份或者选「追加模式」导入(部分版本支持)。
VMD 的导出
你自己 K 的动作也可以导出成 VMD 分享给别人:
「文件 → 保存动作数据」→ 输入文件名 → 导出。
导出时可以选择:
- 导出哪些骨骼
- 帧范围(全部或部分)
- 是否包含相机/照明数据
- 帧循环标记
质量好 vs 质量差的 VMD
| 高质量 VMD | 低质量 VMD |
|---|---|
| 关键帧密度合理(不稀不密) | 关键帧太少(机械感强)或太多(文件巨大) |
| 补间曲线自然 | 补间直线(匀速运动)导致动作生硬 |
| 起始/结束姿势连贯 | 突然开始/结束,不自然 |
| 适配 T-Pose 模型 | 适配特定姿势,其他模型错位 |
| 物理考虑周全(头发不会穿模) | 高速动作导致物理崩坏 |
| 附带相机和照明数据 | 只有骨骼动作 |