Building Generator
With the Spline Building Generator you draw a spline, and PolyBash builds a building along it. The generator creates outer walls, inner walls, floors, ceilings and a gable roof. Doors, windows and floor openings cut the shell, and generated frames fill each door and each window.
This page documents every section of the inspector. The page Spline Generators Overview explains the parts that both generators share, such as the build cycle, the stage system and the Info section.
How the spline becomes a building
The spline describes the centerline of the building plan, and not the outer wall itself.
| Term | Meaning |
|---|---|
| Corridor | The band around the spline. The foldout Per-Knot Offsets defines its left half-width and its right half-width at each knot, so the total width is the sum of both values. |
| Section | The part of the corridor between two spline knots. A spline with four knots has three sections. |
| Level | One horizontal band of the building. Level 1 starts at the local height 0, and each further level rests on the level below it. |
| Run | A group of neighboring sections that share the same top level. The generator builds the roof per run. |
The generator builds the outer wall along the corridor boundary. The inner wall follows the same boundary, offset inward by Wall Width.
A section produces nothing in these cases:
- Its Top Level is 0.
- Its two knots occupy the same position in the horizontal plane.
- Its Bottom Level is above its Top Level.
Quick start
- Create the generator, as the section Add a generator to a scene describes.
- Draw a spline with at least three knots.
- Assign a material to Default Material.
- Open the Levels section, and set Level Height.
- Open the Per-Section Levels foldout, and raise Top Level to 2 for some sections.
- Open the Walls & Corridor section, and set Left Offset and Right Offset.
- To apply both values to every knot, select Reset All To Global in the Per-Knot Offsets foldout.
- Open the Openings section, and select Add Door and Add Window.
- Set a different Position on each of the two new cards, such as 0.2 and 0.6.
- Open the Roof section, and set Roof Type to Gable.
Levels
This section defines the height of each level. Open the Level foldout inside the section for the two fields.
| Field | Default | Description |
|---|---|---|
| Level Height | 3 | The height of one level, in meters. Every level uses this value, unless an override exists. |
| Level Height Overrides | Empty | A list of exceptions. Each entry holds a Level Number and a Height in meters. |
The generator stacks the levels from the local height 0 upward. Level 1 spans from 0 to Level Height, and level 2 continues above it. An override changes one level, and it shifts every level above that level.
Per-Section Levels
The foldout Per-Section Levels holds one row per section, and each row carries two values. The row labels count from 0, and the generated nodes count from Section-01.
| Field | Default | Description |
|---|---|---|
| Bottom Level | 1 | The lowest level of this section. |
| Top Level | 1 | The highest level of this section. |
Different values per section produce a building with parts of different heights, so a tower needs a high Top Level on only one section. Set both values to 0 to leave a section empty, so that the building receives a gap.
PolyBash resizes this list after each change of the knot count. It adds and removes entries only at the end of the list, and a new entry receives a value of 1 for both fields. After you insert or delete a knot inside the spline, verify the values that follow it.
Walls & Corridor
This section defines the wall geometry and the corridor width. Open the Wall foldout inside the section for the fields.
| Field | Default | Description |
|---|---|---|
| Wall Width | 0.2 | The thickness of the wall, in meters. The inner wall sits at this distance inside the outer wall. |
| Left Offset | 2.5 | The half-width that a new knot receives on the left side of the spline, in meters. The build uses the values in Per-Knot Offsets. |
| Right Offset | 2.5 | The half-width that a new knot receives on the right side of the spline, in meters. The build uses the values in Per-Knot Offsets. |
| Wall UV Scale | 5 | The size of one texture tile on the wall, in meters. A value of 5 means that one tile covers 5 meters. The floors, the ceilings and the top surfaces use the same tile size. |
| Curve Segment Length | 0.5 | The length of one segment on a curved section, in meters. A smaller value produces a smoother curve and more triangles. |
| Wall Collider Mode | Mesh | The collider of the outer walls. The next table describes each mode. |
| Wall Collider Tolerance | 0.05 | The Primitives mode only. The largest distance, in meters, between a merged box and the real wall curve. |
| Outer Wall Material | Empty | The material of the outer walls. |
| Inner Wall Material | Empty | The material of the inner walls. |
A Wall Width of 0 places the inner wall on the outer wall, so the wall has no thickness.
Curve Segment Length affects only curved sections. A section whose two knots both use the tangent mode Linear stays one straight segment.
Wall collider modes
| Mode | Result |
|---|---|
| None | The walls receive no collider. |
| Mesh | One Mesh Collider per outer wall mesh. This mode is exact, and it is the default. |
| Primitives | One Box Collider per wall segment, on a rotated child object. |
The Primitives mode splits each wall into bands: one band lies below the sill of an opening, and one band lies above the head, so a door or a window stays passable.
Neighboring wall segments merge into one box while the error stays below Wall Collider Tolerance. As a result, a straight wall needs few boxes, and a tight curve keeps more. A value of 0 produces one box per wall segment. The inner walls never receive a collider.
Per-Knot Offsets
The foldout Per-Knot Offsets holds the corridor half-widths of each knot, and the build uses only these values. PolyBash adds and removes entries only at the end of the list, and a new entry receives the values of Left Offset and Right Offset. After you insert or delete a knot inside the spline, verify the values that follow it. Reset All To Global copies Left Offset and Right Offset to every knot. You can also drag the cyan handles in the Scene view to edit the values. Hold Shift to move both sides at the same time.
Caps & Floors
This section defines the horizontal surfaces. Open the Cap foldout inside the section for the fields.
| Field | Default | Description |
|---|---|---|
| Generate Top Floor | Off | Adds a horizontal surface on the top level of each section, at the height of the level top. |
| Top Floor Material | Empty | The material of the top surface. |
| Floor Material | Empty | The material of every floor. |
| Ceiling Material | Empty | The material of every ceiling. |
| Ceiling Offset From Top | 0.05 | The distance between the ceiling and the top of the level, in meters. |
| Cap Collider Mode | None | The collider of the floors, the ceilings and the top surfaces. |
The floor of a level sits at the bottom of that level. The ceiling sits below the top of the level, at the distance of Ceiling Offset From Top.
Cap Collider Mode offers None and Mesh. The Mesh mode reuses the rendered surface, so the holes of the floor openings stay open in the collider. That collider is concave, which means that it works only for static objects.
For a building without a roof, or for a roof terrace, select Generate Top Floor.
Openings
This stage cuts the doors, the windows and the floor openings. Every later stage reads those cuts, so the walls, the floors and the frames stay consistent.
Doors & Windows
The foldout Doors & Windows holds one card per opening. Select Add Door or Add Window below the cards to add one. The title of a card shows an automatic name, such as "Window 2". To replace that name, enter a text in the field beside the title. The Remove button in the header of a card deletes that opening.
| Field | Description |
|---|---|
| Type | Door or Window. A door starts at the floor, and a window starts at its sill. |
| Level | The level that holds this opening. A value of 1 is the lowest level. |
| Position | The location along the perimeter, from 0 to 1. |
| Width (m) | The width of the opening, in meters. |
| Height (m) | The height of the opening, in meters. |
| Sill Height (m) | Windows only. The height of the sill above the floor, in meters. |
| Count | Windows only. The number of windows that this card creates. |
| Spacing (m) | Windows only. The gap between two adjacent windows, in meters, measured along the wall. |
| Insert Colliders | The colliders of the generated frame insert of this opening. Boxes adds one box collider per frame bar, plus one box for the door leaf or the window sash. None adds no collider. |
A new door uses the width 0.9, the height 2.1 and the sill height 0. A new window uses the width 1, the height 1.2, the sill height 0.9, the count 1 and the spacing 1. Both use Insert Colliders = Boxes.
With Boxes, a door frame receives three box colliders and a window frame receives four, one per bar. The leaf or the sash receives one more box as a child of that part, so the box follows the part when the part opens. An opening that wraps a corner, or that sits on a curved section, splits each bar into one box per straight span. The section Frame Inserts describes the inserts themselves.
A window that uses a Count above 1 creates a row of copies along the perimeter. Every copy uses the width, the height and the sill height of the card. The gap between two adjacent copies is Spacing (m), so the distance between two centers is the sum of Width (m) and Spacing (m). The whole row stays centered on Position.
Position runs along the closed perimeter of the building. Position 0 lies at the corner between the left wall and the wall that closes the start of the spline. The value first crosses that start wall and grows along the right side. It then crosses the wall at the end of the spline, and returns along the left side.
The generator clamps each opening, so that it stays inside its level:
- A door starts at the floor. Its head stays below the top of the level.
- A window sill stays at 0.05 meters or above.
- The head of a window stays below the top of the level, so a high sill reduces the height.
- The width stays below the length of the perimeter.
- The row of copies of a window stays below the length of the perimeter. The generator reduces Count when the row does not fit.
An opening appears only when its Level lies between Bottom Level and Top Level of its section. Each copy of a window follows that rule with the section that holds the copy.
Floor Openings
The foldout Floor Openings holds one card per hole in a floor, and a floor opening produces a stairwell or a light well. Select Add Floor Opening to add one. The title of a card shows an automatic name, such as "Opening 1". To replace that name, enter a text in the field beside the title. The Remove button in the header of a card deletes that opening.
| Field | Description |
|---|---|
| Level | The level whose floor receives the hole. |
| Width (m) | The size of the hole along the local X axis, before the rotation. |
| Depth (m) | The size of the hole along the local Z axis, before the rotation. |
| Rotation (deg) | The rotation of the hole around the vertical axis, in degrees. |
| Center (X, Z) | The center of the hole, in the local space of the generator. |
A new floor opening uses the level 2, the width 1.5 and the depth 2.5.
A hole at level N cuts the floor of level N and the ceiling of level N-1. The generator also adds the vertical surfaces between both edges, so the hole shows a closed shaft.
Scene handles
The toggle Opening Handles in the Scene Gizmos section controls the handles of this stage.
- A door or a window shows a vertical line and two handles. Drag the sphere at the center along the wall to change Position. Drag the cube at the upper-right corner, as seen from outside the building, to change Width (m) and Height (m). The width grows on both sides, so the center of the opening stays in place.
- A window also shows a cube at the bottom center, and a drag of that cube up or down changes Sill Height (m).
- A window that uses a Count above 1 shows one vertical line and one set of handles per copy. The handles of every copy edit the same card. Drag the center sphere of any copy to move the whole row, because the row stays centered on Position. The label reports the number of copies.
- A floor opening shows its rectangle and a handle. Drag the handle in the plane of the floor to change Center (X, Z).
Roof
This stage builds a gable roof, and it produces nothing while Roof Type is None.
| Field | Default | Description |
|---|---|---|
| Roof Type | None | None builds no roof. Gable builds a roof with two slopes. |
| Roof Height | 2 | The height of the ridge above the top of the run, in meters. |
| Roof Thickness | 0.02 | The thickness of the roof slab, in meters. |
| Roof Eave Overhang | 0 | The extension of the slope beyond the wall, in meters, measured along the slope. |
| Roof End Overhang | 0 | The extension of the roof beyond the first knot and beyond the last knot of the run, in meters. |
| Roof UV Scale | 5 | The size of one texture tile on the roof, in meters. |
| Roof Material | Empty | The material of the upper surface. |
| Roof Bottom Material | Empty | The material of the lower surface. |
| Roof End Cap Material | Empty | The material of the triangle above the wall, at each end of the run. |
| Roof Eave Material | Empty | The material of the front edge of the slope. |
| Roof End Material | Empty | The material of the side edge, at each end of the run. |
| Roof Collider Mode | None | The collider of the roof. The next table describes each mode. |
| Roof Collider Tolerance | 0.05 | Collider modes only. The largest distance, in meters, between a merged slab and the real ridge curve. |
The ridge follows the spline, at Roof Height above the top of the run. Both slopes reach the corridor boundary, so the values in Per-Knot Offsets control the width of the roof. An asymmetric corridor produces two slopes of different angles.
The generator builds one roof per run of equal top level. A run that stands beside a taller run receives a clipped roof, so that the roof stops at the taller wall.
| Mode | Result |
|---|---|
| None | The roof receives no collider. |
| Convex Slabs | One convex slab per part of a slope. This mode works with a Rigidbody, and it produces more colliders. |
| Concave Mesh | One merged mesh per run. This mode is exact, and it works only for static objects. |
In both collider modes, each end of a run that does not touch a taller run receives one more collider for the gable triangle.
Frame Inserts
This stage fills each door cut and each window cut with a generated frame, and it produces nothing while the Openings stage adds no cuts.
A window frame has four bars: two jambs, one head bar and one sill bar. A door frame has three bars, because the leaf reaches the floor. The generator clamps the border of each frame, so that the opening stays open. Every material of this stage falls back to Default Material.
Insert cards
The section holds two lists, Window Inserts and Door Inserts, and each list holds one card per frame style. Select Add Window Insert or Add Door Insert below a list to add a card. A new stage starts with one window card and one door card.
The title of a card shows an automatic name, such as "Window Insert 2". To replace that name, enter a text in the field beside the title. Duplicate copies the card, including its opening selection, and Remove deletes it.
Applies To selects the openings that receive the card:
| Value | Result |
|---|---|
| All Openings | Every opening of the matching type. |
| Selected Openings | Only the openings that you select in the Openings list below the field. The list names each opening of the matching type with its name from the Doors & Windows list. The header reports the count, such as "Openings (2/5)". |
The first card of a list uses All Openings. Each further card starts with Selected Openings and an empty selection, because a second card with All Openings would never receive an opening. When several cards match one opening, the first card in the list wins. An opening that no card matches stays an open cut. A card without a selected opening builds nothing, and the card reports that state below the list.
A card selects an opening through a stable id, so the selection survives a reorder, a rename and a deletion of other openings.
The colliders of an insert come from the Insert Colliders field of its opening, which the section Doors & Windows describes.
Window cards
| Field | Default | Description |
|---|---|---|
| Frame Border | 0.06 | The width of the frame bars, in meters. |
| Frame Depth | 0 | The depth of the frame along the wall thickness, in meters. A value of 0 matches the wall thickness. |
| Frame Uv Grain | Vertical | The direction of the texture grain along each bar. Vertical aligns the length of the bar with the V axis of the texture, and Horizontal aligns it with the U axis. |
| Add Lattice | Off | Adds a lattice inside the frame. The lattice is a set of thin bars that divides the glass into fields. |
| Lattice Material | Empty | The material of the lattice. |
| Frame Material | Empty | The material of the frame. |
| Glass Material | Empty | The material of the outside pane. |
| Glass Inside Material | Empty | The material of the inside pane. |
| Include Pane | On | Builds two glass panes inside the frame. For an open window, clear the checkbox. |
| Double Sash | Off | Builds two sashes side by side inside one frame, with no bar between them. See Double inserts. |
A nonzero Frame Depth stays centered on the middle plane of the wall. As a result, a deeper frame protrudes on both faces, and a shallower frame recesses on both faces.
Lattice Material and the lattice fields below appear only while Add Lattice is on. The lattice is double-sided, so its total depth is twice the value of Rail Height.
| Field | Default | Description |
|---|---|---|
| Pane Width | 0.3 | The target width of one glass field, in meters. The fields at the border shrink, so that the lattice fits the frame. |
| Pane Height | 0.3 | The target height of one glass field, in meters. |
| Rail Width | 0.06 | The width of every bar of the lattice, in meters. |
| Rail Height | 0.03 | The depth of every bar of the lattice, in meters. |
| Chamfer | 0.015 | The bevel of each bar, in meters. It must stay below half of Rail Width. |
| Min Border Frac | 0.25 | The smallest allowed field at the border, as a fraction of the target size. Raise it to avoid narrow fields. |
| Outer Chamfer | Off | Bevels the outer edge of the lattice, with mitered corners. |
| Back Style | Open | The closure of the lattice at the back plane, where the two halves of the lattice meet. Flat adds faces on the back plane. Open adds no faces there. |
| Uv Size | 5 | The size of one texture tile, in meters. The glass uses the same tile size, even while Add Lattice is off and this field is hidden. |
| Uv Mode | Planar | Planar projects the texture. Rail Islands gives each bar its own UV island. |
| Uv Grain | Vertical | Rail Islands only. The direction of the texture grain along each bar: Vertical or Horizontal, as for Frame Uv Grain. |
| Island Spacing Mm | 10 | Rail Islands only. The gap between two UV islands, in millimeters. |
Window pane pivot
These three fields move the local origin of the glass, and the glass itself stays in place.
| Field | Default | Description |
|---|---|---|
| Pane Pivot X | Mid | The origin across the width. Min is the left edge, seen from outside the building. Max is the right edge. |
| Pane Pivot Y | Mid | The origin along the height. Min is the bottom edge, and Max is the top edge. |
| Pane Pivot Z | Mid | The origin along the wall depth. Min is the inside face, and Max is the outside face. |
The generator groups the glass and the lattice under a node whose name ends with _Sash, and it places that node at the pivot. The local axes of that node follow its wall: +Z points out of the building, +Y points up, and +X runs along the wall. Rotate that node around one local axis to open the window, and the window opens the same way on every wall. For a hinge on one edge, select Min or Max for Pane Pivot X.
The two fields below rotate the sash at build time, so a building generates with open windows.
| Field | Default | Description |
|---|---|---|
| Pane Open Angle | 0 | The rotation of the sash after the build, in degrees. A value of 0 keeps the sash closed. |
| Pane Open Axis | Y | The local axis around which Pane Open Angle rotates the sash. Y gives a side-hung sash. X gives a top-hung or bottom-hung sash. Z turns the sash in the plane of the wall. |
A positive angle follows the rotation direction of Unity around the selected axis. Around Y, a sash with Pane Pivot X = Min swings out of the building, and a sash with Max swings into the building. Around X, a sash with Pane Pivot Y = Min tilts its top edge out of the building. Use a negative angle for the opposite direction.
Door cards
| Field | Default | Description |
|---|---|---|
| Frame Border | 0.06 | The width of the frame bars, in meters. |
| Frame Depth | 0 | The depth of the frame along the wall thickness, in meters. A value of 0 matches the wall thickness. |
| Frame Uv Grain | Vertical | The direction of the texture grain along each bar. Vertical aligns the length of the bar with the V axis of the texture, and Horizontal aligns it with the U axis. |
| Frame Material | Empty | The material of the frame. |
| Leaf Material | Empty | The material of the leaf. |
| Include Leaf | On | Builds the door leaf. For an open doorway, clear the checkbox. |
| Double Leaf | Off | Builds two leaves side by side inside one frame, with no bar between them. See Double inserts. |
| Floor Gap | 0.01 | The gap between the bottom of the leaf and the floor, in meters. |
The leaf is a stile-and-rail panel door. The generator solves it per opening, so the fields below describe the pattern and not the size.
| Field | Default | Description |
|---|---|---|
| Panel Width | 0.3 | The target width of one panel, in meters. The panels at the border shrink, so that the pattern fits the leaf. |
| Panel Height | 0.6 | The target height of one panel, in meters. |
| Stile Width | 0.12 | The width of every vertical board, in meters. |
| Rail Width | 0.12 | The width of every horizontal board, in meters. |
| Board Relief | 0.02 | The height of the boards above the back plane, in meters. |
| Panel Depth | 0.005 | The height of each panel face above the back plane, in meters. It must stay above 0 and below Board Relief. |
| Core Thickness | 0 | The extra thickness between the two faces, in meters. The total thickness is twice Board Relief plus this value. |
| Chamfer | 0.02 | The bevel between a panel and a board, in meters. It must stay below half of the smaller value of Stile Width and Rail Width. |
| Min Border Frac | 0.25 | The smallest allowed panel at the border, as a fraction of the target size. |
| Uv Size | 5 | The size of one texture tile, in meters. |
| Uv Mode | Planar | Planar projects the texture. Board Islands gives each board its own UV island. |
| Uv Grain | Vertical | Board Islands only. The direction of the texture grain along each board: Vertical or Horizontal, as for Frame Uv Grain. |
| Island Spacing Mm | 10 | Board Islands only. The gap between two UV islands, in millimeters. |
When Panel Depth or Chamfer is outside its limits, the generator skips the leaf and writes a warning to the Console window.
When light passes through the thin areas of the panels, raise Core Thickness.
Door leaf pivot
| Field | Default | Description |
|---|---|---|
| Leaf Pivot X | Min | The origin across the width. Min is the left edge, seen from outside the building. Max is the right edge. |
| Leaf Pivot Y | Min | The origin along the height. Min is the floor edge, and Max is the top edge. |
| Leaf Pivot Z | Mid | The origin along the wall depth. Min is the inside face, and Max is the outside face. |
The pivot of the leaf behaves like the pivot of the sash, which the section Window pane pivot describes. The leaf object uses the same local axes as the sash node. As a result, a rotation around the local Y axis opens the door the same way on every wall. The default Min for Leaf Pivot X places the hinge on the left edge.
The two fields below rotate the leaf at build time, so a building generates with open doors.
| Field | Default | Description |
|---|---|---|
| Leaf Open Angle | 0 | The rotation of the leaf after the build, in degrees. A value of 0 keeps the leaf closed. |
| Leaf Open Axis | Y | The local axis around which Leaf Open Angle rotates the leaf. Y gives a side-hung door. X tilts the leaf around a horizontal axis along the wall. Z turns the leaf in the plane of the wall. |
The sign of the angle follows the same rules as Pane Open Angle: around Y, a leaf with Leaf Pivot X = Min swings out of the building, and a leaf with Max swings into the building. The knob and the colliders are children of the leaf, so they follow the rotation.
Door knob
| Field | Default | Description |
|---|---|---|
| Knob Prefab | Empty | The prefab of the doorknob. The generator parents each instance to the leaf, so the knob follows the door. PolyBash includes the prefab Assets/Snowtop/PolyBash/Prefabs/Building Parts/DoorKnob-01.prefab, which the sample scene uses. |
| Knob X | 0.06 | The distance from the left edge of the leaf, in meters, seen from outside the building. |
| Knob Y | 1 | The height above the floor, in meters. |
| Knob Z | 0.03 | The distance from the middle plane of the door, in meters. A positive value places the knob on the outside face. |
| Knob Mirror | Off | Places a second knob on the opposite face, as an object whose name ends with _KnobMirror. The instance receives a negative scale on Z, so a handed knob stays correct. |
The four fields below Knob Prefab appear only after you assign a prefab. The knob needs the leaf, so Include Leaf must stay on.
The generator clamps Knob X to the width of the leaf. With the default values, the knob sits near the hinge, because Knob X and Leaf Pivot X both use the left edge. For a normal door, set Knob X near the width of the leaf, as the sample scene does.
Author the prefab with the knob along the +Z axis, from its mount point at the origin. The generator orients each instance with +Z toward the outside of the building.
Double inserts
Double Sash on a window card and Double Leaf on a door card build two moving parts side by side inside one frame. Each part is half of the reveal wide, and no frame bar separates the parts. The frame itself stays the same, and the generator solves the lattice per sash, so each sash receives its own lattice.
The left part, as seen from outside the building, follows the pivot, the open angle and the knob fields of the card. The right part mirrors the left part across the center of the opening:
- The pivot X swaps Min and Max. As a result, a hinge on the left edge of the left part becomes a hinge on the right edge of the right part.
- The open rotation around Y or Z changes sign, so the two parts open in opposite directions. A rotation around X stays the same on both parts.
- The knob of the right leaf sits at the mirrored spot. The instance receives a negative scale on X, so a handed knob stays correct.
The generated objects of a double insert carry _Left or _Right after the insert name, for example DoorInsert3_Left_Leaf and WindowInsert3_Right_Sash. A single insert has no suffix.
Materials
Each part carries its own material field, and an empty field falls back to another material.
| Part | Fallback order |
|---|---|
| Outer wall | Outer Wall Material → Default Material |
| Inner wall | Inner Wall Material → Default Material |
| Floor, ceiling | The own material → Outer Wall Material → Default Material |
| Top surface | Top Floor Material → Inner Wall Material → Default Material |
| Roof surfaces | The own material → Roof Material → Inner Wall Material → Default Material |
| Frames, glass, leaf, lattice | The own material → Default Material |
At each end of a roof run, the inner triangle above the wall uses Inner Wall Material → Default Material, not the roof materials.
Generated output
The generator writes its result into child objects, and each mesh object and each node carries the marker component Generated Output. The wall boxes, the insert colliders and the knob instances carry no marker, but each one is a child of a marked object.
<generator GameObject>
├── Section-01
│ └── Level-01
│ ├── Floor
│ ├── OuterWalls
│ ├── InnerWalls
│ ├── Ceiling
│ └── TopCap
├── Roof
│ └── Section-01
│ ├── RoofTop
│ ├── RoofBottom
│ ├── RoofEaves
│ ├── RoofEndCaps
│ ├── RoofEndCapsInner
│ ├── RoofEndStart
│ └── RoofEndEnd
├── WindowInserts
│ └── Section-01
│ ├── WindowInsert0
│ │ └── Collider-0 … Collider-3
│ └── WindowInsert0_Sash
│ ├── WindowInsert0_Pane
│ ├── WindowInsert0_PaneInside
│ ├── WindowInsert0_Lattice
│ └── Collider-0
└── DoorInserts
└── Section-01
├── DoorInsert1
│ └── Collider-0 … Collider-2
└── DoorInsert1_Leaf
├── DoorInsert1_Knob
├── DoorInsert1_KnobMirror
└── Collider-0
Notes on the names:
- The number of an insert is the position of its opening card in the Doors & Windows list, counted from 0. Doors and windows share that list, so the count includes both types. The number in the card title differs, so the card "Window 1" at the top of the list produces
WindowInsert0. - A window that uses a Count above 1 adds the index of the copy after an underscore, such as
WindowInsert2_0andWindowInsert2_1. - A box collider appears as a child of
OuterWalls, with the nameWallBox-0and the following numbers. - A roof collider appears as a child of the section node of the roof, with the name
RoofCollider-0and the following numbers. - The node
TopCapexists only while Generate Top Floor is on. - The knob objects exist only while Knob Prefab holds a prefab, and the object
DoorInsert1_KnobMirrorexists only while Knob Mirror is on. - An insert collider appears as a child of the frame, of the sash or of the leaf, with the name
Collider-0and the following numbers. The generator adds these objects only while Insert Colliders of the opening is Boxes.
Troubleshooting
| Problem | Cause and solution |
|---|---|
| Nothing appears, and Info reports "No build yet". | The spline has fewer than two knots. Add knots. |
| One section is missing. | Its Top Level is 0 in Per-Section Levels, or its two knots occupy the same position. Raise Top Level, or move one knot. |
| The roof is missing. | Roof Type is None. Select Gable. |
| The roof stops before the end of the building. | The neighboring run has a higher top level, and the generator clips the roof against the taller wall. This behavior is intended. |
| A door or a window is missing. | Its Level lies outside the range between Bottom Level and Top Level of its section. Change Level, or widen that range. |
| A window is lower than the value of Height (m). | The head reached the top of the level. Reduce Sill Height (m), reduce Height (m), or raise Level Height. |
| A window sits above its authored sill. | The minimum sill is 0.05 meters. Raise Sill Height (m) to that value or above. |
| The frames are missing. | The Frame Inserts stage is off, the Doors & Windows list is empty, or no insert card matches the openings. Select the checkbox of the stage, add an opening, and verify Applies To on the cards. |
| One opening has no frame although the other openings have one. | No insert card covers that opening. Set Applies To of a card to All Openings, or select the opening in the Openings list of a card. |
| A new insert card changes nothing. | The new card uses Selected Openings, and its selection is empty. Select the openings in the Openings list of the new card. |
| A new insert card changes nothing, although it has selected openings. | An earlier card in the list covers the same openings, and the first card wins. Set Applies To of the earlier card to Selected Openings, and select only the openings that it must keep. |
| An insert has no collider. | Insert Colliders of the opening is None. Select Boxes. |
| The lattice fields are missing. | Add Lattice is off on the window card. Select it. |
| The knob fields are missing. | Knob Prefab is empty on the door card. Assign a prefab. |
| The doorknob is missing although a prefab exists. | Include Leaf is off, and the knob needs the leaf. Select Include Leaf. |
| A character walks through a wall. | Wall Collider Mode is None. Select Mesh, or select Primitives for a moving object. |
| A character falls through a floor. | Cap Collider Mode is None. Select Mesh. |
| The floors have no hole below a stairwell. | The Level of the floor opening is wrong. A hole at level N cuts the floor of level N, so set Level to the level whose floor must receive the hole. |
| The wall has no thickness. | Wall Width is 0, so the inner wall lies on the outer wall. Raise Wall Width. |
| A curve looks angular. | Curve Segment Length is too large. Reduce the value. |
| A wall segment has no texture repetition. | Wall UV Scale is too large. Reduce the value. |