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

From the Asset Store
Rotate & Animation for 16 Direction & Mouse Direction
  • Sethmaster, so does the method you describe result in a different SCML file/Spriter object for each enemy type in C2?

    Or do I end up with one SCML file and somehow point to a different atlas spritesheet in C2 to change the enemy type?

    Would appreciate some guidance on how to implement if it's the latter.

    The first. It's pretty easy to do once you have a good idea on how to do it and pretty easy to maintain and update. Remember to use families and C2 folders for incredible easy time to organize your objects.

    Have read through most of this thread but don't see a simple solution to the very basic problem raised by Colludium and How do we get the "on initialised" SCML event to fire when changing layouts? It works fine when starting the first layout but doesn't fire when switching layouts.

    I have tried using wait, on loader layout complete, timers, global variables, to properly set character maps when changing layouts, but nothing seems to work. Can anyone shed some light on the best way of achieving this.

    Use an event sheet and layout to hold the scml objects you intended to use and write functions to launch them. On initialised SCML event should be stored there too. Include the event sheet on every event sheet you intend to use the spriters on. Just use on start on layout condition to create the scml objects which will launch the corresponding events. To be honest, I used a lot of different event sheets and layouts to store different spriter objects for organization and ease of updating reasons.

    Also, you can take some time to read both the Spriter and Construct 2 manuals for tips and tricks to improve your workflow.

  • Hi guys,

    I've got a question for Spriter experts (maybe lucid ?).

    Because of network issues (too many requests) I need to reduce the number of assets in some of my games. The problem with spriter is that it's using many small assets (one character is often more than 20 images). Is there a way to make a sprite sheet with the spriter elements rather than 1 element = 1 C2 object? Maybe 1 entity = 1 sprite sheet or something like that?

    Thanks a lot !

  • Rable - you're looking for this:

  • Does spriter characters have any ragdoll mode?

    Can you edit bones within a game? Could you for example create a rock climbing game where you move the limbs of a spriter character individually in game?

  • mudmask Wow! I wasn't really optimistic about it being possible, but I got it to work really easily! Thanks a lot! And good job BrashMonkey!

  • HI guys,

    I have a long Spriter object which starts outside of the C2 layout and stretches down.

    The problem is that if I place the Spriter object outside of the C2 layout, it doesn't appear.

    If I place it inside the layout, it appears no problem, but doesn't solve my issue.

    Is there any way to work around this?

    Thank you for your help!

    PS. I managed to get this working, by changing the "Animation Export Box Size" - I don't however understand why this makes a difference, as I'm not exporting a sequential animation.

    If anybody could shed some light on this, that would be awesome

  • lucid, I'm a little confused about the Hybrid method you describe. If I understood the steps correctly it will result in two separate (and differently named) SCML objects in C2? One using the spritesheet for direct draw and one containing the individual objects for collision purposes. If yes, I assume we then need to associate the two separate SCML objects to our player objects in C2 to get everything working as you describe?

    EDIT:

    From page 157, appreciate it if someone who has successfully got the hybrid method working help clarify the instructions lucid provided:

    "First, save your project normally, and then save a spritesheeted project. Import your non-spritesheeted project the old way."

    Does this mean import the non-spritesheeted SCML into C2 by dragging and dropping the file?

    "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."

    So convert the SCML/Spriter project to spritesheet format and then delete everything but the collision boxes? Not following this. If we delete everything except the collision sprites, when do we import the spritesheeted version into C2?

  • Hello everyone. I apologize for the extremely late reply. It's been an unexpectedly busy month as the delay for a variety of reasons, but things are relatively back to normal now.

    I will try to reply to everyone. Please let me know if I miss anyone. Also, if you sent me a project to take a look at or illustrate a bug, if you don't mind resending it, it will help me to get back to you about your issue more quickly.

    lucid Any news about that blended animation fix for non looping animations?

    I will be looking into this this weekend. Please resend your file if you can.

    EDIT: Nevermind. I had already responded to you back when you posted by PM.

    Hi lucid

    I've had the Spriter Pro license for a while, but only just started learning how to use it and it is a great tool.

    Any chance you guys will add a "Snap to grid" for bones and images in the near future (along with a customizable grid)? I could really use this feature in my workflow as I rely on precise setups etc.

    Please let me know if this is something you guys are considering <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

    Thank you in advance!

    Do you mean in the program itself? It's not impossible, but probably not for Spriter Pro. I'm mainly focusing on bug fixes for Spriter Pro, and I'm putting the bulk of my time into Spriter 2. Still very early on, and no ETA, but it will be a free upgrade for Spriter Pro owners.

    lucid Has this been reported yet, or is there a fix for it?: When using the new 'draw self' method--which I love, because of its performance-increasing power in avoiding thousands of images in C2--the origin points for the images are very off, I believe all reset to their original upper-left positions. Such as either not properly saved in the scon despite using the correct sprite sheet options in Spriter, or not properly read by the scml plugin side in C2. Is there a fix for this now, or a way I can manually work around the issue myself now?

    Sorry it took me so long to get back to you. If you can send (or resend) the zipped project folder (scml file and all images), I will look into this over the next few days, and I should hopefully have a fix.

    Hi,

    i tried using the Spine "beta" plugin, and noticed they only use one C2 game object, instead of multiple sprites.

    this might be crucial to performance, but i dont really know.

    just wanted to through this out there.

    also it looks like spine plugin supports bending sprites:

    https://cdn.rawgit.com/flyover/spine-c2-plugin

    /master/example/export/index.html

    this was made in C2 and Spine, it only uses 1 simple png. i was kinda mind blown, but i think the same can be achieved in spriter.

    Spine plugin missing tons of features that exists in Spriter.

    We have a performance mode in the plugin that only uses the scml object, and loading a single image into it: viewtopic.php?f=146&t=75748&p=1040600&hilit=direct+draw#p1040600

    The Spriter 2 plugin will support bending sprites, and much more, but as mentioned above Spriter 2 is still a ways off.

    lucid, a few questions. Apologies if these have been covered before:

    1. First time starting a layout, spriter objects intitialise fine and I can set character maps using the "on initialised" trigger, but when restarting layouts or moving to another layout the trigger doesn't fire. So not sure how to set character maps when moving to another layout.

    2. Does the new directdraw mode significantly reduce CPU usage? My CPU usage is very high. Each enemy has 40+ animations of 10 frames each and there are upto 10 enemies on screen at once. Enemy variations are managed via character maps so there is only one SCML object.

    3. If the individual sprites are no longer separate objects in directdraw mode how would I go about setting frame specific hit boxes? I would like to avoid having to set hit boxes outside of spriter (i.e. in C2) for specific animation frames.

    Thanks,

    I believe Sethmaster answered all of your questions, including a workaround for the on initialised thing, but I will look into on initialised to make it so you can just use that one event to get it to work.

    Does spriter characters have any ragdoll mode?

    Can you edit bones within a game? Could you for example create a rock climbing game where you move the limbs of a spriter character individually in game?

    You can't make like a physics based ragdoll, but you can do IK to bones in real time, or override any other parameter. The scml plugin has an Action under 'Override Animation' called 'Override Bones With IK', this does simple 2 bone IK. Override Object Animation let's you override any parameter like x,y,scale, etc. There are made to use every tick, rather than set it and forget it.

    HI guys,

    I have a long Spriter object which starts outside of the C2 layout and stretches down.

    The problem is that if I place the Spriter object outside of the C2 layout, it doesn't appear.

    If I place it inside the layout, it appears no problem, but doesn't solve my issue.

    Is there any way to work around this?

    Thank you for your help!

    PS. I managed to get this working, by changing the "Animation Export Box Size" - I don't however understand why this makes a difference, as I'm not exporting a sequential animation.

    If anybody could shed some light on this, that would be awesome <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

    At the bottom of the original post you can find additional information on using the direct draw mode: https://brashmonkey.com/forum/index.php ... -2/&page=1

    I'll paste the relevant information here:

    [quote:3t7doopd]

    To use bounding boxes precalculated in Spriter for correct clipping and effects, in Spriter, simply click on the box icon on the animation widget. Use settings roughly like what you see below:

    framerate: In order to calculate a bounding box that takes tweening into account, Spriter will go through the animation at a set framerate. 60 is recommended.

    padding: Extra pixels added to each side of the bounding box to ensure that frames in between the above calculated don't go slightly outside. 0 is probably fine for most cases, but 1 or 2 pixels isn't going to affect your performance and makes doubly sure.

    The best workflow would probably be to run the calculation once on all animations the first time you use it, and each time you add an animation. After that, only bother recalculating the bounding box if new animation changes massively affect the bounding box, or if you notice any clipping at runtime. And of course, run it once before shipping or demoing your game.

    lucid, I'm a little confused about the Hybrid method you describe. If I understood the steps correctly it will result in two separate (and differently named) SCML objects in C2? One using the spritesheet for direct draw and one containing the individual objects for collision purposes. If yes, I assume we then need to associate the two separate SCML objects to our player objects in C2 to get everything working as you describe?

    EDIT:

    From page 157, appreciate it if someone who has successfully got the hybrid method working help clarify the instructions lucid provided:

    "First, save your project normally, and then save a spritesheeted project. Import your non-spritesheeted project the old way."

    Does this mean import the non-spritesheeted SCML into C2 by dragging and dropping the file?

    "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."

    So convert the SCML/Spriter project to spritesheet format and then delete everything but the collision boxes? Not following this. If we delete everything except the collision sprites, when do we import the spritesheeted version into C2?

    Let me know if I've answered your question correctly, but you should:

    Import the old way by dragging and dropping into C2.

    Then double click the scml object and follow the steps as if importing it the new way. Then inside C2, you can delete all of the sprites it created (except the collision box sprites if you need those), and it should still run everything you didn't delete as well as direct draw.

  • Hello everyone. If you had an issue I hadn't replied to, please see the post immediately preceding this one.

    In other news, BrashMonkey is pleased to present the Radius Wing SHMUP Art Pack! Check out the trailer here:

    There is also a free Essentials version for Spriter Pro owners. If you own Spriter Pro on Steam or purchased it from our site you can download the Essentials version now. If you own Spriter Pro on the Scirra Store, it will be available as an 'alternate version' download for Spriter Pro once Scirra approves it for the Store, which will probably be on Monday.

    The full Radius Wing SHMUP Pack will also be available on the Scirra Store after it's approved, but in the mean time Spriter Pro and all Art Packs (including the SHMUP Pack) are on sale on Steam. so you may want to check out those deals if you haven't purchased Spriter yet.

    Here are some screenshots:

  • [quote:u08oq807]Let me know if I've answered your question correctly, but you should:

    Import the old way by dragging and dropping into C2.

    Then double click the scml object and follow the steps as if importing it the new way. Then inside C2, you can delete all of the sprites it created (except the collision box sprites if you need those), and it should still run everything you didn't delete as well as direct draw.

    OK, so using this method I only have one SCML object which contains the direct draw and the collision objects (this is then pinned to my player sprite in C2). This approach works but I am finding that performance is very poor, as in 10-20 FPS. When I have two separate SCML objects one for collision and one for directdraw pinned to my player sprite in C2 I get much better performance (around 40 FPS), but there is still significant room for improvement. With just direct draw alone I get a solid 60 FPS. My collision sprites are very simple (just one rectangle sprite).

    So either I'm doing something very wrong or the hybrid method has some issues.

  • stricky, would you mind sending me a capx to take a look at?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • team EternaL - I tried with your Spriteria boss contest entry file, which has extremely large images. It doesn't have any issues for me with pivot points. Are you sure you exported with all the required options?

  • Sethmaster

    stricky

    New plugin release:

    10/24/2016

    • Changed the behavior of blends from nonlooping animations to behave more intuitively.
    • Changed behavior of 'on initialized' condition to trigger even if the object fetches information already initialized in a previous layout. (to allow actions to be easily used in on initialization events)
    • Added "nickname" property. This feature is to make it possible to differentiate different scml object types (and individual instances if desired) in the layout editor in C2. The scml object now shows the filename in the square inside the layout. If you have something inside the nickname property it will display that instead.
  • Added "nickname" property. This feature is to make it possible to differentiate different scml object types (and individual instances if desired) in the layout editor in C2. The scml object now shows the filename in the square inside the layout. If you have something inside the nickname property it will display that instead.

    Thanks for adding this feature.

  • Introduction:

    This is going to be a large post but first I'd like to start off with saying hello to the Brashmonkey team and hello to everyone that is providing support towards fixing bugs and many more things.

    My Case:

    I'm currently working on a fairly large game and as a proud owner of Spriter Pro I can only say, thank you so much for making my and my artists life easier.

    I recently decided to try out the new spritesheet feature because I'm getting closer and closer to the sprite limit.

    So far my tests have all been successful and I was surprised that even char maps worked using the new method.

    My Problem:

    My game is using custom ragdolls (physics joints that connect the single sprites with each other making them "wobbly"), this feature was working fine with the old method and as you might already be able to guess, spritesheeting unfortunately breaks this feature of mine.

    The Request:

    I know this probably sounds easy from my perspective but I would like to request a custom ragdoll feature that you could perhaps turn on/off at will. I understand that this won't be as easy to implement as I think but I'm sure that if you'd implement this feature, you wouldn't only make me happy but also a lot of other Spriter + C2 users here.

    Some Last Words:

    Adding this feature in combination with spritesheeting would be a blessing and honestly it would calm down my fear of reaching the sprite limit for sure.

    If you guys need someone to test it out (if it's possible), I'm willing to invest my time into it and surely all the other helpful people here will do it as well.

    Thanks again for this amazing product and looking forward to hear from you guys.

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