Jump to content

Blender template for creating custom PZ Tiles

Recommended Posts

Blender template for creating custom Project Zomboid Tiles


Hello. Recently been experimenting with creating custom tiles for Project Zomboid, and tried to create some model for it in the Blender software. So ive decided to prepare and share some instructions/template for people who would want to create their models/furniture in blender - but they are still a bit confused how to start with it, to fit with the default PZ dimensions.




Heres project file for Blender (currently 2.92.0 version), which contains a basic workspace for creating Project Zomboid tilesets in 3D environment.





Camera angle is set up to fit properly the isometric view of tiles used in PZ (you can see camera view by pressing Numpad0 key). Also theres included additional ‘helper grid’ (just an image reference) to keep track of proper size for the model (this grid is only visible in the camera view).

Ive included also an example of bookshelves modeled by me - with base texture, normal map and specular map - also with two lights to create shadows and give an additional effect of accent to the final render. These maps are optional, but they helps in adding more depth to your model. You can also change or remove (or add more) the lights, but its generally good to have at least one light in scene.


Important note - to fit into general style of tiles ingame, remember to set up lighting affecting your models in a similar style as it is visible on original tiles. To help you with understanding the lighting style of tiles in PZ, ive prepared some quick helper images below:



In blender project, ive also enabled Ambient Oclussion option in the scene properties, as well with Bloom effect for making the render looks more soft and smooth for the eye. These options can be adjusted and disabled as well.


The process of creating a model can be a bit complicated and overwhelming at beginning, so before using this template - make sure to look up the basics of modeling, creating uv map and texturing in blender. Personally i would recommend learning from the “Blender Guru” channel (made by Andrew Price). He’s got very good tutorials especially for beginners, with a calm pace of narration through it, while explaining each step in details.


General steps for creating your model are as below:


1) Start modeling the shape of your object/furniture. There are many different methods how to do it, and its good to look up for tutorials and find the method best fitting for yourself. Example: Here


2) When you will have a finished model, you need to unwrap your mesh to UV Map. By default it is made by selecting all faces of your mesh in edit mode (with A key, or manually) - and then pressing U key, and choosing one of the options to unwrap it into UV map. Theres few ways to do that as well - if your model isnt very complicated and detailed, i think simple and practical way is just to use Smart UV Project option, and then setting some small value for the Island Margin (so you can edit easily each face of the mesh in UV map later). Heres another video which may explain you more about unwraping the mesh (and also marking seams, which allows you to manually project your mesh in parts): Link


3) Once you have your model and UV map prepared, you need to find or create some textures. Please keep in mind that not everyone is okay with using their textures by someone else - but you should be able to find some nice, free textures for non-commercial projects (or commercial if its needed). Texture ive used in the template, i found on this site: https://freestocktextures.com/texture/ The authors of these photos give you license to use the textures for free in both commercial and non-commercial way - also with possibility to modify the texture as you would want to (which i did, making the texture a lot darker).


4) With prepared texture, you need to create new material for you model, and apply the texture to it. You can do it by going to the node view (in Shading tab), and adding Image Texture Node, choosing your texture in it, and finally linking it to the Output Node. Once you have your texture linked, you can go to the UV Editing tab on the top, where you will be able to see two viewports - uv mesh editor on the left, and 3d view on the right. Hover your mouse cursor on the view on right side, make sure to change mode to Edit mode, and then press Z key, and choose Rendered view, to see your render (with applied texture) in the real time (thanks to new Eevee render engine in blender). Now you can select different faces of your mesh in this viewport, and with each select you will see in the left viewport a highlighted face projected from our mesh. Use this UV Editor to adjust your uv map (change shape or scale), to make sure texture appears properly on your model.


5) All necessary steps are completed. You can also add the normal map and specular map to give your model more depth. This can be done as well with the nodes in the Shading tab. You can look up the basic example in the template, in the same node view. Making normal maps and specular maps can be done in a few ways as well. But for this tutorial - you can find online free tools which would help you generate those maps, based on the base texture. Theres also a way to generate normal maps in Krita (as well like in Gimp or Photoshop), by using proper filter.


6) Remember to add some light to your scene, its nice to have at least a subtle one. You can also change the overall world lighting in the World properties/Surface.


How to use a template


Simply open the project in blender, and start by hiding the bookshelves model (make it visible when you will need a reference, you can remove it later). Do it, by hiding not just model, but the individual collections (which are like layers in the graphics software) - like ive prepared in the project, as seen below:


Notice also that theres four different collections of bookshelves models - two for the different sides in front view, and two for the different sides in back view. Also each of them is placed in the slightly different position - it is intentional to make the same light effect on them, but with light covering them accordingly from proper side (and fitting to the original PZ lighting style), in the final render (so you need to render and save them separately - just check current collection, and uncheck the rest). The lighting setup ive prepared in the project isnt perfect and ideal, but should work properly with your models, and for the most important - it should fit the original style.

Dont be afraid to experiment with setting different lighting - and changing its shape, power, or even colors.


Theres helper grid of original isometric tiles from project zomboid, which appears only in the Ortographic view in the camera (access camera view by Numpad0 key). You can use it when you are done with final model, to align the model/furniture as it would appear in the TileZed editor - to make sure, for example, if it fits on the one or more isometric tiles.


The angles for the camera in blender, to work with the isometric view of PZ, are set up as below:





Orthographic Scale is set to 10. To fit the original tiles size it should be on 20, but we are using 10, because (in my opinion) as you will see later - it will help us create better, clean effect (instead of blurry) in the final render and exporting to tileset.


When you are happy with look of your model, render it and save as image (separately for all front and back sides).


Also useful tip:

To prepare back view of your model - simply duplicate your model, select it, and then just press S (scale) key, and then X (x axis), and finally write -1 and press Enter key to accept. This will rotate the object in the opposite direction, exposing its back properly to the camera view (remember to place it in the proper position, having in mind the style of covering lighting).


Also one more useful tip:

To change a model to appear in different sides (front or back), in the eyes of your camera, as in the template project - you can select your model, duplicate it, and then press R (rotate) key, then press Z key (z axis), write number 90, then press minus (“-”) key (to make value as negative 90), and finally press enter to accept it. This will rotate your model accordingly in 90°. You can repeat the same process, but without using minus, to rotate model in opposite direction.


Now we will add our rendered images to the tileset. To do that, find the image of one of the tilesets for Project Zomboid, which are available here:

For this tutorial we will use “furniture_shelving_01” tileset image. Open it in your favorite graphics editor/software (in my case Krita). Then in the next tab open one of the rendered images. Change the scale of the whole image of your rendered model (should be in 1920x1080 resolution), by dividing original value by 2 - and choosing Scaling method as: Nearest Neighbour (or as Closest, or Pixel Perfect, in different software). Now you should have your image in 960x540 resolution.

Select and copy your rescaled image, and go back to the “furniture_shelving_01” tileset, and paste your image there on new layer. 

After this, try to line up layer of your new tile on top of the original one (in this case bookshelves), having the original one below your new one , and then select and delete the original tile from the first layer, leaving only your tile in the place. 

This way you should achieve effect as below:



As you can see, we got our new tile in a crispy (as Popeyes Chicken) look, instead of anti-aliased or too blurry - if we would set our previous value already as 20 in render settings in blender. This way the new tile got more pixel-like look, and (at least in my personal view) more fitting to the original PZ style.




Thats all for this tutorial. Thank you for reading this - hope it could help someone. Good luck and have fun with creating your own tiles :)


- nheve

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...