【个人笔记】MMD 布料解算流程

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:琴上蝉鸣

0、 用 mmd 编辑器准备好所需要的素体(靠表情不显示的部件在导出 abc 时仍然会导出,因此不需要的部件直接删除),同时记得留意素体的手是否是单独部件,不是的话将手分离为单独部件,方便 2 中删除。

用 mmd 编辑器准备好所需要的素体(靠表情不显示的部件在导出 abc 时仍然会导出,因此不需要的部件直接删除),同时记得留意素体的手是否是单独部件,不是的话将手分离为单独部件,方便 2 中删除。

先用 mmdbridge 在 0 帧位置导入 0 中素体模型,调好所需要的表情(也许有也许没有),在 60 帧(这样能保证模型一开始是 A 型或者 T 型 pose)的位置导入所需的镜头、动作(此处默认动作是修好了的)。

导出 abc 文件,方式为点击上栏最右边的那个 mmdbridge,弹窗的第二个框选择最短(即两个中的第一个)的然后点 OK 确定,之后直接选择导出视频,abc 文件和相应贴图也会跟着导出到 out 文件夹。

附:mmdbridge 里的分辨率建议调低,毕竟根据分辨率导出的 avi 视频根本在后续流程中无用,而且比起 mp4 等视频格式单位体积还很大占硬盘,导出完成后可以转手就把 avi 文件给删了。如果要谨慎些可以大概看一下,看看动作是不是满意,需不需要再修修。

导出前必须设置

然后使用 blender,帧率从 24 帧调到 30 帧,将 1 中导出的 abc 文件导入(一般建议是 0.1 比例导入,但影响不大,毕竟可以场景和衣服 10 倍比例嘛),删除相机灯光、“砍头剁手”,选择所需要的帧的范围,导出 abc。

建议此处的 abc 文件不要超过 4500 帧,这是由于 MD 保存动画上限大概在 4500 帧,动画的可靠导出上限大概不到 6000 帧,因此为了后续渲染方便,还是控制在 4500 帧以内,这样便于保存 MD 动画,可以随时重新导出有所偏差的动画,不需要从头解算。(都是血泪试出来的阈值和经验)

因此宁可分成两个不大于 4500 帧的文件都不要一个文件大于 4500 帧。

附:本人使用的是 MD9,如果 MD10 修复了相关 “特性” 请忽视上诉建议。

复制所需要的 MD 服装文件(zpac 文件),打开副本(直接在原文件上改不留备份太冒险),可以先适当调整一下服装参数,如粒子间距可以调为 10~20(大部分配布服装粒子间距远小于此,粒子间距太小解算时过于吃性能)。然后在版面内将服装全部都形态固化(参数试着调,越小越能变形),此外在材质中增加厚度、调整物理属性也能实现变形控制、抑制穿模。

脑测调整的差不多后保存服装文件(是 zpac 服装文件,不是 zprj 项目文件!)。

附:此时还没导入虚拟模特,只是根据经验进行一些预处理,可以忽视跳过。只是因为既然都复制了一个副本,不如干脆对这个副本进行一些基本可以认为是必需的操作再保存使用。

在保存后的服装文件中导入 2 中的 abc 文件。如果导入后不是 A 型或 T 型 pose,建议往后一帧,一般就是了,这也算 MD 的 “特性”。

之后便是穿衣服,可以用粘衬解决的不要用固定针(重点!!!),粘衬效果不好的可以将压力调为负数,效果都不好才建议使用或追加固定针,固定针位置打得不好严重影响观感,为了省事建议谨慎使用。

粘衬位置(服装来源:风流倜傥杨某人)

在 MD 中将服装穿好后开始解算动画,建议优先尝试普通品质(默认是完成品质,GPU 品质效果较差,普通品质效果一般)。如果效果不好可以使用自定义品质,个人喜欢的自定义品质为完成品质减少模拟次数便是。每当有布料破损迹象时就调成完成品质让其自我修复一番。

将 5 中布料解算的动画控制在 4500 帧以内,保存为 zprj 项目文件,然后导出 abc(OGAWA)(注意括号,是第二个 abc,不是第一个),然后记得要勾选 “统一的 uv 坐标”,不然到时候在 blender 里 uv 分布将不是在 MD 里的分布,而是重叠聚集成一团,将导致不能直接使用 MD 导出的服装贴图,因此为了不在 blender 里还要调整 uv,这个“统一的 uv 坐标” 一定要勾上!

导出单位选择 “米”,比例为 100%。

导出服装贴图时如果想要服装半透明,建议先导出一个完全不透明的服装贴图充当 blender 里的基础色,然后再导出一个半透明的服装贴图充当 blender 里的 Alpha 通道(半透明贴图直接当基础色实测效果不好,会偏黑)。

在 blender 中导入 1 中的素体 abc 以及 6 中的服装 abc,如果是因为动画 4500 帧有了多段,在修改器属性里设置帧偏移,设置完后再在物体属性里设置可见性动画。MD 导出的图片中 [Diffuse] 是基础色,[Metalness]是金属度,[Normal]是法线,[Roughness]是糙度。Alpha 通道使用单独导出的半透明 [Diffuse] 图。注意要在节点设置里将混合模式调为 Alpha_Hashed,不然 Alpha 通道不会生效。

之后就是关于 blender 的渲染内容,与布料解算无关,如果模型动作中脚经常 “入地”,建议可以使用水面或者毛毯之类的遮挡脚面。

评论