Teachers bookshelf – Dev Log

Teachers bookshelf – Dev Log

Over the last few days, as well as working on other parts of the project, I have been working on the corner of the classroom where the teacher’s bookshelf stands. These assets not only required the base assets, but they also required the objects that rest upon the shelves of the bookcase. This dev log does not cover every object that was created, it choses focus and highlights important assets.


The first step with the bookshelf was to create the frame, this was done simply by creating a cube that was then scaled to size. The front face was then inset and extruded inwards, this allowed for the cavity for the shelves to be added. The next step was to add the shelves, this was done with simple cubes that were then stretched, this process was repeated for the vertical dividers.

The next step was to create a UV map for the object. This was done with each object having two materials, one that was visible to the player, and another that was shared across each object called “back-facing”, this was done to save texture space on visible areas.

The next step was creating the textures, this was simple as a majority of the asset was made of wood.

Bookshelf Items

To create the objects on the shelves of the bookshelves many of these were simple with either primitives being manipulated or utilising simple techniques to create the desired object. However, the books and folders were created in a unique way, utilising Blenders procedural “geometry nodes” to create a object that could be duplicated and manipulated using number inputs.

This node network allows for 7 inputs: [Geometry, X, Y, Z, Cover, Pages X, Pages Y]. These inputs are combined, with the geometry input being transformed to create a cube for the cover, another spilt is then scaled along the X value through the use of the cover input. This then creates another cube that is used in a Boolean operation with the original cube to cut out an area for the pages to sit. 

To create the pages the original cube is once again created, scaled using the inputs of the pages X and Y as well as the cover input. First before this, these inputs have to be put through three formulas, to determine the scale values along the XYZ axis:

X scale = X – ((PX / 2) + C)

Y scale = Y – PY

Z scale = Z – 0.015

This allowed for the pages to sit in the section removed for them comfortably without clipping through any of the cover.  This was then combined with the cover through a mesh join operation, allowing for one final object.

This method of creation for the books was chosen as it allows for the creation of many books in varying dimensions without having to spend ages modelling each individually. It only requires duplication of a single origin object and manipulation of the input values.

This procedural book generator was useful as through the creation of the bookshelf there were 17 books generated, with only minor alterations needed to some of them to create folders. These were added to the bookshelf alongside; a radio, a mysterious orb, a water jug, a few boxes, a CD stack, and a bookend. In the future I plan to return to some of these objects to better optimise them as at this point they are rather vertex heavy.

Leave a Reply

Your email address will not be published. Required fields are marked *