*resolved* Tiled mode: ability to specify multiple frames for editing

The new “Tilemap layer” functionality is great, but my current workflow of drawing tiles in frames and creating a tilemap using “Export Sprite Sheet” has certain features not yet available when using a “Tilemap layer”. Specifically, drawing tiles using multiple layers and creating animated tiles with aseprite’s animation system. In addition, I’m actually using Tiled to produce my tilemaps, so I really only need the ability to draw frames side-by-side in order to draw multi-tile objects (trees, etc).

I’m very interested in adding an option where the user can change the functionality of “Tiled Mode” from repeating the current frame to letting the user specify which frames are shown/editable in each frame-view in the grid. This could be done by adding another mode to “Tiled Mode” (in addition to “Tiled in Both Axes”, “Tiled in X Axis” etc.) called “Specify Tiles”. When “Tiled Mode” is in “Specify Tiles” mode, the last frame-view clicked on (with any tool) is the only frame-view that changes when you set the current frame. In this way, the user can select and edit up to a 3x3 grid of different frames when using the “Specify tiles” mode of “Tiled Mode”. If you change the “Tiled Mode” mode from “Specify Tiles” to any of the other modes, the frame-views are all reverted to showing the current frame, returning “Tiled Mode” to the traditional functionality.

Rather than waiting for this feature to get to the top of the developer’s backlog, I could add it myself with a pull request. I only need the go-ahead from the developers that they’d be interested in incorporating this feature after I’ve implemented and pull-requested it. I am a professional C++ programmer with decades of experience and would make sure that my addition is properly incorporated into the code base using the current code structure and style.

So, if I added this feature, might it be accepted into the project at some point in the future (assuming it’s written well enough and passes QA)?

EDIT: To the argument that frames weren’t intended for making tiles or multi-tiled images, I would point out that “Tiled Mode” is designed for drawing tiles, specifically ones that wrap. How big of a conceptual leap is it between a single tile that wraps and multiple tiles that produce a single image?

Hi. I’ve decided to work on this feature in the hopes that it’ll be accepted. I’ve got roughly 75% of the way through development and decided to make a video to demonstrate what I’ve got so far.

I’ve watched the video and still don’t have a clue what advantage this has over a tilemap layer.

You say you don’t want to use a tilemap layer because you use Tiled for tilemaps. You know you don’t have to use the tilemap from aseprite, you can just use the tileset you’ve created. I see the tilemap editing in Aseprite as simply a convenient and natural interface for developing a tileset, I wouldn’t use it as a fully-fledged map editor.

I really can’t imagine such a niche function getting merged into Aseprite, particularly given it largely reproduces existing functionality. But then I have no say in the matter.

1 Like

That is disheartening. Maybe I’m thinking about this wrong. Clearly the tilemap layer is popular based on the enthusiasm I see in the youtube video tutorials. Maybe if I more frankly laid out my situation, you could tell my where my thinking is in error? That’d be extremely useful.

I was mid-project when 1.3 came out. The project’s tileset is currently in frame->tile format, exported with “Export Sprite Sheet” (which handles the tileset layout well). The tileset currently has 65 tiles, 48x48 pixels. Most are sketches as I want to get the maps done, then polish the tiles later. I haven’t done any transition tiles yet. The tiles are drawn on between 2-4 layers, typically including a base color, lowlights/highlights and details and overages (such as cave art, fancy-door filigree or moss). Of these 63 tiles, 21 are for sea animation (a lot, I know, but the sea is prominent in this project). Each wave in sea animation fades in and out independently and there are 5 waves in 5 layers (it’s stylistic, think windwaker’s far-sea animation). I also have 4 shore-line animations, 3 frames each. The project will eventually need at least 2-3 multi-tile animations too.

When considering moving my project to the new tileset system, I was somewhat daunted by the copy/paste work, but I’d do it if it was worth it. However, needing to flatten the layers on all of my frames, especially before I’ve finished polishing the tiles, seemed unfortunate. Also, if I wanted to adjust the animations, or add new ones, I’d need to build the animations in frames, then copy the frames into the tiles. Finally, I’ve been appreciating some Aseprite features, such as horizontal symmetry.

The obvious solution is to keep the current frame->tile setup, copy/paste into a tilemap, then re-copy/paste whenever I make adjustments to the tiles. Ultimately this seemed too cumbersome for what I needed: working on tiles side-by-side from time to time.

So, all of that led me to my current solution. It doesn’t seem that unusual. Maybe I’m relying on layers more than other artists? Maybe I’m making the copying/pasting out to be a bigger deal than it really is? I’d honestly like to know how my thinking diverges from the mainstream here.

The inability for tiles in Aseprite to have their own layers is the problem here, I think. It sounds like eventually better tileset management and will come along, but for now, the workflow in Aseprite requires that every layer have its own tiles, as the feature is in its infancy, and improving it in this way would push the release of the feature back too far.

I’ve found no use for Aseprite’s tile features for a similar reason as you, though my own workflow took a very different direction to yours. In either case, it doesn’t make sense to expect tooling to help our unintended workflows be better xP I think you should keep working the way you’re working, as for now, the tile features seem better for those cases where tiles are incidental rather than being the main thing you’re making. Since you’re already using Tiled, you can check your tiles in that, without having to give up your tiles’ layers as you would to check them in Aseprite.

I’m sure better tiles are coming to Aseprite eventually, but I think this particular feature would just be a distraction from that, rather than working towards improving the intended workflow of tiles by e.g. letting tiles have their own layers independent of the documents the composite tiles are used in.

Your follow up post does a better job of communicating the method’s advantages. I still think they should be mostly addressed once the tilemap layers are fully fleshed out.

As far as I can tell Aseprite doesn’t yet have any means of properly importing a tileset (in either GUI or script), best it seems you can do at the moment is create an empty tilemap and paste the tileset image into it which will merge any duplicates and screw up the mapping. So for the moment converting your project to tilemaps would need manual intervention.

For multi-layer tilesets I’d use multiple tilemap layerss, export keeping the indexing of the bottom-most tilemap layer’s tileset, indexing other tilemap layers based on first occurence with a base layer index. Would require manual maintenance to keep other layers consistent with base but could do updating in a script.
(Maybe Aseprite could solve multi-layer tilesets with a reference/linked-clone layer and different single-layer tileset per instance?)

If you want to test out tile animations a script should be able to copy the selected tiles in the tileset view into a new sprite as frames (and back again too if you want to make edits there).

Hmm. Ok. I think I’ll use this new feature for my own work, since best it fits my more involved tile-creation process (and it’s adequately functional), but I’ll not expect/promote it to be added to Aseprite proper anymore since it’s not advancing the intended workflow for tilesets.

The alternative technique of reviewing my work in Tiled is fine for some situations, but not so much for, say, drawing a tall tree, or a large door. The other alternative of using multiple tilemap layers, bound together with scripting also seems decent, but what I have already does the job. I also like that idea of a script to animate in a tilemap by copying different tiles in time.

FYI, I’d initially given serious consideration to adding features to Aseprite’s tileset system to better meet my needs, but I’m completely unclear on a good UI for that (whereas the UI for this feature was obvious and simple to use, at least to me). Most likely the devs have a plan in mind for how tileset creation will work going forward. Maybe I should post in “Development” to see if I could help speed that along.

1 Like