In this tutorial you will learn...|
The graphic specifications for custom tilesets
How to make sure they get imported properly
More about setting their properties in the database
Welcome to my second graphic resources tutorial - my tutorial on tilesets. Hopefully, in this tutorial, I will be able to teach you a bit more
about how tilesets work, how you can make and import custom ones, and how they need to be set up in the database so that you can use them. If
you've read my Tilesets tutorial in the database tutorials, then you'll already know a bit about
importing tilesets and setting their settings in the database, but I am hoping to go into a bit more detail here.
Firstly, I'm going to tell you about the specifications for a tileset. Tilesets are always 256 pixels wide, and can be any multiple of 32 high,
The tiles in a tileset are all 32 × 32 pixels (but obviously you can use more than one tile to make bigger objects, like the trees above).
So, let's import a custom tileset of our own.
I'm going to use a tileset that I have made by combining other tilesets (something I have also
written a tutorial on) to show you
how they work. So, let's open up the Materialbase from the Tools menu or by pressing F10 on your keyboard. When we've done that, click on
the Tilesets category on the left-hand menu, and click Import. You will see a preview of your tileset, like this:
This should be almost like second nature now; just left-click on the background colour to set the transparent colour, and then right-click on the
shadow colour to set the semi-transparent colour. Then, click OK and your tileset will be imported. Now, head over to the database and click on
the tilesets tab. This should look vaguely familiar! Create a new entry by clicking on the Change Maximum button at the bottom, and then
choose your recently imported graphic by clicking on the arrow by the tileset graphic box, and selecting your tileset from the list (it should
have an orange dot next to it, and be at the top).
Once you've done that, we need to start setting some of the properties for this tileset so it functions properly when we use it. Just before
I get going with this, I need to bring something to your attention that will save you a lot of time and annoyance later on. You notice that
the top-left square at the beginning of the tileset is blank? This is the square that you should use for 'rubbing out' - erasing tiles that
you don't want. If you use other blank tiles, then you will start to have the passability problem. This is where the player can walk over tiles
that are set to impassable, even when the database settings are set correctly. To avoid this, you need to make sure that the top-left square in
the tileset is always set to passable, and has a priority 5, like so:
Okay? With that tile set properly, you just need to make sure that you always use this tile to erase unwanted objects and tiles when map-building,
and nothing will go wrong.
So, let's get into setting the options for the whole tileset. With large tilesets,
this can take a very long time! You will notice six buttons on the right hand side of the pane, the first of which is passage. This allows us to
set whether the player can walk through tiles or not (I'll go through Autotile passabilities in the
Autotile tutorial). See this picture…
You will notice that the obvious things are set to impassable like the tree stumps and the large plants - but also, the bottom two sqaures of the
trees are set. If you're curious as to why trees are set in this way, it's because they player obviously shouldn't be able to walk through the tree
stumps - but we want the player to be able to walk behind the tree. At the moment, if we test out our tileset, it appears as if we are
walking over the tree, but that's because we haven't set the priorities yet. Setting the passability options correctly takes a bit of getting
used to; you have to think about where the player will be walking behind. For example, take a look at the tent:
Notice how the player is able to walk behind the top half of the tent, and also into the doorway? It's a bit strange to think in three dimentions
with a two-dimentional graphic, but you'll get used to it with time!
Next down on the property button list is passage (4 dir). Click on it, and you'll see an awful lot of arrows. This is much like passage, but
it defines which sides of the tile precisely the player can walk through or not. For example, take a look at the bridge pieces:
Now, notice how the bottom of the horizontal railing tiles do not allow the player to enter or exit the tile from the top. This means that you
can walk alongside and up to the railing, but not over it. Also, the narrowest bridge tiles do not allow the player to enter or exit from either
side. This means that you can only walk along those bridge tiles and not on or off them from the sides. I know that it's confusing; even with
my experience I still cannot get 4-way passability right most of the time! The best way to work out how to do it is look at RMXP's RTP tilesets
for help, or playtest your game with the tiles in question, and experiment with trial and error to find out what works best.
Next down on the list is priority. This is surprisingly important to get the effects that we want for walking behind trees, and tall pillars and
buildings, etc. Take a look at this tree here…
Priority is a bit simpler than it first looks; there are general rules that apply to everything. Firstly, with simple items like pillars,
desks and objects that the player can walk through the top square only of, the top square will be set to ê1.
With larger items like trees and house roofs, the lowest square down that the player can walk behind will be set to
ê2, and the rest will go up in increments of 1 per row, until it reaches ê5.
This seems a bit complicated, but if you look at the tree above, you'll see what I'm talking about. The bottom row that the player can walk under
is the row set to priority ê2, and then it goes up in 1 increments, until it reaches ê5.
If the item has more rows, they are all set to ê5, like the tree above. Get it? I know it's a bit complicated,
but you'll get used to it!
One more thing: when you're setting priorities, you need to remember that the top half of the player has a priority of ê1,
so if you set something to have a priority of ê1 and the player walks under it, you will get a flickering
effect. The reason that it works with small items is because the player only ever walks behind it with their bottom half.
The next things on the list of tileset settings don't need as much explaining, really. The next down is the bush flag. Take a look at the grass
You can see here that the grass has the bush flag set. This means that in-game, the bottom half of the player will be set to semi-transparent,
so it looks like the player is walking through tall grass, like this:
See how this works? It's pretty simple to get hold of. Just notice how the grass doesn't have bush flags in the bottom row - that's because when the player
walks on those tiles, the feet actually reach down to the bottom of the grass and so it would look like the ground was like tall grass, which wouldn't quite look
The penultimate item on the list is the counter tag. This means that when you place an
event on the other side of a tile with this tag, you can speak through it, as if speaking over a counter. See this counter here (this was
taken from a different tileset; I have no counters in my grassy mountains tileset!):
This allows you to 'talk' through the tile, like shown here:
And finally is the terrain tag button. This allows you to set specific values to tiles so that you can use them for events in-game. I have
used them in some of my event system tutorials, so if you would like some examples or more information on those, then you can see if I have
written those tutorials yet!
Well, that concludes my second and more in-depth tutorial on tilesets. I hope it's been helpful. My next tutorial will be on Autotiles in
the materialbase, how to make them and how to set their settings within the database. See you there!
:: << Previous Tutorial ::
:: Home ::
:: Next Tutorial >> ::