POSE通道层合成
控制器通道,每一个通道可以存放一个pose数据,给控制点的位移旋转缩放创建一个pose名的通道,然后用通道的混合权重控制pose混合,最终效果还是取决于每个pose是否精准合适。
就是此方式骨骼控制点加蒙皮和混合通道消耗过大,在3dsMax视口帧率极低、经测试 92 个控制组合成表情,单通道(塌陷无pose混合)时视口 发FPS:15,多通道POSE混合时只有FPS:5 ,最终做通道合成,将多个通道合成一个,有效提升至FPS:12 。
优化缩放控制
丢掉选中控制点的缩放控制,如果是点状骨骼不建议,网状骨骼可以。
# 使用Float_Script 合成
位置XYZ,旋转XYZ,缩放XYZ 各给一个Float_Script控制器,Float_Script每一个常量表示一pose的数据,计算出最终pose。由原来的 8 通道 变成 1 通道,性能提升不少。
# 位置position
通道层混合的平均权重 average weights 该选项可以避免多通道层的过渡混合。
- 默认混合方式 = (n1w1 + n2w2 + nn*wn )
如 通道1值 = 5.0 ,权重1.0(MAX里是100),通道2值 = 5.0,权重 1.0 ,最终混合值为 5.01.0 + 5.01.0 = 10.0 这就是过度混合,多通道侧pose混合可以尝试勾选改设置,但是勾上之后消耗较大,MAX视口FPS下降非常明显。 (虽然 BlendShape-Morpher这样的模型点位置混合是用上面的默认混合方式计算的)
- average weights混合方式(加权平均法 )= (n1w1 + n2w2 + nn*wn ) / (w1+w2+wn)
所以多个通道层权重都是1 或者 100 , 0,这样的特殊权重出现时混合效果是一样的极端情况,这里应该是 3dsMax 选用的算法BUG吧
不建议勾选该设置!
# 旋转Rotation
- 默认混合公式 : (n1w1 + n2w2 + nn*wn )
和位置默认混合方式一样 。
- pose to pose 混合公式:猜不出来,也没找资料说明计算公式
混合算法更就加复杂,但是经测试,混合效果诡异。
用Float_Script 还是一样,用 (n1w1 + n2w2 + nn*wn )
不建议勾选该设置!
# 通道数据重载
合并通道之后,原来的通道里的 pose 就全成了 Float_Script 控制器里的常量了(用pose名字加 【C_】前缀创建的常量)重载模板 pose 数据,就是重新设置Float_Script 控制器里的常量。
提示
【创建POSE】也是重载模板数据,只是针对合成前还有pose通道层的情况。
这样就可以分两个MAX文件处理表情,一个全通道层的MAX专门设置pose数据,保存模板,另外一个合成通道层的MAX文件用来k动画,当控制点的pose需要修改时,只需要重载数据即可完成更新。
# 将所有 Pose 转为 Morpher
不管在哪个阶段可以直接生成,注意是复制,原始蒙皮模型还在,