Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won

  1. Yeah, that's the solution I came up with in the end also. The timing was the most important part really, which I can still use without modifications. It just means I have to have two versions of the same sounds files, or a bunch of placeholders of similar name/duration.
  2. Just a quick suggestion here. I was recently playing with attaching sounds to the animations (very handy) however I was disappointed to find out it only supports wav files. Is it possible to add in support for other types such as OGG/MP3 etc ?
  3. Hi Eva, I have been using Libgdx myself but have heard good things about Cocos2d (but have never tried it). From the description of your requirements, I'd probably say these two libraries might fit your needs. What you're looking for to be able to run Spriter animations directly within Java (or other languages) are called "implementations" and can be found here in the forums: http://brashmonkey.com/forum/index.php?/forum/17-spriter-implementations/ The most recent one for Java that I've been using can be found here specifically: http://brashmonkey.com/forum/index.php?/topic/3474-spriter-with-libgdx It might be a bit overkill for what you need, but is pretty well written and documented by the author. Read though the documentation they've provided on their thread and I believe that should help answer most of your questions.
  4. Hi Roberto, I've only been working with this particular API for a few weeks now and have been heavily customizing it for my purposes, so please take this with a grain of salt though as I'm only speaking on my personal experience which may or may not be best practice. The loading of the SCML "data" object in this implementation is where a lot of memory gets used and you have to be careful how often you're loading that data. The larger the Spriter files (more entities/animations per project), the more memory gets used up and it escalates pretty quickly I've found. I've actually done extensive changes to the original code base in this area which has significantly improved it for my purposes, but has resulted in several features being dropped from the original implementation (for now) and unfortunately a slightly "broken" feeling to the implementation as a whole. I am however considering creating a new Java API based upon the one the folks here at Spriter have been working on (once it is ready); but that is likely still a bit of time away yet. One immediate thing I found is that if you're going to use multiple of the same SCML, instead of loading a new one for each entity, you should create a cache of the loaded "data" instances (actually the loaders that contain it). The "data" can be shared without causing any problems with multiple entities as long as you create new "Player" instances that use the data (all the location etc are stored in the player, not the data object). This should help reduce the overhead when using multiples, especially since you're looking at that many. What I've done is create an ObjectMap of LibGdxLoader instances keyed on the file name. Then any time I load another, I simply look up in the map and if it was already loaded, I returned the same loader instance (which contains only the one set of sprites). Pass that loader into your "MyActor" and then create the MyDrawer/Player instances from that. Once you are entirely done with the SCML and don't intend to use them anymore, carefully dispose of it and any references to it. If you don't clear out all references, the Java GC cannot free the memory and will hold onto it forever. Funny enough, despite the GC, memory management in Java can still be a tricky thing to work with. So something quick and dirty like this: public final ObjectMap<String, LibGdxLoader > spriterLoaders = new ObjectMap<String, LibGdxLoader >(); Then, create your load like before, but only if not in the map above: if (!spriterLoaders.containsKey(scmlFile)) { scmlHandle = Gdx.files.internal("data/spriter/"+image+"/"+image+".scml"); reader = new SCMLReader(scmlHandle.read()); data = reader.getData(); loader = new LibGdxLoader(data); loader.load(scmlHandle.file()); spriterLoaders.put(scmlFile, loader); } Hopefully that's enough to get the point across. As stated earlier though, take it with a grain of salt since I've only been working with it for a few weeks now. Also, if you happen to have multiple entities in the same SCML file, you'd look up using the same file name and you'd end up with the same shared "data" (which actually represents the entire SCML file data). So having several in the same file can be helpful as long as you're using them all. If you have a bunch there though and you're not using them on a regular basis, I'd consider moving them into a separate file to reduce the memory stamp of that particular "data" object. (hope that makes sense) I also found that using their LibGdxAtlasLoader helped reduce some memory as well but mileage might vary there depending on how many sprites/parts you're trying to load. Good luck !
  5. If I understand your requirements correctly, you should be able to make the character with the headband on, then create a character map using the "Set hidden" flag for the headband. Once you place that character map onto them, it should remove it giving you both options. From how I've seen it work, you have to create your animations with "everything on", then use character maps to swap/hide/ignore as needed. I don't believe there is a way to add a new sprite through character maps that was not already assigned to them; although I would love to see that as a feature if possible. If I'm wrong though, would love to know how it's done.
  6. Hi everyone, I'm brand new to animating, but I'm having a blast learning. I'm not a very good artist myself, so I have purchased all my current artwork and instead have been animating it all using Spriter. The game is currently deep in development and unnamed at this point but I'd like to share some of my favorite animations I've done so far over the last couple weeks. Some of them are a bit older versions and I've since updated them, but didn't have any GIF's online for the latest changes yet. Hope you enjoy them !
  7. Couple new bugs. I'm still using R3 because of a copy/paste bug in R4 (I'll try to explain below). Minor issues found: - Rename an object in the Z-order panel. Once you rename one object, you cannot rename another. Seems to work fine in the Hierarchy window though. - When attempting to draw boxes. I hold down the alt key and drag, however 99% of the time I don't see any outline of the box to visually show what I'm making. I end up having to "guess" the rough size blindly. - If you drag & drop bones etc in the Hierarchy to relocate them, quite often they "disappear" and you have to undo/redo to make them show up properly. The copy/paste bug I've found in R4 is a bit tough to describe but I'll give it a shot: - Create an entity with animations (not sure if certain number matters) - Create a character map for that entity to visually create a new look - "Bake" that character map into a new entity - Pick the first animation in the new baked entity and make some adjustments to the objects on their bones (move the images, but not the bones) - Choose "lock bones", but leave sprites unlocked. - Drag/select all the objects (with bones locked, they shouldn't get selected) and copy them. - Go into the next animation. - Again, lock bones, but not sprites - Select all the sprites and delete. This should leave you with just the bones. - Now, paste the sprites from the step above onto this same frame. - It *should* then assign your newly adjusted sprites and lock them onto the bones. - Now, repeat this copy/paste /delete process for several keyframes over several animations. What I noticed is that after a while the SCML file becomes overloaded with "leftover" entries and eventually becomes so large that spriter will actually crash/hang trying to load the project. I know, it's a weird set of steps and probably something someone shouldn't do, and might not be reproduced easily and for that I'm sorry; but hopefully it can lead into something. It should be noted that I only found these steps to cause problems in R4 and seems to be fine in R3. Thanks
  8. I'm really enjoying the "Copy Z order to other frames", very handy. However, is it possible to expand on this a bit further and make a version that "Copy Z order to remaining frames". Basically copy the Z order you have in the current frame, but only to the ones after it, not the ones before. I don't believe this is possible from what I'm seeing so far, but if I'm wrong, please let me know. Thanks
  9. Hey there. Thought I'd pass that along in case nobody else had noticed it yet. If you name an animation like this: "Chop - Sword/Knife", then attempt to export that animation using the batch tool to create an animated GIF (seems okay when creating sprite sheets though), Spriter immediately crashes and the export fails. Renaming the animation to something not using "/" such as "Chop - Sword_Knife" seems to work fine however. So it seems directly related to the use of "/" in the animation name. Tested in both Release 4 and recent Release 4.1 but no earlier builds. Thanks
  • Create New...