I would like to report the broken status of sprite merging.
Every time i try to merge some sprites together in order to improve performance by reducing drawing calls, i get a different result. Most of the times it simply refuses to work and either adds artifacts of disappears sprites. Sometimes both!
And if someone ever decides to fix this i would like to suggest a few improvements that are super irritating.
Right now if you have all the sprites that you want to merge inside a layer, the merged sprite magically losses the layers reference and you have to put it back in manually. Also if all sprites have the same sort order then the new merged sprite should retain the sort order and not reset it back to zero.
I found this bit of information from Michael Noland about the merging of sprites and the suggested workflow, as he is the one who implemented the feature.
“Sorting will be done as a whole unit. If you have some translucent foreground sprites and some translucent background sprites, you probably don’t want to group them together. With the sort button they’ll sort correctly relative to each other, but a translucent player in the mid-ground can’t pass in between the two of them, it’ll either draw in front of both or behind both. These kinds of sorting issues only apply to Translucent materials, Masked materials don’t have the same issues but they only work for binary (0 or 1) opacity.”
I am bringing this to your attention because I noticed in your video, you have Translucent Sorting Priority set for the selected sprites. This is more than likely the cause of the issue, but in order to confirm you will have to do some testing on non-translucent sprites and run a comparison.
Thank you Andrew,
What you saw in the video is one row of sprites (meaning that there are no other sprites behind them)in the same Y depth (zero) that are all translucent and in the same sort channel.
It shouldn’t disappear sprites or create artifacts. I am not mix and matching anything.
What Michael is basically saying is that if you decide to merge two translucent sprites that are in two different z sorting priority (for example the first one is 1 and the second one is 3) the system will put them in the same z (in our case zero. see my request) so our player that was in z=2 will not be able to pass between them. it will pass in front of them.
Nothing to do with the problems shown in the video.
Hopefully someone will resume paper2d development and fix this.
I see what he is saying now and do understand the situation better. Thanks for the clarification. I am still learning Paper2D on top of many other things at the moment
I am assuming I can place various sprites along different Z-axis and attempt to merge them in order to reproduce the issues you are reporting? If there are more steps I need to take just let me know. I will do what I can to help improve this feature.
merging sprites still broken in 2019. just select any 2 or more sprites, preferably a large selection of 3 sprites duplicated as 20 or so. hit merge. disaster. some disappear, some are frozen and can’t be transformed anymore, some rotate, some scale wrong… and of course, they lose their shader connections if multiple shaders were attached, only 1 shader is possible. the latter… not such a big deal, only disappointing. the former is a Major Unreal Bug that kills the performance of 2D games with more than just 100-200 sprites rendered on screen at any one time. and nobody seems to be working to fix paper 2d bugs…