DragonBones / DragonBonesCSharp

DragonBones C# Runtime
MIT License
533 stars 198 forks source link

Unity文件更新后部分动画无法正常播放 #44

Closed TCXYao closed 6 years ago

TCXYao commented 6 years ago

错误信息如下

IndexOutOfRangeException: Array index is out of range. DragonBones.SlotColorTimelineState._OnArriveAtFrame () (at Assets/Scripts/DragonBones/animation/TimelineState.cs:682) DragonBones.TimelineState.Update (Single passedTime) (at Assets/Scripts/DragonBones/animation/BaseTimelineState.cs:220) DragonBones.SlotColorTimelineState.Update (Single passedTime) (at Assets/Scripts/DragonBones/animation/TimelineState.cs:755) DragonBones.AnimationState.AdvanceTime (Single passedTime, Single cacheFrameRate) (at Assets/Scripts/DragonBones/animation/AnimationState.cs:833) DragonBones.Animation.AdvanceTime (Single passedTime) (at Assets/Scripts/DragonBones/animation/Animation.cs:185) DragonBones.Armature.AdvanceTime (Single passedTime) (at Assets/Scripts/DragonBones/armature/Armature.cs:365) DragonBones.WorldClock.AdvanceTime (Single passedTime) (at Assets/Scripts/DragonBones/animation/WorldClock.cs:96) DragonBones.DragonBones.AdvanceTime (Single passedTime) (at Assets/Scripts/DragonBones/core/DragonBones.cs:284) DragonBones.ClockHandler.Update () (at Assets/Scripts/DragonBones/unity/UnityFactory.cs:16)

以前是没问题的,更新后部分动画无法正常播放 是在龙骨中制作动画时要注意什么吗

wuliao2230 commented 6 years ago

你好,最新版的Unity运行时支持的数据格式是4.0或以上的版本,如果低于此版本,可能会有问题,需要重新用DBPro重新导出适合的版本,如果本来用的就是4.0或以上的版本数据,那就需要进一步的排查才有可能知道原因

TCXYao commented 6 years ago

您好,我没记错的话这个文件最初是用5.0版本制作的,刚才我又重新导出了5.5版本进行尝试,依然有这个错误 简单的排查后发现,在时间轴上将所有“颜色”及“显示资源”的关键帧删除并重新添加后,该错误便不会出现,目前没有发现其它的解决办法

wuliao2230 commented 6 years ago

那方便把报错的动画发给我测试吗,我好排查

TCXYao commented 6 years ago

https://www.dropbox.com/s/1rdaqkf71whdvef/DB_TEST.zip?dl=0 已上传,请~

wuliao2230 commented 6 years ago

链接地址打不开呀

wuliao2230 commented 6 years ago

问题已经修复,提交到了dev分支,你可以更新试试,报错的原因是你的mesh数据占用过多,数组越界了,现在我们临时做了修改,可以解决这个问题

TCXYao commented 6 years ago

啊,不好意思,今天有事才看到,我试过了,已经可以用了,十分感谢。 因为还在测试和摸索中,所以动画做的比较粗糙,也没太在意面数的问题。 顺便问一下,一个龙骨动画官方预想的合理面数大概是多少呢。

wuliao2230 commented 6 years ago

嗯,这个要看动画的复杂程度,没办法给出具体数字,5.5版本我们为了运行效率以及内存优化方便的考虑,数据结构做了修改,但数据容纳的大小我们当时只有一个预估值,这个预估值是有多方面决定的,Mesh是占了最多的一项,以后可能会对这个再做一次优化