🏢

Creating an Interior or MLO: Full Tutorial

Jul 20, 2024

Creating an Interior or MLO: Full Tutorial

Introduction

  • This tutorial covers everything related to creating an interior or MLO (Multi-Level Objects) in one video.
  • Topics: Finding a location, exporting necessary files, creating and modifying the shell, collision, importing files, adding portals, and possibly adding lights (though lights might need their own tutorial).
  • Prerequisites: Familiarity with OpenIV, CodeWalker, YMaps, 3ds Max.

Preparation

  • Select a building that is easy to manage (e.g., a secluded building with less complexity).
  • Use CodeWalker to get the building's name and ensure it's the only instance to avoid widespread changes.
  • Export the model and its texture dictionary using OpenIV.

Initial Steps in 3ds Max

  • Import the exported model and collision data into 3ds Max.
  • Often buildings have embedded collisions; if so, they may need to be deleted.
  • Align and fit the model to the grid for easier manipulation, and ensure it is centered around the origin (0,0,0).
  • Create the shell structure for the interior, aligning walls, floors, and windows as needed.

Modifying the Model

  • Remove unwanted elements like doors and windows using polygon/vertex manipulation in 3ds Max.
  • Create a new room by adding a box that aligns with the interior layout.
  • Ensure the shell aligns perfectly with the exterior model.

Texturing Interior

  • Extract textures from the building and apply them using the material editor in 3ds Max.
  • Assign ID numbers for different surfaces (walls, floors, ceiling) and apply UV mapping to scale textures properly.
  • Add vertex colors to control illumination inside the building.

Exporting and Refining

  • Export the shell and collision files from 3ds Max.
  • Create a folder structure for organizing exports (e.g., shell, collision, world collision).
  • Update OpenIV with new files and ensure all path references are correct.
  • Use CodeWalker to confirm model alignment and check for any issues.

Adding Portals

  • Define portals in CodeWalker to manage transitions between outside and inside spaces.
  • Configure portal types (e.g., doors, windows) and set appropriate flags.
  • Ensure rooms and transitions are defined correctly.
  • Adjust portal boundaries to fit the actual layout, ensuring accurate visibility and collision.

Final Adjustments

  • Check for and resolve any embedded collisions that are no longer needed.
  • Update YMaps and YTypes to reflect newly created interiors and their properties.
  • Recalculate bounding boxes and other extents for new models.
  • Address occlusion issues that may disrupt interior rendering.
  • Ensure all assets are loaded into the server and test the final implementation.

Troubleshooting Tips

  • If crashes occur near the interior, the likely issue is too many undefined portals or incorrect collisions.
  • Use portals, YTypes, and YMaps configurations to fine-tune rendering and collision issues.

Conclusion

  • Reiterate the importance of refining details like collisions, textures, and illumination for a realistic interior experience.
  • Recommend further reading and exploration of advanced topics like lighting, dynamic object inclusion, etc.
  • Next steps could include a focused tutorial on lighting and other advanced elements of MLO creation.

Useful Resources

  • Will link to the material and tools mentioned (e.g., CodeWalker, OpenIV, material dictionaries).
  • Provide a community space (Discord) for troubleshooting and advanced tips.