Spriter/C2 - (9-16-2019 - bug fix)

From the Asset Store
Rotate & Animation for 16 Direction & Mouse Direction
  • lucid

    So will this reference implementation handle the issues with 1000s of objects if using multiple instances of the same .scml file? Right now, I am using spriter files for destructible objects and we packed each .scml file with multiple entities and character maps so that we could randomize the obstacles easily. The problem is that with just 12 of these scml files in the layout at once, there are 800+ objects created and performance comes to a crawl for mobile devices. This makes it so that spriter becomes less and less useful for our project even though it makes the best animations and visuals we can produce. Are there any guidelines for how many entities to have per scml file or if there are better ways to handle this setup?

    The short version is that you should keep entities in separate files if you don't plan to use the Set Entity action in C2. The version of the plugin that will come after the reference implementation will address the issue of multiple objects being created. This was actually a design decision between Ashley and I to allow control over individual character parts. Now that the plugin has been out for a long time and we've gotten feedback, and seen how often the feature is used versus how often it causes performance issues, it seems these situations are the exception rather than the rule. I'll get into it more once I'm working on the new version of the plugin, but at worst it should be possible to choose all separate objects, or no separate objects (all drawn by the single plugin), but I think it might be possible (will have to think more on it, and discuss with Ashley) to specify in Spriter which objects you want separate and have the importer and plugin only generate separate objects for those and draw the rest itself. The difficult part of that last possibility is drawing several body parts, adding a separate c2 object, and then drawing several body parts on top of those. I have a possible solution, but I'd like to test how well it works.

    Are there any plans to add ways that Construct can "talk" to Spriter? For example, being able to rotate a characters head towards the cursor would be great.

    Yes, I plan to expand in this area quite a bit. I can't get into it now, but again the reference implementation will be the first step to implementing these new features.

    Spriter's Kickstarter Campaign! (7:55 min)

    https://m.youtube.com/watch?v=MPVR41j9LXE

    Freeform image deformation, Skinning and Procedual animation are already integrated?

    We're quite a bit behind schedule, but I say 2015 is a safe bet for both to be in Spriter and the C2 plugin. I'm giving myself quite a bit of leeway here so hopefully closer to mid 2015 than later.

    Just to add to JamesXXXYZ - We've been mucking around with the FID tools in Spriter Pro which seems like it works fine (still tagged as experimental obviously) but when it gets imported in to C2 it kicks up this error:

    Javascript error!
    TypeError: tweenedBones[i] is null
    http://localhost:50000/Spriter_plugin.js, line 1617 (col 6)[/code:1gyttvqm]
    
    Assuming this is just because the plugin doesn't support the experimental features.
    
    AHHHHH SO LOOKING FORWARD TO IT WORKING!
    orrect.  The tools will be much more powerful and easier to use once they're complete in Spriter. 

    I am a start up business and the only employee and manager and co executive of my business and would love to buy construct 2 and your spriter program soon. My company is called Falconsoft Industries, as I intend to make it a company that will one day be the next largest and richest company in game design, but construct 2 is not the only tool I will be working with, for professional reasons such as unity provides 3d design easy for programmers that I will hire one day. Also truefalcon is just my name on development software forums. <img src="{SMILIES_PATH}/icon_e_geek.gif" alt=":geek:" title="Geek">

    here is a community developerd Unity conversion tool that converts Spriter animations to native Unity animations called Spriter2Unity (https://github.com/bonus2113/Spriter2Unity). The reference implementation will also make it trivial to add Spriter support in any language or on any platform.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • lucid - could you give a brief example of how to use randomized character maps to create variety in spawned enemies or is there already a tutorial?

  • Apologies if this has been posted before regarding the c2 plugin...

    When my character's animation is not looping, if it has finished and the animation is set to blend to the start of a different animation then the blend feature does not work - the 2nd animation just starts without any blending. I can work around it by making extra looping animations but it would be great if the plugin allowed blending from a finished non-looping animation. Let me know if you need a demo and I'll put one together - thanks!

  • lucid - could you give a brief example of how to use randomized character maps to create variety in spawned enemies or is there already a tutorial?

    PSI, the new implementation will enable me to eventually make this process much more simple, but the way I would do it now is:

    • Create many character maps for different body parts. This could be clothing, separated down into character maps for alternate tops, and bottoms, and if you want to go even further, skin, eyes, additional layers of armour, etc. It's best to name them according to category. For example : top_redShirt, top_blackTunic, hand_bare, hand_glove, etc.
    • In C2, make arrays for the different parts and their names. For instance, an array called 'topArray' that contains the strings "top_redShirt" and "top_blackTunic", and another array called 'handArray', containing those names
    • On Object Creation (or whenever you want the randomness to occur) Append Character Map (topArray.at(floor(random(0,topArray.width))). This is just saying to choose a random index in the array, and apply the character map with that name.
    • Repeat this for as many categories as you created.

    Apologies if this has been posted before regarding the c2 plugin...

    When my character's animation is not looping, if it has finished and the animation is set to blend to the start of a different animation then the blend feature does not work - the 2nd animation just starts without any blending. I can work around it by making extra looping animations but it would be great if the plugin allowed blending from a finished non-looping animation. Let me know if you need a demo and I'll put one together - thanks!

    Colludium, this will be fixed with the updated implementation as well.

  • x 1000

  • lucid - thank you.

  • Did anyone else using both Spriter and Construct 2 have problems where the animations timing from Spriter don't match up with animation timing from Construct 2?

    I am using the Steam version btw.

  • Anyway, here's an update on my issue.

    It seems that Spriter animations also have an issue to match miliseconds timing with other Spriter animations in Construct 2.

    Despite the timing match each other inside Spriter, they break off when imported into Construct 2.

    Basically some of the time, their timing match each other.

    Most of the times, one of the animations will play a bit later, therefore break the timing, making the overall animation wonky.

    I will try again to see if I make any mistake inside Spriter itself to generate such errors.

  • After deleting and recreating new Spriter animations and then importing it to Construct 2, the mistiming problem seem to lessen.

    There are one of two frames in a hundredth of a second, where the timing between both is not correct, otherwise it's perfect now.

    Only test it four times but it seems okay now so I am satisfied for the moment.

  • Hi Seth,

    I'm guessing this is an obvious issue for you because you are combining two separate Spriter objects to create one character? (For example, upper body and legs for a run-n-gun game where the player can run while aiming in any direction)

    Have you provided your capx file to Lucid? ( ) This might be very useful for him to quickly assess the issue and come to a solution.

    Cheers,

    Mike at BrashMonkey

  • Hi Seth,

    I'm guessing this is an obvious issue for you because you are combining two separate Spriter objects to create one character? (For example, upper body and legs for a run-n-gun game where the player can run while aiming in any direction)

    Have you provided your capx file to Lucid? ( ) This might be very useful for him to quickly assess the issue and come to a solution.

    Cheers,

    Mike at BrashMonkey

    Yeah, I am combining two different Spriter objects (One for the characters animations and another for the weapons animations) so timing is pretty much important.

    I will try to send the capx, scml, scon and the project files to your email as soon I got things ready.

  • Sethmaster , I believe this is happening from the files loading at different speeds and starting animation playback as soon as the file is completely finished. For now the simplest way to take care of this is just to set one object's current time to the other's:

  • Sethmaster , I believe this is happening from the files loading at different speeds and starting animation playback as soon as the file is completely finished. For now the simplest way to take care of this is just to set one object's current time to the other's:

    Thanks, will do so.

  • Yep, fixed everything though I use a much more verbose version to account for a lot of stuff. Thanks.

  • lucid

    Updated to Spriter V3, saved and imported a file into my project but the spriter object is not showing once exported with NW.js. But when previewed with NW.js it runs fine, the spriter object shows. All other spriter objects that have been imported before using spriterV3 are fine in preview and after export. I should mention that the spriter object in question was tested with the platformer template and NW.js export and the spriter showed up fine.

    I wondering if you have any ideas what might cause this to happen? Any ideas would be great. Thanks in advance!

Jump to:
Active Users
There are 2 visitors browsing this topic (0 users and 2 guests)