LODRoads BlockBuildings

BlockBuilding

Tool for creation of procedural buildings in Unity engine. Buildings are constructed from panels stacked in in vertical columns. This, along with wide configuration options of individual panels enables non-grid designs, both in floor plan and facade. Facade panels can be generate both procedurally or from custom supplied mesh and bent along a curve.

Flexible roof generation system supports various types and of roofs, from urban flat roof to gabble roofs of historical buildings, castles and village buildings, having one or more gabbles.

Additional detail can be fitted on the building, such as chimneys, balconies, staircases, flags, or other decorations.

Introduction All features Video tutorialā¤“ Unity Asset storeā¤“

Introduction

Custom facade panels

Composing facades from own meshes allows to create themed buildings, for example facades of historical buildings. Meshes are properly seamed even at outgoing reliefs in corners of a building.

panels.webp, 36kB
historic.webp, 41kB

Panel spanning and height

Panel are composed in grid layout. With spanning and uneven height of panels, more complex facade layouts can be created, reflecting inner structures of real buildings, such as halls and stairwells.

inspector0-0.webp, 24kB
uvcmp.webp, 24kB

Materials and UVs

Building has global roof, window and roof material, applied by default to every new panel. UVs and materials can be set up individually for each pannel.

For proper tiling and repeating of facade texture on procedural as well as various custom panels, procedural remapping of parts of custom mesh need to be done. Several methods of UV remapping are available, aiming to cover practical use cases.

uvcmp.webp, 79kB

Roof options

Roof is created as a list of roof segments, each spanning between two selected columns and having its tips attached to anchor points above each columns. One or two anchors may be used. Anchors can be moved freely.

Ledges with configurabe shape can be generated around each segment.

inspector0-1.webp, 18kB
roofs.webp, 60kB

All features

BlockBuilding scene handles can be hidden by disabling Column handles, Roof handles and Row scale handles. If first or last selected column is moved and toolbar option Move in line is enabled, all columns will be moved so that their relative position to virtual line from first to last selected column is kept. Row selection is manipulated by Row select in Blocks foldout.

Facade UV transforms UVs of facades of all blocks. Window UVs are unaffected.

Roof UV transforms UVs of facades of all blocks.

Facade, Window and Roof set default material for roofs and block facades and windows.

LODs sets number of LODs generated, three levels at maximum

Max curve steps sets detail for curved procedural panels for each LOD

inspector1-0.webp, 15kB

The Blocks foldout begins with Row select, which is range of block rows, displayed below. Column range is selected in scene.

The column and block toolbars allow to duplicate, delete, copy and paste blocks and columns, even among different buildings.

Selection toolbar allows to align selected columns in aline with Straighten, select whole row with Whole row, and delete or duplicate the selection.

inspector1-1.webp, 10kB

Roof anchor is position, to which roof top can be attached.

Curvature is length of curve tangents, Declination is length and Curve steps is number of line segments to represent the curve.

Height controls left and right height of a block. The Sync buttons anable and disable height synchronization with heighbouring blocks.

Span controls horizontal span of a block. Span of i will attach right end of a block to a i-th column after the column on the left.

inspector1-2.webp, 11kB

Window rect sets size and position of procedural window, or of a block mesh, if assigned.

Facade local uv traansforms facade UVs of this block.

Facade UV selects custom mesh facade UV remapping. Keep Both keeps all UVs. Keep Inner changes only UVs of outline facade vertices. Global changes UVs of triangles containing outline facade vertices. Outline vertices are vertices closer than 0.01 to mesh left, right, top or bottom boundaries. Outline triangle are triangle with at least one outline vertice.

inspector1-3.webp, 8kB

Facade uv glob/loc selects which facade UV transforms are active. If both active, both are applied.

If Relative size is checked, procedural window dimensions are relative to block size, if mesh is supplied, it is stretched to block size.

If Empty is checked, no mesh for this block is generated.

Custom facade and Custom facade override materials for this block.

If Mesh is assigned, block is created from the mesh. Otherwise, block mesh is created procedurally. Different mesh can be assigned to each LOD.

inspector1-4.webp, 10kB

Roof stretches between columns set by Column range.

Top anchors set columns to whose roof anchors tips of this roof are assigned to. Both anchor may be same.

Ledge sets ledge outset, upward offset and height.

Ledge dir interpolates direction of ledge edges between normal of column where this roof begins and the previous column.

Ledge sharpness controls normal sharpness.

inspector1-5.webp, 12kB

Details are custom meshes that can be attached to the building to create decorations, chimneys and balconies.

Block is the column and the row to which block is this detail positioned relative to - can be moved up to the roof.

inspector1-6.webp, 13kB