-
Notifications
You must be signed in to change notification settings - Fork 145
Q&A
A:我觉得穿模主要分为两个问题,一个是collider没有包住skin,一个是collider运动过快导致没有检测到.
第一个问题我的解决方案是,可以在editor模式下Generate全身的Collider,然后慢慢调节,自动生成的collider是按照大致的比例计算的,并不意味着十分精确.所以手动调整下是个不错的选择.
第二个问题实际上是个迭代的问题(笑),通常来讲,迭代次数越高,物理系统就不会让你失望,这是迭代48次的场景(相当等于24m/s):

A:建议依次检查以下几个方面:
是否有有约束在碰撞体的范围内:常见于裙子这种有需要约束围一圈的情况,目前经常出现的情况有盆骨附近的collider过大导致挤压了skirt的collider,有的话请关闭ADBSetting的isLoop或者把collider移下面去或者调小一点.
Lazy或Freeze是否超过0.5,这两个值超过0.5会出现震颤的现象.
骨骼命名是否符合规范:如果存在间断的命名(比如一长串hair里面夹杂了一个叫做gameobject的父级),则会导致不可预见的错误.
尝试提高一点重力,降低一点风力/空气阻力影响:过于高的风力与空气阻力数值会导致一些奇怪的问题.
动作本身的问题:如果只有该动作出现震颤的情况,请尝试取消unity对于动画的压缩.
A:参考ColiderChoice规则与collider导入注意事项,如果你不小心把isopen关了或者父物体关了,则同样会不起作用(即便你在游戏当中会打开)
A:由于unity执行顺序有些奇怪,有时候它会导致在没有恢复形状之前就记录所有点的坐标,这导致在刷新之后出现不可预见的形变,你可以:1.避免做过于激烈的动作/2.restart 来解决该问题.
A:模型一作是DigitrevX大佬,我是二作,经过大佬同意,可以在非商业的模式下使用该模型,商业需求请上D站联系DigitrevX大佬,我这里只需要认可MIT协议.
如果仍然存在请发issue.
A: 说出来你们可能不大相信,在jobs+brust这件事上我成功做到了15倍的优化
测试用例可以在项目的场景中找到,这里采用hair模型迭代64次.相当等于16个同样的hair迭代4次.
这是在主线程强制完成所有计算的运行截图(约75帧/s,计算用时15ms)

具体怎么强制的呢?在DataPakage类有调试用的代码哦
这是在jobs完成所有计算的效率(约1000帧/s,计算耗时1ms,几乎忽略不计)

并且理论上CPU核心越多,带来的优化也就越高.