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

From the Asset Store
Rotate & Animation for 16 Direction & Mouse Direction
  • lucid I had a feeling it had something to do with the old version. thanks again guys! btw, any good tutorials on best practices for collision boxes? Sounds like it's actually pretty confusing for a few users.

  • Awesome update! Now there should be no more unavoidable tedium in using Spriter animations together with effects. Thank you lucid!

  • Awesome update! Now there should be no more unavoidable tedium in using Spriter animations together with effects. Thank you lucid!

    Is this in regards to the last update? If so, would you mind elaborating what you mean by that? Sorry for the bother, just interested since it's not clicking right now. Thanks~

    EDIT: lucid sent the e-mail

    Another general question, but it feels like there are a lot of ways to recolor animations. I'm trying to decide which to use and feel a bit overwhelmed thinking of all the options, any thoughts from anyone?

    1) Recolor the PNG files and have a separate spriter object. Probably the worst way.

    2) Recolor the PNG files, copy entity, then replace old frames with the recolored frame for each frame of each animation. Works, but very time-consuming and means that if a change to one animation is made, the other has to be updated, which is an issue. Benefit is that assuming we do not use entities for anything else, we can just switch the starting entity to use our recolored version.

    3) Spriter's Color Customization feature, though I found it confusing and according to the manual it is not supported yet by plug-ins and also requires indexed color mode (which makes enough sense).

    4) Recolor in-game using effects that change properties (AdjustHSL or ReplaceColor for instance? there's probably a better way but I haven't really looked into it)

    5) Other method I don't know or forgot?

    Looking for a method where the recolor is purely visual so it should reuse all the same other data, but without me having to update changes constantly, if possible. Let me know if you have any ideas.

    EDIT:

    I remember seeing a post or something for how to preload animations (or something like it) to help the game run faster, but I can't find it. Anyone know what I'm talking about or just have some tips? I'm really struggling on optimization here.

    My other question is if it's better to have a spriter object have a separate object for each animation (so in C2 an idle animation would be one sprite object and a run animation would be another one), or to have one object for all animations.

    Thanks for any help you can offer.

  • > Awesome update! Now there should be no more unavoidable tedium in using Spriter animations together with effects. Thank you lucid!

    >

    Is this in regards to the last update? If so, would you mind elaborating what you mean by that? Sorry for the bother, just interested since it's not clicking right now. Thanks~

    Oh, I was just referring to what mudmask initially brought up...

    > lucid - thanks again for your help. I will definitely be emailing you an SCML file soon. One quick question - is there any way to apply webgl effects to spriter objects? prior to using spriter, my enemies would flash red when getting damaged using the tint effect, which was applied to all enemy families. is there a similar way to do that using spriter?

    >

    Seconded! I can't seem to think of a handy way to do this either without referring to the automatically created families of sprites for each spriter object... which could easily mean some quite redundant events.

  • lucid - How do we spawn object by image point using this new plugin? Is there a new way? In the past plugin I made an image point on the separate sprites in order to spawn objects for example gun sprite on a spriter object to spawn bullets. Thanks.

  • any good tutorials on best practices for collision boxes? Sounds like it's actually pretty confusing for a few users.

    BBaller1337

    mudmask - I don't think we have an in depth tutorial on collision boxes in C2 itself aside from what's in the tutorial thread linked in my signature, but it's actually pretty simple. First, the recommended method for doing something like using your entire character with platform behavior is just to pin the scml object to a dummy sprite (which is how it's usually done for regular sprites in C2 as well). If you want separate animate-able collision boxes, this works using the old method of importing. Import your project, and Construct 2 will create invisible sprite objects with the names of your collision boxes. Simply check for collisions the way you would on any sprite in C2, and since everything is in a group, it should automatically pick the correct instance of your scml object for further actions.

    Unfortunately, there are no plans to add collision boxes directly into the new direct drawing mode, as it's a bit of a slippery slope, where updates to C2's collision detection methods will always necessitate changes to the plugin's as well, and I would expect it to get messy and potentially cause performance issues. For anyone curious, there is actually a hybrid way to import now, which is a bit tedious, but I will explain it in case anyone wants to use direct drawing mode with collision boxes, or even with collideable sprites. First, save your project normally, and then save a spritesheeted project. Import your non-spritesheeted project the old way. Follow the old to new style project conversion steps, but this time only delete everything except collision boxes, and other sprites you want to test for collisions. This should self draw the animation, but also animate the separate sprites and collision boxes you kept. Keep in mind, the zorder will not place sprites correctly inside the self-drawing scml object, so it's probably only useful for making invisible sprite objects for collision detection.

    EDIT: lucid sent the e-mail

    Thank you. I will look into it and respond as soon as I get a chance.

    Looking for a method where the recolor is purely visual so it should reuse all the same other data, but without me having to update changes constantly, if possible. Let me know if you have any ideas.

    The best method is to recolor the individual images, and then use character maps to share the animation data and to switch colors on the fly in C2. A tutorial for character maps in C2 is in the main tutorial page linked in my signature, and more information about character maps in Spriter can be found under Help in Spriter.

    I remember seeing a post or something for how to preload animations (or something like it) to help the game run faster, but I can't find it. Anyone know what I'm talking about or just have some tips? I'm really struggling on optimization here.

    You can try the new method of importing, which has faster performance:

    My other question is if it's better to have a spriter object have a separate object for each animation (so in C2 an idle animation would be one sprite object and a run animation would be another one), or to have one object for all animations.

    It's best to have one scml file (and one scml object in C2) for each character (or machine, or any individual animated object).

    lucid - How do we spawn object by image point using this new plugin? Is there a new way? In the past plugin I made an image point on the separate sprites in order to spawn objects for example gun sprite on a spriter object to spawn bullets. Thanks.

    , you would have to use Spriter's action point feature. which let's you place named points, and optionally attach them to bones and animate them. The main tradeoff for using the new self-drawing mode is that you don't get the advantages of having separate C2 objects.

  • "Oh, I was just referring to what mudmask initially brought up..."

    "Seconded! I can't seem to think of a handy way to do this either without referring to the automatically created families of sprites for each spriter object... which could easily mean some quite redundant events."

    Ahhh, I see. Thanks.

    Yeah, it's a shame but I did something like this/similar to above to get my enemies to flash white. In my case the overall game I'm working on isn't too intensive thankfully (small levels without a lot of enemies) but for bigger games I could see things getting a little out of hand.

    The new method seems a bit less tested and user-friendly so I'll probably pass for now on account of not being comfortable using it, but I'll keep it in mind if I think it might be useful for performance or other reasons later on. (It's nice to hear that WebGL effects work without having to make a workaround!)

    "since everything is in a group, it should automatically pick the correct instance of your scml object for further actions. "

    unfortunately, perhaps because my setup is a bit more complicated, this didn't work. I have a family for all my SCML objects, to pick the SCML object from the hurtbox I had to create an instance variable called "OwnerID" and set this when the object is created, then use a comparison to pick the right instance.

    Just explaining in case someone else needs to do something similar.

    Also, you mentioned pinning an object and all, but is that necessary for enemies too? That would add yet another object to the mix and it seems like a bit of overkill, since that's +1 object per enemy and some extra coding and events to make sure everything works (it has to move the SCML object every tick too). I guess since it's just basic logic and not adding a lot of memory usage or anything it won't have a huge impact but it still sounds inefficient and maybe redundant...

    EDIT: Mike, you said at one point renaming files in the Z-Order wasn't intended, but it even mentions it in the help manual:

    Just saying since it's a very useful feature and I'd be at a bit of a loss if it was removed...

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • - Ohh, I did not know about that. I'll give it a try.

  • Oh my god I am so excited about this. I think this is going to blow my performance through the roof... Can't wait to report back! Thanks Lucid!

  • lucid - thanks for that explanation, I think that the hybrid version of importing will be super helpful going forward. since my last post, while I was using a dummy object for my main character and my spriter enemies, I wasn't sure what route to go with for collision detection. for now I'll just use the dummy sprites for things that aren't too complex.

    thanks again man, this is a great update!

  • lucid - I just found out that sprite images present in the spriter project folder but not used are still placed inside the spritesheet. Is it possible to change this in the future so that objects that are only used are the ones that are placed in the spritesheet?

  • BBaller1337, renaming in the z-order list does work correctly for me, even when loading your project

    , it shouldn't place images in the spritesheet unless it's included in the project for some reason, like if you set their pivot point or used them in a character map.

    Thanks everyone, glad you're enjoying the new build.

  • lucid - Yes lucid I cleared the character map but I am not sure how to automatically remove pivot points? I think that's the one causing it. Sorry for the noob question.

  • - not a noob question at all. I actually meant to add a feature to remove items like this if you manually choose to (there are cases where you want to save the images' set pivots for later), but now that you mention it, I never got around to it. If you want to send me your project to with a list of files that shouldn't be there, I'll see if I can manually remove them for you. As long as the project isn't too huge it should be doable. If I'm not able to, I'll make sure to get the purge unused images feature into the next build of Spriter.

  • BBaller1337, renaming in the z-order list does work correctly for me, even when loading your project

    Did you try renaming the object, then double-clicking again to rename again? Sometimes it works, sometimes it doesn't. For me, I was able to replicate it by renaming a collision box by double-clicking, then double-clicking right after. It would work maybe 25% of the time and not 75%. Sometimes it works after a certain time only, e.g. I just tried renaming any of 3 objects about 20 times and it only worked after several seconds.

    I could show a GIF but I don't think there's any point since you can't even tell when I'm double-clicking or not without audio, and I don't want to upload a video to show something so basic...

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