Static sprite batcher - Efficient batching made simple!
This demo is included as a scene in version 1.01
Building and animating a segmented spider
This demo is included as a scene in version 1.01
Using 2d Toolkit with Unity physics
This demo is included as a scene in version 1.01
The following videos were created during development, demonstrating the main features. Some of these are slightly out of date. I will update them at the next opportunity.
Just a general update about the product and where we are intending on taking it in the future.
Coming very soon is a version 1.01, containing a few bug fixes and a few minor features. We intend on submitting that on Monday. We are also going to link to this thread, so if anyone has any issues or suggestions there will be a place to discuss them. We are using the library in house for our own games, so we will be fixing issues and improving workflow as time goes on. We are considering svn access for those who have purchased the product, let us know if this sounds useful.
We are looking into redoing the videos above with the final version. The background batching will need some demonstrating as well, as its hard to convey how easy it becomes to set it up in just a blurb of text.
Finally, for the future, we are planning a few free paid add-ons. Before anyone jumps to any conclusions, all features, small or big to the core system are going to be free.
We are, however, considering add-ons for specific game types, eg. for physics based games, we have a collision hull drawing add-on in house. This obviously isn’t anywhere near releasable right now. Another paid add-on we had in mind was creating tiled background shapes (eg. draw a polygon shape and it will fill it and add decorations on the edges automatically, again using the batching system). We don’t anticipate anyone needing absolutely all the add-ons, and its obviously unfair to increase the price of the product to justify increased engineering costs.
Let us know what you think, and as always, we are available on PM to sort out any issues.
Due to the nature of the product, it would be quite hard to provide a demo. However, if you would like to see anything in particular demonstrated, we will certainly be able to create another video for you.
We think our main advantage is the simplicity of the workflow, and how everything integrates quite seamlessly with the rest of Unity.
You also get full control over atlas creation, and you can set up dicing which can save a large amount of texture space and not to mention fill rate. Check out the video Sprite workflow, part2 for a demonstration of that. In addition to that, with the built in premultiplied shaders (which are enabled by default). you can have additive and normal blended sprites from within the same draw call.
The sprite batcher too is another tool which speeds up creation of backgrounds, and merges them down to one mesh after editing. You can also set up arbitrary pivot points on your sprite easily, which lets you easily create segmented characters as shown in the spider video.
The back end provides clean, efficient and easy to use data, so you can extend the system easily too.
ok, I’ll give it a try then.
I think it is interresting that you use it yourself “in production”.
Thanks for this nice unity extension and I’m puzzled about your premultiplied shader, could be very handy if it does what I suppose.
best regard,
yann.
When the premultiplied shader is enabled, the alpha channel of the source textures are premultiplied with the colour channels. This is done transparently in the atlas build stage so you don’t have to bother doing any of that processing by yourself. You can also set individual textures as additive, and the build stage will automatically create the appropriate data so basically you can draw normal transparency and additive transparency with the same draw call.
arghhhhhh!!! i hate you!!! now i have to buy this… new videos convinced me… i think it will save me some time in a long run…
a question before i mindlessly buy it this instance and later regret it…
“Bug fix: Creating sprite collection now works on MacOS.”…does everything work on Mac? i dont want to buy it and later find out that 50% of features only work on windows
Please answer ASAP
hi unikron, i have strange problems animating a sprite by scripts. when i use the play function on Update/FixedUpdate, character only stays in first frame of animation i want play. Maybe you need to make another example demo for demonstrate make animation behaviours by script (do the proper animation with the proper action) and explain better the API documentation (maybe putting some API examples and extending a bit, because not explains enough for manipulate the extension by scripts).
this toolkit is great, but with a little more of API documentation/examples and a animation behaviour example could be greater.
@DonBarksGheist: I still didn’t buy the library, but I think you should make sure that u’re not calling a PlayAnimation method (no matter what library u use) everytime update is called. (call once give it a few frames to do the animation only call again if you intend to change it)
but as i said, this is a generic answer, perhaps unikron can provide detailed info if the problem isn’t solved
very interesting
I don’t need any of them right now, but I can see that both of these ideas are very interesting indeed
(if you need more inspiration, see some of the tools that were made for farseer physics engine on codeplex, (e.g. convex decomposition hull, boolean operations, paths of objects …etc)
but I don’t need much of that for now either
what I’m interested in is to know if you have any plans for a future plugin that provide customized character animations like the one in the spider example but for human characters
(example: provide torso, head, arm, leg provide an editor for an animator to animate them save the animations to a file then read those animations to move my own character that uses the same (or customized) parts (head, torso …etc) )
now this, I’m very interested in for the future !!
(starting a project now with temp characters later I might have to implement it myself or find an alternative, but if it’ll be provided as a component, I’d be an early supporter)
@okimoki - as mentioned in the PM, as far as I am aware all features work on mac. We do test on Mac, but not as often as on Windows; hence the bug slipping through our testing process. It was reported by one of our customers and we fixed it ASAP. We intend on fully supporting mac so if you have any issues, we will certainly fix them for you.
If you call Play every frame from Update / FixedUpdate, the animation will be stuck on the first frame, as it will restart every frame. The idea is, you call Play on the AnimatedSprite when state changes, and forget about it. You can register a delegate to animationCompleteDelegate to be notified when the animation has completed playing, for example, if you wish to chain another animation or revert to idle. I will PM more details.
Regarding a demo, that will certainly be done. What seemed obvious to us, clearly isn’t. That’s what this thread is for, and we will certainly act on feedback. Expect a PM soon with a demo, the demo will be queued up for 1.02 release sometime in the future.
I had a thought about that, and I believe you can do that with the current system without any modifications.
You set up sprites exactly like the spider demo. You can then set up a prefab to contain this. At that point, you give it to your artist to set up animations using the built in Unity Animation editor.
You can then change individual sprites from code, setting spriteId to change the currently drawn sprite. You can use GetSpriteIdByName to find a sprite from the current collection; more on this later. The thing which makes this all work, is the fact that you can set up anchor points uniquely for each sprite; hence you can set up the sprites so everything links together at the right places.
If you have a large number of components, and need to pick across sprite collections, you can do pretty much the same thing, but use AnimatedSprites instead, setting each animation clip to “Single” so all it does is switch the sprite. The added bonus to this is, making any of the customizable parts animate “Just Works”.
You can also trigger mouth movements from the animation editor, or from code.
If you need further info, feel free to PM. I would get a demo done, but our artists are all preoccupied with getting our games done.
Absolutely. The primary target for this system was the mobile platforms, hence the emphasis on batching. It uses the Unity batching system in addition to the static sprite batcher shown above, so you can get very high batching throughput on iOS and Android.
@Skjalg, the text with the outline is created in BMFont (in this case). You can do the same with Hiero. This is probably the most efficient way of doing it in game, as there is no additional processing.
If you wish, you can create a second copy and overlay it, or modify the built in TextMesh class to do it automatically for you.