A few feature requests

Gentlefox

  • Posts: 3
Actor animations from spritesheets:

Adding multiple animations for an actor is currently very annoying. If your sprites are in a spritesheet, you need to select the image, enter the settings, and remove the frames you don't want. This has to be done for every single animation. It would be much easier to work with if you could import a spritesheet, enter the settings, and then have that sliced up sheet stay linked to the actor. Then for all your animations, you could simply select tiles from that sheet.

Bulk animation delays:

This one is fairly simple. When you select multiple frames in an animation, it would be nice to be able to right-click -> set delay for all frames. Very tedious to set these manually.

Custom tile collision boxes and regions in Simple physics mode:

I understand limiting collision boxes to rectangles in Simple physics mode, but I don't see why tiles should be so heavily restricted or why regions were removed completely. Only full-tile boxes? Why? This completely ruins Simple physics mode for me. I have studied collision algorithms before, and I can't imagine this restriction giving a significant speedup. An axis-aligned rectangle is an axis-aligned rectangle in all the algorithms I've seen. This is a huge headache to work around, requiring tilesheets to be split up and exported as sheets of varying sizes. Custom rectangles would be great, and multiple rectangles in a tile would be even better. As for regions, just only allow the rectangular ones.

Separate collision boxes for each animation frame:

Currently each animation can only have one collision shape defined. The workaround for this is to create an animation for each frame, which is extremely hacky and ugly. It would be great to be able to have little arrows that let you tab through the frames of each animation on the collision screen.

Allow animations to contain regions:

Some games make extensive use of multiple collision types. For example, Smash Bros characters have hitboxes, regular hurtboxes, invulnerable hurtboxes, intangible hurtboxes, item grab boxes, ledge grab boxes, environmental collision boxes, grab boxes, and shield boxes. If you currently wanted to do anything like this, you would have to manually update the coordinates of different regions against your character's current position, or create new regions every frame on the fly, or use other actors as collision tools. If you could pre-define regions, and then draw them within animation frames, you could very easily make complex animation behavior. This wouldn't just be useful for fighting games either, it would be trivial to make enemies that are sometimes invincible, or to give an actor different behaviors based on where it was shot. Instead of making the events for these regions under a scene, you would add the events to their parent actor. The "When an actor enters a region" event type already exists so from the event side this wouldn't be too different from scene regions.

Better blending of "Simple" and "Normal" physics:

This may be a bug, but when the game is set to use Box2D physics, and the Actor Mode is set to "Simple", that actor can only collide with actors that are also in "Simple" mode. They can not collide with  terrain, or actors in "Normal" mode. It would be very useful to have actors with just basic collision detection in a Box2D game. You could have things like switches, doors, cameras, etc. that don't need the full resource draining Box2D physics, but still require basic collision.

letmethink

  • *
  • Posts: 2545
Bulk animation delays can be done (not at a computer with Stencyl right now). I think you just have to select multiple frames then either hit enter or click the time editor.

For allowing actors to contain regions, you can add multiple collision shapes to actors' animations and change the group of those to defined groups of what you are suggesting.

Your last option is quite unrealistic. Collisions go two ways so if you want to collide with an actor, it needs to understand your collision shape and visa versa. If a simple shapes collides with a non simple shape, it doesn't understand the other collision .

All your other points are quite valid and I agree with most.
~Letmethink

Gentlefox

  • Posts: 3
Bulk animation delays can be done (not at a computer with Stencyl right now). I think you just have to select multiple frames then either hit enter or click the time editor.

My bad, it looks like you can select them all and click "Edit Frame".

For allowing actors to contain regions, you can add multiple collision shapes to actors' animations and change the group of those to defined groups of what you are suggesting.

Thanks, I didn't know you could do that. It still isn't really a replacement for what I'm looking for though. The tools to edit the collision boxes are strangely unintuitive (can I only move them around by changing numbers in text boxes? I can't seem to drag anything.), I can't select a box that's under a different box, and sorting into groups isn't precise enough unless I want to make a group for each hitbox.

Your last option is quite unrealistic. Collisions go two ways so if you want to collide with an actor, it needs to understand your collision shape and visa versa. If a simple shapes collides with a non simple shape, it doesn't understand the other collision .

I understand that this is diving into Box2D's internals, so it may very well be impossible with the default engine.  I just think it ends up being very unintuitive. It says Simple physics are for "non-rotating boxes".  That doesn't make me think "This object is completely unable to detect collisions with non-Simple actors", it makes me think "Box2D probably has an optimized object for squares that can't rotate."