lucid's Forum Posts

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

  • I apologize for the extremely late reply. The plugin has an Action under 'Override Animation' called 'Override Bones With IK', this does simple 2 bone IK to the target you specify. It would be up to you to tell it where to IK to.

  • Hi Cipriux. There is actually a 'set second (blended) animation' action. You just mean you use the normal set animation action (not the one I just mentioned) on the second animation, correct? If so, it might be because the animation is stopped after the first animation is finished. Can you see if it works if both animations are looping (so it doesn't pause automatically when the animation completes). I will look into a fix either way.

  • Great plugin, just starting to use it. Is it possible to set a frame rate for an animation?

    It seems too smooth for a retro type of game

    Also, a 20-30 FPS animation looks closer to a movie or animated cartoon. everything above looks like TV news

    Right now, the only way to do that would be to manually use instant speed curves on your keyframes in Spriter to make the animation limited to those frames (as many as needed).

  • New plugin release!

    8/31/2016

    • Direct drawing mode can now use bounding box data created in Spriter.
    • Added animationLength and speedRatio expressions
    • Fixed a bug where mirror and flip actions wouldn't apply while animations were paused

    Scml objects can now use bounding boxes precalculated in Spriter for correct clipping and effects.

    To use this feature, 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.

    And finally. I apologize for the late replies everyone. Things have been a bit hectic with the contest and Spriter release.

    I am sorry, but I don't get it... I don't know what the function is for...

    If I'm understanding you correctly, it's not used for that purpose. For pinning the entire Spriter character to a box, just use the pin behavior. But say you have a C2 object. We'll call it Fire. And you have an scml object, and you want the fire attached to the character's hand. Without this action, it would always lag a tick behind if you used something like Every Tick - set Fire position to {scmlChar.objectX("hand"),scmlChar.objectY("hand")} for the above mentioned reasons. This action let's you set the position every tick in the same way, but it waits until the scml plugin's post-tick calculations are made before moving the object, so it doesn't lag behind.

    lucid

    Hello again lucid . I think I have found some bugs.

    ...

    It doesn't mirror afterwards

    ...

    If I fully understood, this issue is fixed with today's release. Let me know if I missed anything.

    lucid - And about the Skins(Experimental) does that feature affect largely on performance? I am making a game for mobile & I want to make sure that it doesn't use up a lot of memory & cpu like the physics plugin. Thanks.

    he skins feature is not currently supported on any game engines (as far as we know). We're currently working on a more complete skin mode for Spriter 2, which will be a free upgrade to all current Spriter Pro owners. No ETA on that yet.

    lucid, not sure if this is right place to post, but is there any way using Spriter to replicate the following action:

    Wait PlayerSprite.AnimationFrameCount/PlayerSprite.AnimationSpeed

    I can't use the on animation finished trigger as the wait takes place inside a for loop between a series of actions

    mmm. I'm not sure I understand. You want to use a wait command and you need to know what expressions you need for it to give you the current amount of time it should take the animation to play? If so that would be animationLength/speedRatio (both new expressions. Really surprised animationLength never came up before).

  • > btw, everyone, just a status update for anyone having the issue with the bounding boxes of the objects. I don't have an ETA yet for the release of the fix, but the bounding box fix is already working on my internal builds of Spriter and the scml plugin. I just a few more unrelated bugs to squash in Spriter before I release the upcoming build, but it shouldn't be too long. Thanks for your patience.

    >

    Ohh Good . Thanks for this.

    Btw lucid , have you already made some thoughts about this below? That's about my request before, the visual display of the scml object. To show a differentiation

    of each object since the white boxes of the scml objects look alike.

    >

    >

    > > Woah, I nearly missed seeing this. I meant the scml object white boxes on the editor(layout view), since they all look alike, it is hard to identify which is which. Then i suggested to add a text(nametag) of the name of the scml object so it will be easier to differentiate like the scml object has it's own scale always shown. Or did you / with your team thought of something better?

    > >

    > > Thanks again.

    > > h right. I need to look into this more. I haven't found a decent solution, but in all honesty I haven't had a lot of time checking for one yet either. There's a few things I need to take care of in the near future, so it may be a while, but please remind me if I haven't responded one way or the other in the next couple of weeks.

    >

    No news yet, but I will make sure to take a look at this and have an answer one way or the other for the next plugin update (which will arrive at the same time as the new Spriter version).

    Hi Lucid,

    I have one question.

    I use new self draw mode for my Spriter animations.

    How can I add sound into C2 if I do not drag scml file to C2? (I double click on C2 layout and add scml plugin - according the new instruction of using self draw mode)

    Thank you in advance, I spent 3 hours trying to add sound into C2 with new mode

    Sergey.

    Hello Sergey, the hybrid import should work:

    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.

    Let me know if you have any issues.

  • btw, everyone, just a status update for anyone having the issue with the bounding boxes of the objects. I don't have an ETA yet for the release of the fix, but the bounding box fix is already working on my internal builds of Spriter and the scml plugin. I just a few more unrelated bugs to squash in Spriter before I release the upcoming build, but it shouldn't be too long. Thanks for your patience.

  • lucid It was 33.1MB. And inside the Zip file was Spriter_r5:

    http://imgur.com/xbxnnxw

    That's Spriter Pro you downloaded. Select the RPG Heroes Essentials Art Pack from the dropdown box for versions. That content is free with Spriter Pro.

  • No problem. It's likely a simple tweak of settings or something though to be able to use it in the latest version, so you can get the latest performance tweaks, bug fixes, features, etc for both C2 and the scml plugin. If you change your mind, just send it my way, and please reference this thread in the email so I know who it's from.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • > Hi Falterdan, because of the way the plugin system works, and the plugin using actual c2 objects, there was always a tradeoff of either the entire character being one tick behind, or things set to a Spriter object's position. I'll explain why below, if you're interested, but as far as an actual solution, there's an action under the 'Attach C2 Object' category called 'Set C2 Object to Spriter object'.

    >

    Nice one. I experience the lag as well. Good thing you've posted this.

    Edit:

    lucid - How does this action work, the Set C2 Object to Spriter Object... I used it as a replacement for set position to (x,y) since the set spriter to position(spriteX, spriteY) causes a short lag, but I don't know what does this action do, it didn't go to the position(x,y) of my sprite black box, I think I misunderstood the use?

    It's meant to use every tick, like you're setting the position that one tick, rather than a permanent attachment. Is that already what you're doing?

    lucid Hey quick question for Lucid/Brashmonkey...if you brought the RPG Heroes basic pack with Spriter (here at the Construct Marketplace), can I get a discount to upgrade to the Essentials Pack?

    he Essentials Packs are condensed versions of each art pack that come free with Spriter Pro. There was another user who asked a similar question, and their confusion came because we had made a mistake and the RPG Heroes Pack was deeply discounted on Scirra store long after the introductory sale had ended. Basically, if you paid separately for it, you should already have it. If you tell me the file size of the zip (or of the unzipped folder), I can double check you have the right version.

    lucid

    I can't save the spritesheet the "OK" button at the bottom is grayed out and you can't press it. What am i missing here?

    responded in the other thread you started.

  • hi rhol, would you mind sending me your Spriter project, zipped ()? I'll see if I can figure out what's going on.

  • Hello rhol, Sethmaster is correct, though you can also use the old method if you wish. Do you have a screencap of the errors? Also, the spritesheet save greys itself out if you've chosen a maximum size too small to fit your images or if you try to save to the same directory as the original project. Try increasing the max size and if this doesnt work, can you please screencap the spritesheet dialog when the button is greyed so i can see ifI notice anything else or if it's a possible bug.

  • Hi Falterdan, because of the way the plugin system works, and the plugin using actual c2 objects, there was always a tradeoff of either the entire character being one tick behind, or things set to a Spriter object's position. I'll explain why below, if you're interested, but as far as an actual solution, there's an action under the 'Attach C2 Object' category called 'Set C2 Object to Spriter object'. The parameters should be pretty self explanatory, but let me know if you have any issues. It is just a 'set position' action, as opposed to a pin, so you should use this action every tick you want to set the C2 Object to that position. I didn't realize this issue happens with Spriter objects as well. Are you saying you're using the 'Override Object Animation' action to objectX("someObject") and it's lagging behind as well? I guess it would for the same reasons as below, so I'll add that action for Spriter objects as well.

    Also, what were the issues you ran into override the bones while blending? Was it just random glitchy movement, or was it something more specific, like it completely ignoring the override?

    The reason there has to be a tradeoff is that if the scml object updates all it's sprite's positions before the tick, then all the sprites will be one tick behind. Since the scml object could be moved by events or behaviors, the individual sprites are already positioned to the old position before the tick. If however, you were to set an object's position to one of the Spriter object's positions, it would appear like they were in sync.

    If the scml object updates after the tick (which it does), it will appear in sync with objects if you set the scml object to some C2 object's position. All the individual sprites will be where they should. However, if you set a C2 object's position to the scml object's position it will be the data from the last tick, since it won't have moved yet.

  • HelmetPIg (and anyone else who has attempted to send us email the past 3 days or so), there were some issues when we migrated to a new server, and our email has been down. If you sent anything to us the couple of days, please resend, as we would not have received it.

  • Hi everyone.

    , it won't take nearly that long.

    Everyone else that was waiting for an email reply I believe I replied to everyone. I had quite a backlog between here and the Spriter forums, though, so please let me know if I missed anyone here or via email.