Search the Community
Showing results for tags 'template'.
Found 2 results
npc Writing and helping developing NPC stories
Etherick posted a topic in PZ SuggestionsSo I've heard that the NPCs are mainly being scripted in numerous timelines from various backgrounds, traits, and other conditions that are essentially being hand-made. Which I can absolutely respect as that would allow more "human" responses in comparison to AI. I understand the idea of event chains that act like a logic system in a way, but I can't fathom anything short of a small army of writers to make it possible. Atleast without years of development. So I propose the following; why not let us, the community and gamers help write scripts or events? I'm sure we've all been through a number of situations and reacted to them differently depending on our own character builds or goals. If they allow the player base to contribute to this end, it would allow the devs to focus on the mechanics end to aid in speeding up the final release of NPCs. Not only that but it would allow some great diversity in the PZ world as of course, not every writer is the same. This could be accomplished by giving the community some form of template and maybe bracket it into categories of responses, reactions, or goals. Or a similar tool to properly and effectively integrate it seamlessly into the game. Essentially give us the guidelines and a relatively basic tool to help create the NPCs you, the devs, envisioned. Because trust me, we the players would love deep, lore rich NPCs. One way I could think of implementing this is breaking it down by traits or prebuilt classes. This way we could formulate different NPC reactions and goals that could potentially mesh together with other traits depending on their capabilities or limitations. Maybe even adding in reliance on other NPCs (such as potential family members) for negative traits such as deaf, weak ect or vice versa for bonus traits. Maybe have npc cops, firefighters, soldiers ect try to do their jobs at first and maintain the crumbling civilization. The possibilities are endless. A way to allow us access to this could be a form of massive logic chains. Where inputs from the beginning of the game could be handmade by thousands of players. Such as family members, goals, occupation, and some background information such as preferences, relationships ect. Perhaps even slap on a labeling system such as traits, personality ect to easily organize and piece together multiple chains. Finally a team of moderators to accept or decline certain inputs/outputs or entire chains for rating purposes or feasibility. It could be something as simple as a blog similar to this one, or more complex as a plug-in or game extension. Or even a bit of basic coding. Anything that would allow us to effectively help the core game.
Blender template for creating custom PZ Tiles
nheve posted a topic in Tutorials & ResourcesBlender 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. Download: https://drive.google.com/drive/folders/1B_wVyOKwibm3PxI6-ZQsP_hgV0U3OQGi?usp=sharing 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