问题现象:多个复制的模型导出一个fbx在cocos中执行骨骼动画只能显示一个
猜测问题产生的原因:

在计算骨骼动画纹理贴图时,根据骨骼的hash和动画的hash去寻找是否已经有缓存的动画贴图。骨骼的hash是根据姿态数据进行计算的。
也就是说,在一个动画中,如果有两个一摸一样的骨骼,虽然有两份,但是也只会生成一张骨骼动画贴图。那么这两个骨骼都根据这一个贴图去执行骨骼动画,就会渲染在一起。看起来就跟只有一个一样。
不知道问题是否是我描述的那样,麻烦官方可否看一下。
问题现象:多个复制的模型导出一个fbx在cocos中执行骨骼动画只能显示一个
猜测问题产生的原因:

不知道问题是否是我描述的那样,麻烦官方可否看一下。
请问一下这个是这样么?有没有啥解决方案,现在用cpu计算骨骼动画没问题了
逻辑上的确是这样,不太确定你的需求是否能在引擎层解决,先麻烦把模型发过来我确认一下吧
模型可能不太方便发,看起来就是一个模型做完骨骼动画,复制一份出成同一个动画。
我试试能不能自己搞一个简单的。。
这个3d建模用的不熟,最近有点忙没时间弄,按说应该很好复现。现在我这还有两个问题需要反馈。
1、从maya里导出的fbx,在导入cocos3d的时候,不勾选depthWrite,导致多mesh模型穿透。
2、在a骨骼动画执行结束后,crossFade到另一个骨骼动画上,模型会消失然后从小变大。不知道是不是前一个动画已经停止导致权重不起作用,而后一个动画权重又是从小到大的。
帖子里的所有问题我都想办法规避了,麻烦有时间的时候看下是什么问题吧。
一个模型做完骨骼动画,复制一份出成同一个动画。
这样的话效果完全一致应该没有问题的吧,我还是不太明白问题在哪
从maya里导出的fbx,在导入cocos3d的时候,不勾选depthWrite,导致多mesh模型穿透。
这个应该是在 maya 里材质就开了透明,对应到引擎里按透明物体导入肯定就不写深度了;
在a骨骼动画执行结束后,crossFade到另一个骨骼动画上,模型会消失然后从小变大。不知道是不是前一个动画已经停止导致权重不起作用,而后一个动画权重又是从小到大的。
这个需要 @shrinktofit 确认下
用的哪一个版本?
cocos3d 1.1.1 正式版
比如说我动画里有2只羊跑过去,动画的过程就是先做了一个跑过去动画,整体复制出来摆在不同的初始位置上,最后出成一个动画。
举例:羊A在(-10,0,0),羊B(-9,0,0),向x轴正向移动20个单位。
如果开启gpu骨骼动画。只会出现一只羊从(-10,0)移动到(10,0)。
猜测原因,羊B是复制出来的,骨骼hash与羊A完全一致,所以只有一个骨骼动画贴图,那么两只羊都渲染在一起了。
maya的那个了解了,非常感谢
这种不应该在上面再套个节点,然后摆不同位置?
这个事引擎不支持有点奇怪吧?当然这个我们并不是一定要求gpu,我们现在用cpu绘制也没事,我就是反馈一下这个问题。
而且我这一堆羊里还有苹果和南瓜,动画给我们了一个整体动画。我们不能要求他们出动画要把重复的物体单独拆成一个动画给我们吧?然后这个位置还要我们自己再去调?
我们可能会有很多种过场动画,会根据配置动态加载不同的,只播放一下就够了,更希望是把fbx导入,然后配置表里配上就直接能加载显示播放。
哦,你是指在maya里复制出多个相同物体的动画?我以为你说的是在编辑器里
嗯嗯。是的。看起来skeleton和mesh的hash都会一样。
有解决吗? 我也遇到同样的问题。