事情是这样的(骚橙语气),涟宝的视频之所以还在鸽,就是因为这个过程中太多bug了,好像之前也没人发现,我就写一下让大家避坑,这回主要是遇到了两个问题:
MMD Bridge通过mmd原版导出vmd动作前,千万记得改掉所有中文骨骼名!!!
之前用mmm烘焙物理的时候都没这bug,我天真的以为mmd也不会,可惜我错了。这次因为昔涟的模型在mmm里的物理是炸掉的,头纱满天飞,原因不明,只能尝试用mmd烘焙。
最初烘焙完导入blender的时候头纱物理一直是丢失的,不清楚为什么,还以为是表情问题(官方昔涟模型的头纱是通过表情开启显示),找了半天bug发现是因为一堆物理骨骼是中文,这些骨骼用mmd打开会变成乱码,之前mmd里模型名称也是乱码我就没管,没想到烘焙到动作之后竟然也是按乱码后保存的。
由于mmd里显示是乱码,新电脑可能由于2k分辨率屏幕的原因pe显示又出bug,我尝试用pe改掉了一部分,但很容易漏掉细节,第一遍渲染完之后看结果才发现前面两根头发物理丢了。这时候我才注意到mmd tools(blender插件)可以一键改掉中文骨骼名。
所以如果要使用mmd bridge流程,以下才是正确操作:
mmd tools将pmx模型导入blender
模型调试->模型检测,每个选项会自动改掉所有涉及的中文名
导出修改后的pmx模型
修改后的模型导入带bridge的mmd,导入动作,调整穿模等,导出视频烘焙
烘焙完的动作导入blender,现在可以正常使用了!
如果要添加轨迹、流光等涉及几何节点的动画,请勿使用时间拉伸来做60fps!!!
我用几何节点给涟宝的手指添加了一个流光,并且通过时间拉伸到200来将30fps的动作转换为60fps,一开始看着确实不错,预览渲染也没有任何问题,直到我渲染到一半闪退了。

我尝试从断点继续渲染,但是几何节点没有正常工作,甚至需要暖机数百帧?!举个例子:
如果我设置渲染范围是0-7000,那么渲染可以正常进行,流光也可以正常显示。
如果我渲染到300帧的时候闪退了,那么我重新打开该工程,想要从300帧开始渲染(设置渲染范围是300-7000),那么流光无法正常显示,而是到600帧之后才正常显示
他究竟需要暖机几百帧?我发现了以下规律:
假如从300帧开始,那么几何节点到600帧才会生效;假如从700帧开始,那么几何节点到1400帧才会生效;假如从2000帧开始,那么几何节点到4000帧才会生效。
于是我得出以下结论:只有当蓝色播放条播放到你设置的起始帧时几何节点才会开始工作。而时间拉伸200的情况下,蓝色播放条的位置是当前帧的一半,也就是说,即使你设置的渲染开始帧位置已经是时间拉伸后的,几何节点也只会在实际帧位置是开始帧位置的两倍后才开始工作。即只有开始帧位置是0时才能正常启动。(这似乎只影响几何节点的生效时间,而不影响具体效果)

我的内存无法烘焙整个视频范围的几何节点(呵呵,48G都不够这玩意吃的),如果这个问题持续存在,就意味着我需要一口气把全部帧渲染完,而不能中途闪退,可是我要渲染1w5帧,需要至少三天时间,我对电脑有信心对blender也没有信心(望天),我并不想放弃4k60fps的渲染,那么该怎么解决这个问题呢?
答案是手动将所有关键帧的时间整体放大到 2 倍,直接把动画数据本身变慢。
脚本代码很简单,推荐在运行此脚本前备份工程,并使用该脚本修复切镜头时插值模式不是常值的问题 1分钟解决blender60帧导出MMD镜头出错的问题【自制插件分享】
import bpy
FACTOR = 2.0
PIVOT = 0.0
for action in bpy.data.actions:
for fcurve in action.fcurves:
for kp in fcurve.keyframe_points:
# 主点
kp.co.x = PIVOT + (kp.co.x - PIVOT) * FACTOR
# 左右手柄也要一起缩放,否则曲线形状会乱
kp.handle_left.x = PIVOT + (kp.handle_left.x - PIVOT) * FACTOR
kp.handle_right.x = PIVOT + (kp.handle_right.x - PIVOT) * FACTOR
fcurve.update()
好了,大概就这么多,春天都快结束了
但是涟宝一定会和大家见面的!
下一个莉奈娅![[原神_欸嘿]](https://i0.hdslb.com/bfs/emote/8fba438fcbe0550877b04efd768d857082307c5e.png)
#MMD #Blender