• 52阅读
  • 0回复

复杂模型导入时的注意事项,整理中 [复制链接]

上一主题 下一主题
离线店小二
 

只看楼主 倒序阅读 楼主  发表于: 06-19
排序不分先后,想到哪儿写到哪儿
一、碰撞体积
楼主发现若干次上传dae模型碰撞体积解析过程中出现错误提示导致了上传失败的情况,如果是多个物体一起上传也难以排查问题模型,所以想到了来总结这个帖子,提供一下测试后目前的解决方案,如果后续出现问题欢迎指正。


在游戏引擎或者there中为了减少物理引擎的计算量,通常不会直接使用模型本身复杂的形状作为碰撞的检测依据,会自动解析出或者人为指定一个更为简化的模型来代表它的碰撞体积。最简单的物理碰撞检测一个例子,判断一个模型摆在化身面前,化身走到什么地方会“撞上去无法穿过”。只要不出现严重穿模,这个模型的碰撞体积就算合格了。
找到偏好设置,高级,打开开发者菜单,然后如下图所示,渲染物理外形即可看到在There中的物体的碰撞体积。


例如下图是三个不同的基本物体,由左到右分别是球体、半球体、扭曲渐弱后的立方体


这是它们的碰撞体积,可以看到球体边缘明显不如模型本身平滑,面数明显减少,立方体甚至简化到模型布线都发生了变化。但是即便如此,大多数场景下它们的碰撞体积都是可以使用的。



说完系统自带的基本模型后,来关注一下上传的模型。默认情况下如果只是更改了上传模型的细节层次后直接上传,模型的碰撞体积会自动解析。但是前面提到,这一步很容易报错,所以我们需要想办法人为指定一下碰撞体积。
有两个方案,第一个方法,选择好合适的细节层次,比如下图高中低都保留原模型,最低的使用简化后的模型。然后物理特性里选择最低。这个方法比较推荐,因为这里的模型细节简化通常不会出错,适用于绝大多数情况,而且不会有额外的建模工作量。






第二个方法,重新建立一个简化的模型从文件加载,这个方法一般适用于一些特殊情况,比如要做一个可穿过去的巨型树洞,如果系统解析出来的碰撞不对就需要使用自己的模型了。用来表示碰撞体积的模型应该尽量和原来的模型相匹配,当然最极端的情况使用一个立方体作为碰撞体积也可以正常上传,但是有识别不出来的可能。下图是识别比较好的情况

这是识别错误的情况



这是上传之后的效果,左右两个模型一样,左边是按照方法二上传的,右边是按照方法一上传





可以看出来右边的模型碰撞更好,但还不够完美,仍然有不少空间是没有模型却会“挡住人”的。如果要进一步修正就应该重新制作一个简化模型了,不做详述。至此,碰撞体积的问题至少解决了,也不会担心因此导致模型上传失败。
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个