Beta: Spriter Object Extension

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Hi conceptgame. I was just looking into Spriter Pro. I have my own workflow already using Toon Boom Harmony, so up until now I've not felt the need to look at other tools. But Watching the Spriter video on the clickstore piqued my interest, when it mentioned that there are ways it can augment an existing workflow, with things like left-right flipping for example.

    I'm reluctant to spend time learning new tools and workflows, but if Spriter can give me more power within my current workflow, it might be worth it. My current workflow involves making my animations externally (Using Toon Boom Harmony, which I already like using and which has lots of features: bones, nodes, vectors, IK, etc.) and importing them into Fusion as PNG sequences. I do very little in Fusion's animation editor itself, other than importing/copying-pasting things into the appropriate animation sequences and directions. In your opinion, could Spriter and your extension be of help to a workflow like that? Does the extension actually replace the native Fusion animation editor (would I be using the Spriter Pro editor?) Could I use your extension with a PNG-sequence-based Active Object to better control its pacing, scaling, etc.?

    Hi Volnaiskra,

    I cannot reply on behalf of concept game, but I can definitely give you some insights as to why the Spriter Extension has become a very important part of my workflow, beyond simply the cut-out animation:

    * within fusion, you can use the Spriter unlimited 'trigger events' to eliminate pieces of redundant code: Most of my animation transition is done via the trigger and variables within the Spriter files, which I can set while creating new animations. Same with playing sound, or any other particular event which can occur during a given animation (change of character status, creation of hitboxes, creating visual effects, calling specific pieces of code as a call back, etc).
    * the ability to have unlimited "action points" or even get at run times data about a specific piece of animation's position and angle (for example, position of the "head" sprite). This is extremely helpful when you want visual effects to be created during a specific animation.
    * the ability to have animation Strings, integers and floats that you can define in the animation file, and then retrieve within fusion code to have specific behaviors during run time.
    * the fact that you can in real time edit and reload the spriter file, tweak the animation and have that update taken into account without doing anything in Fusion directly

    All of the above (and many more things which one could probably do to accommodate one's specific workflow) are extremely powerful tools as opposed to the native "active" objects Fusion offers. However for what you describe, and especially if active objects are already cemented into how you manage animated characters and object, what I mentioned above would probably not be of any help, as I don't think Spriter as an animation software is really as powerful and ergonomic as some of its competitors.

    Also, I should point out that the extension still has a few major issues regarding performances and visual artifacts (which you can read about in the above comments). My biggest concerns are the loading times (which is extremely slow upon creation at run time compared to that of an Fusion active object) as well as the fact that animation does not seem to work properly outside of the camera view (which is a big issue for the aforementioned Even triggers, values if used to command some specific behaviors through the Fusion events).


    I do wish these would be fixed and optimized by someone in the community who masters c++. But even with the drawbacks I mentioned, I could not go back to using active objects anymore for main characters, enemies, etc.

    I hope this helps :)

    cheers

  • Thanks malibumanjp,

    I am slow to answer at the moment. I can only agree with what you said.
    I would add the followings:
    - smooth animation transitions by merging them (run, walk, idle for example)
    - multiple collision boxes following the animation without any heavy CF2.5 coding
    - changing sprites on the fly keeping the animation skeleton (haxe, sword, gun, bow for example)

    As you said, there are still bugs or drawbacks which prevent the extension to expressing its complete power. Some times ago and still now, I was and am gathering bugs and optimization inputs.
    I was stopping investing time in it because it already took me at least hundred of hours and I was not developing any game in the mean time. Since I am developing now a game where I want these kind of animation, I will certainly fix some of them. The file loading time should be improved with a json parser instead of scml (actually xml format) for example.
    The extension is also open source so there is always a possibility to ask an expert to fix an annoying bug or optimize something.
    [MENTION=15682]Volnaiskra[/MENTION]: as you said, the tool itself (Spriter Pro, not the extension), may also break your habits. It is for sure not an easy step. I can only say that I found Spriter Pro rather intuitive and I am not a professional animator, at least for the obvious and simplest features.

    Regarding Spriter 2, I have no idea if it would be compatible. I did not take a look. Maybe brashmonkey may answer this.

    Damien

  • Hi conceptgame !

    Happy to hear that the extension might get some improvements in the future.

    If you'd prefer, I can create "proper" feature requests / bug tickets within the GitHub project so it's easier to follow for you (or anyone else with C++ skills who enjoys bug crushing XD ) ?
    Let me know if/how I can help, I'd be happy to!

  • Thanks for your answers, guys. Since my workflow and systems are pretty deeply embedded in my game already, I was hoping I could get some small benefits out of using Spriter in a lightweight, peripheral way. But from what you guys say it seems that using Spriter would need to involve a bit more work and compromise than I was hoping for.

    The aesthetic side of my game is on hold for now though, while I work on getting all the structural and programming stuff built properly. So I'll keep Spriter in mind and check back before I eventually start animating again. Thanks again!

    Please login to see this link.
    My Fusion Tools: Please login to see this link. | Please login to see this link. | Please login to see this link.

  • RapidXml is supposedly 30-60x faster than tinyXml, so if parsing the xml file is what is slowing down load times it may be beneficial to try switching libraries. I'll play around with it and see if it improves speed a bit.

  • RapidXml is supposedly 30-60x faster than tinyXml, so if parsing the xml file is what is slowing down load times it may be beneficial to try switching libraries. I'll play around with it and see if it improves speed a bit.


    There is a tinyxml2 library now, with bunches of improvements.

    Darkwire Software Lead Programmer (C++ & C#)
    Please login to see this link. | Please login to see this link. | Please login to see this link. | Please login to see this link.

  • Hi Everyone,

    Any chance anyone had the time to look into the mentioned optimizations of the current Spriter Extension (1.3)?
    I'm really annoyed by the fact that once a Spriter object leaves the visible screen, some of its specific behavior stops being taken into account by the code (tags, triggers, variables, animation states, etc) which breaks a lot of stuff and forces to create workarounds which affect gameplay quite a lot...

    Thanks !

  • Hi Matheus290,

    I paused the development of this extension. I think I made a mistake by making it with a monolitic architecture, so that I can't develop it 30 minutes per week. I did not abandon it but I made it open source from the beginning to allow people to fix things without waiting for me.

    Damien

  • I only know C# not C++, but do you know which of the extension file I would have to alter to fix it so spriter objects can display and update when out of frame? I want to give it a shot and see if I can get it to work and eliminate the pop-in.

    I've also found the collision box "bound to object" action doesn't work if the spriter object is flipped.

  • I don't really understand how coding an extension for multiple platforms works; but:-

    -Would it be quite difficult to get the current iteration of this extension working on playstation? xbox? switch etc?

    I have several characters with 50+ animations; but I'm trying to figure out whether I'm going to be only releasing something to Steam, or if there's the possibility of other platforms down the road?

  • Can someone tell me how to play animation only once from single event? Command Start animation is playing in loop, I don't see option how to force animation to be played only once, without calling Stop animation in the next event

  • Can someone tell me how to play animation only once from single event? Command Start animation is playing in loop, I don't see option how to force animation to be played only once, without calling Stop animation in the next event

    if you do not want it looping when the animation starts. go to your spriter project animation and change the loop animation in there and it should make your animation not loop in clickteam

  • I have a few questions about the extension.
    1. the github link earlier in the thread is the open source the most recent version of the extension(the main post links are from what I can tell are all dead now)
    2. I got the extension a while back my guess when the links were still on and found I can not change the entity to anything but the first one in my Spriter project and wanted to know if I am doing something wrong or the version of the extension I have does not do support more than one entity

    3. I had a great bit of trouble learning how to use the extension. it took a long time going over the forms and your videos to differentiate how it worked. cause of how I learn. I have been using it for a good while now and would love to make tutorial videos to help others like me pick this up with less trouble and faster. felt weird not asking permission first
    4.I was wondering how the hierarchy of images in an object work every time I add I new sprite to my project and refresh things I have to rearrange my images in my active object and it would just makes my workflow faster knowing how I can set things up in Spriter or clickteam so I have less headache
    5. is there a way to have spriters smooth sampling mode be on in clickteam

    Edited once, last by agentn107 (May 21, 2023 at 8:39 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!