MMD 头发与布料物理参数 — 让角色的"动态"更生动
为什么头发和布料的物理最重要
在 MMD 里,物理效果 80% 体现在头发和布料上。
- 角色身体:运动学刚体,跟随骨骼,不需要物理
- 头发:动力学刚体,数量多(几十根),效果直观
- 裙摆/外套:动力学刚体,数量中等,面积大,穿模重灾区
- 耳坠/手链:小型动力学刚体,锦上添花
这篇重点讲头发和布料这两个主角。
头发物理的结构
一根头发通常由1-5 根小动力学刚体串联组成:
头皮固定点(运动学刚体)
↓ 约束(Fixed)
头发根(动力学刚体)
↓ 约束(Spring/Hinge)
头发中段(动力学刚体)
↓ 约束(Spring/Hinge)
发梢(动力学刚体)
每根动力学刚体之间用铰链或弹簧约束连接,这样头发就能"一节一节"地摆动。
头发物理不好的典型表现
| 问题 | 原因 |
|---|---|
| 头发像钢针 | 弹簧系数太大(硬),或约束类型是 Fixed |
| 头发像果冻 | 弹簧系数太小(软),阻尼不够 |
| 发梢不会摆 | 发梢刚体被头刚体阻挡(碰撞组问题) |
| 头发整体往下掉 | 重力影响过大,或空气阻力为 0 |
| 静止时头发还在抖 | 阻尼不够 |
头发参数调优
刚体层面(PMX Editor)
| 参数 | 柔软的长发 | 短而硬的头发 |
|---|---|---|
| 形状 | 胶囊体(最适合头发丝) | 胶囊体或球体 |
| 半径 | 头发丝粗细(0.02-0.05) | 同左 |
| 摩擦系数 | 0.5-0.8(减少丝之间滑动) | 0.3-0.5 |
| 弹性系数 | 0.0(不要反弹) | 0.0 |
| 质量 | 0.05-0.1(轻) | 0.1-0.2(稍重) |
约束层面(PMX Editor)
| 参数 | 柔软长发 | 短发/扎发 |
|---|---|---|
| 约束类型 | Spring(弹簧,有弹性) | Hinge(铰链,硬一些) |
| 弹簧系数(Spring) | 0.05-0.2 | 0.3-0.8 |
| 阻尼(Damper) | 0.02-0.08 | 0.1-0.2 |
| 允许角度范围 | 大(45-90°) | 小(15-30°) |
简单口诀:弹簧系数越小越软,阻尼越大停得越快。
布料物理的结构
一片裙摆通常由若干片平面网格组成,每片网格对应一组动力学刚体:
腰带固定点(运动学刚体,跟随腰部骨骼)
↓ 约束
上缘刚体(动力学)
↓ 约束
中缘刚体(动力学)
↓ 约束
下缘/摆尖刚体(动力学)
布料刚体通常是长方体(Box),水平方向有一定宽度。
布料物理不好的典型表现
| 问题 | 原因 |
|---|---|
| 裙子像纸板 | 弹簧系数太大,或布料网格太少 |
| 裙子飘动太夸张 | 弹簧系数太小 + 空气阻力低 |
| 裙摆卡腿 | 腿部刚体碰撞体积太大 |
| 裙子抖动 | 阻尼不够 |
| 裙子"粘"在身体上 | 重力影响不够或碰撞组设置问题 |
布料参数调优
刚体层面
| 参数 | 飘逸的长裙 | 挺括的短裙 |
|---|---|---|
| 形状 | 长方体(Box) | 长方体 |
| 摩擦系数 | 0.3-0.5 | 0.5-0.8 |
| 弹性系数 | 0.0(布料不反弹) | 0.0 |
| 质量 | 0.08-0.15 | 0.15-0.3 |
约束层面
| 参数 | 飘逸长裙 | 挺括短裙 |
|---|---|---|
| 约束类型 | Spring | Hinge 或 Spring(较大系数) |
| 弹簧系数 | 0.03-0.1 | 0.2-0.5 |
| 阻尼 | 0.01-0.05 | 0.1-0.15 |
MMD 全局参数对头发布料的影响
物理步进频率(Physics Step)
默认 3。调整为 5 或 6 能:
- 让头发布料摆动更精确
- 减少高速运动时的穿模
- 代价:物理计算更慢
空气阻力(Air Resistance)
MMD 全局设置里的空气阻力值(默认 0.002):
- 调大 → 头发布料被"风"挡一下,不会甩太远
- 调小 → 头发布料飘得更自由
重力(Gravity)
默认 9.8(地球标准):
- 调大 → 头发布料贴下来
- 调小 → 头发布料飘起来(适合梦幻/水下效果)
特殊效果
双马尾的摆动
马尾的物理关键在于从根到梢的约束逐渐变软:
- 根:弹簧系数 0.3(硬)
- 中:0.15(中等)
- 梢:0.05(软)
这样马尾会有"根部跟着头,尾部因为惯性继续摆"的自然效果。
头发被风吹
MMD 没有内置风力系统。实现方式:
- 手动 K 帧头发骨骼往一个方向倾斜 + Register
- 物理会"继承"这个初始方向,加上惯性自然摆动
- 物理烘焙后固化
多层裙摆
多层(内层+外层)裙摆物理:
- 内层布料刚体和腿部刚体在同一碰撞组(防穿模)
- 外层布料刚体和内层在不同碰撞组(让两层能互相穿过 → 波浪感)
快速诊断:物理太"僵"还是太"散"
太僵(像钢)
- 刚体质量太大 → 减小质量
- 约束弹簧系数太大 → 减小
- 角度限制太紧 → 放宽
太散(像果冻,晃不停)
- 刚体质量太小 → 增大
- 阻尼不够 → 增大
- 碰撞组没设好 → 重新分组
社区调优经验
好模型的物理调优通常需要几小时甚至几天——社区配布者已经帮你做好了。优先用配布说明里物理"调整済み"的模型,省下调物理的时间去 K 表情和相机。
如果实在遇到物理很烂的模型又必须用它:
- 先用 PMX Editor 做基础修复(缩小碰撞组、调整碰撞体积)
- 如果还不行,考虑物理烘焙 + 后期合成(把物理结果固化)
- 终极方案:手动 K 头发/裙摆骨骼的关键帧(虽然繁琐但最可控)