aseprite icon indicating copy to clipboard operation
aseprite copied to clipboard

Autotile Editor

Open Scellow opened this issue 7 years ago • 8 comments

Hello

It is often hard to make tilesets that support autotiling because we can't directly see the end result

So it would be cool to have a feature that would help with that

Some documentation about different type of autotiling

http://www.cr31.co.uk/stagecast/wang/blob.html

Scellow avatar May 10 '18 10:05 Scellow

I think this issue will be solved when tile stamping is implemented because you'll be able to paint out some test terrain for whatever autotile formations you need and then just edit the tiles and see it update in real time.

KashouC avatar May 10 '18 11:05 KashouC

Do you have a link to that issue? i did a quick search and i can't find it

Scellow avatar May 10 '18 20:05 Scellow

Check under version 1.6 for the tile map editor. https://www.aseprite.org/roadmap/

KashouC avatar May 10 '18 20:05 KashouC

There are several issues, everything labeled with tilemap 👍

dacap avatar May 11 '18 03:05 dacap

I'll leave this other link about tile bitmasking.

dacap avatar May 11 '18 03:05 dacap

I'd also want to suggest ability to generate tileset for autotiles to be exported into a game engine editor such as GameMaker Studio 2. Like have it generate the tileset based on the predefined template (in GMS2, it uses the 16-tile or 47-tile configuration with a blank tile at 0 index) when exported out as a tileset, with tiles in correct position, for easier importing into GMS2, for example.

Basically GMS2 takes in a sprite as a tileset, and it can be set to generate an autotile layout by assigning (still manually) each tile index to the matching index (ie corners, walls, that kind of corner). This is facilitated if all the tiles are in the same order as the GMS2's predefined order of tile arrangement, making assignment easier. There is plugins that automates this process, however.

But my suggestion is a feature that generates the tileset with the tiles set in predefined position and sequence as indicated by the game engine autotile template. I hope I am making sense. Basically export it based on a tileset template.

hyperionthunder avatar Apr 25 '19 12:04 hyperionthunder

I'll leave this other link about tile bitmasking.

@dacap

You've got the RPG autotile down, but how about slopes for platformers?

The standard RPG autotile bitmasking doesn't work when you get into i.e. Megaman X (or Mario Maker 2, for a more recent example) styled slopes (two different slope angles, using multiple tiles).

-- Here's an idea:

It might be useful to look into "Mario Maker 2" for inspiration on how to handle autotile bitmasking for these kinds of slopes, but I've got something else in mind -- "Autotile Brushes".

I suggest three major "Bitmasking Modes" for these "Autotile Brushes" to use to speed up typical bitmasking for autotiling, which would be configured (visually!) in the tile palette via an "Autotile Brush Mask".

Here's the modes:

  • RPG/Basetile (4way/8way) -- see standard RPG Maker tilesets on how this might look, but allow simpler "blocky" style autotiling too (4way, which ignores slopes/corners),
  • Platforming/Slopes (45deg/28deg) -- see Mario Maker2,
  • Custom/Freeform (Bitmask MASK setup in your tile palette)

The idea is that you can (visually) mark certain tiles in your palette to be one of these types of autotiles. For example, you can drag a pretty (partly transparent) mask over your tile cells to mark them as slopes. The mask would (visually) represent a partly transparent slope of different angles and you could drag these around to edit the bitmask mappings. You could grab the entire group of partly-transparent bitmasking "tiles" at once, or move them about individually by holding CTRL or something and dragging them about. The bitmasking "mask" tool would only appear in the tile palette if there are sufficient number of tile indexes to mask for that particular tile type.

Later on, you just grab the autotile type from a list of autotile "brushes" from a nice graphical menu dropdown in your tool palette (that only appears when you are editing tiles). This would enable you to have multiple slope types, with various colors, that you could drag and extend (i.e. akin to how you would in Mario Maker 2). The only difference than Mario Maker 2 would be to give the user an option as to whether they want to use the "landing" tiles or not ("landing tiles" being the end tiles you grab on and shift around in Mario Maker 2 for your slopes).

Finally, that "Custom/Freeform Bitmask" is special -- It lets you setup the bitmask for an entirely new autotile brush. This lets you make your own "Autotile Brush Template" so that, say you have a uniquely-designed statue, you can draw another statue, except maybe this statue is actually a broken ruin, but it takes on the exact same tile configuration as the large statue did. To use the new brush mask you just made, you'd grab the "Autotile Brush Mask" you just created in the Custom/Freeform Bitmask creation mode, then place that new brush on tile palette where the broken ruin tiles are to map those tiles to our new autotile brush. Then use it to paint ruins or statues and cycle through these two with the mousewheel. To go one step further, perhaps some of the tile regions in the bitmask will also autotile with the endpoint tiles on slope connections or to the end of any standard RPG/Basetile connections (at their endpoints), so say you have three tiles at the base of the statue, you'd need three RPG/Basetiles to connect to the base of the statue. At this point, you'd have three more necessary tiles to make that would display that three-tile transition from the statue to the grassy ground tiles (2d platformer). The broken ruins would need this transition too, since it is a brush based on the same mask. You could always point this to some generic grass overlay to make that transition not require you to redraw the grass for both the statue and the broken ruins. As said before, since you're able to define the autotile brush mask itself using the Custom/Freeform bitmask, you can easily define what tiles parts of the brush will autotile/transition into by pointing to them (i.e. dropping the semi-transparent icon representation of them) onto certain tiles on your Tile Palette. The Custom/Freeform bitmask would let you specify if a tile is a transition tile, so maybe you can label all the parts as a blue 1,2,3 (and so on) and then have the transitional tiles for these labeled as a red 1,2,3 (and so on) to represent the base of the large statue / broken ruins' transition to the grassy tiles. In general, you wouldn't show these brush masks in your tile palette until you're ready to define your bitmasks for the autotiles. After this is done, then you suddenly magically have a new autotile brush waiting for you to create with! :)

awesomez avatar Dec 04 '19 17:12 awesomez

Requested again: https://community.aseprite.org/t/auto-tiling-auto-tile/25539

Gasparoken avatar May 30 '25 22:05 Gasparoken