Vixen
02b45cc4
csharp
public static class BlockoutHandoff

Doc 24's P7: a block-out becoming an asset, and coming back as one.

Read the guide page for this →

Remarks

"Where the block-out becomes something an artist replaces." The exit criterion is that a block-out becomes an asset, an artist opens it in a DCC, replaces it, and the level does not change shape — so everything here is about one piece of geometry crossing a boundary without moving.

⚠ The bake and the export write the same file, and that is the decision. The plan asks for a bake "through the existing importer machinery" and for OBJ and glTF export as separate rows; the existing importer machinery reads OBJ. Writing the artist's file and pointing the entity at that makes the two rows one artefact — so the thing in the level and the thing on the artist's disk are the same bytes rather than two things that have to be kept in step.

Methods (5)

  • public static int Bake(SceneDocument document, IMeshBaker baker, string? name = null)

    Bakes the selected block-out geometry into a mesh asset and points the entity at it.

  • public static string Export(SceneDocument document, string format = ".obj", IEnumerable<Entity>? entities = null, string name = "Blockout")

    Writes the selected geometry out as a file for somebody else's tool.

  • public static int Editable(SceneDocument document, IMeshSource meshes)

    Makes an entity's mesh asset editable again, undoably.

  • public static int Collision(SceneDocument document, Entity entity, List<BoundingBox> into)

    The collision volumes a block-out mesh implies, in the entity's own space.

  • public static (Vector3[] Positions, int[] Indices) CollisionMesh(SceneDocument document, Entity entity)

    The mesh itself as collision, for the geometry a box cannot stand in for.

Used by (2)

  • BlockoutBooleanTestsVixen.Editor.Blockout.Tests
  • BlockoutModeVixen.Editor.Blockout