The Main Controls window offers the primary controls for editing Loading Blueprints. This Section focuses on some General Settings found in this window regardless of the Type of Loading Blueprint you are editing. If your Repository does not contain any Blueprints at this time, please press the Create Loading Blueprint button now to create one.
--Special Note--
You can minimize the Main Controls window by clicking the dropdown button (little triangle) in the upper left of the window. This can give you more room for viewing and editing the current Loading Pattern. The other Controls Windows can similarly be minimized.
This dropdown allows you to switch between existing Blueprints within the Repository and to add new Blueprints to the Repository using the Blueprint Template.
When you create/add a new Blueprint, that Blueprint is automatically opened for editing.
There are three buttons below the Blueprint To Edit option:
1) Duplicate Blueprint - Creates a new Blueprint from the Blueprint that is currently being edited. If the edited Blueprint has unsaved changes, those changes will not be present in the duplicated Blueprint!
2) Remove Blueprint - Removes the currently opened Blueprint from the Repository. This action cannot be undone, so please be very sure you want the Blueprint removed prior to pressing it!
3) Set Blueprint As Default Template - Makes the currently opened Blueprint (including unsaved changes) the Blueprint Template in the Global Editor Settings asset. If you decide you want the Template returned to the default 2D Uniform Ring Blueprint, you can reset it by selecting the GlobalEditorSettings asset found within the Assets/Editor Default Resources/Deep Space Labs/SAM/ScriptableAssets folder.
The name of the Blueprint. Every Blueprint in the Repository should have a unique name, as you will select the Blueprint to use for a given Active Grid Grouping by name in the inspector. If the name does not make the Blueprint easily identifiable, it will be difficult to select the correct Blueprint needed by a particular Grouping.
When changing a Grouping's Blueprint at runtime, you can use the Name to identify the Blueprint you want to change the Grouping to use, however this is not recommended, because doing so will restrict you to never being able to change the Blueprints Name in the future without also updating code that references the name (Use the Blueprint ID instead, which can be found in the Repository Inspector).
Repositories are by default configured to save changes to Blueprints automatically when those changes occur. While this is usually ideal, saving is not a free operation and when a Blueprint contains a lot of data, the save operation can become expensive and slow.
In most scenarios you will probably not notice any issues, however if you do find that the Blueprint Editor is taking a while to perform Save Operations, you can disable Auto Save Changes. When unsaved changes exists, the icon next to Changes Saved? will change from green to red and a Save button will be shown, allowing you manually Save the Blueprint.
It should be noted that changes to the Blueprint Name are automatically applied to the underlying asset; you do not need to press the Save button to save Name changes!
All Blueprints can be either 2D or 3D. Whether the Blueprint is 2D or 3D should be set based on which World Grouping you anticipate the Blueprint will be used with, or more specifically, the Axes used by that Grouping's Streamable Grid (Two Dimensional = 2D, Three Dimensional = 3D). If you try to sync an Active Grid with a World, and an Active Grid Grouping is using a 2D Blueprint but the matching World Grouping is using a 3D Streamable Grid (or vice versa), an exception will be thrown!
You can change a Blueprint from 2D to 3D or 3D to 2D at any time, however it should be noted that going from a 3D Blueprint to a 2D Blueprint will likely result in data loss. This is because 2D Blueprints are not allowed to have Cells or Loading Patterns associated with Layers 2+, so when switching from 3D to 2D, those Cells and Loading Patterns are removed from the Blueprint.
You may be wondering why it is necessary to define whether the Blueprint is 2D or 3D. The main reason is for optimization purposes. By specifically setting a Blueprint that will only ever be used with 2D Streamable Grids to 2D, we are able to store less Cells in the Blueprint, which both reduces the memory used by the Blueprint and increases runtime performance (both because there are less Cells to process, and because the Layer value on Cells can be ignored in calculations).
The Inner Area defines an area of Cells which the Player can freely move between without triggering a change in the Active Grid Cells that are loaded.
For the Uniform Ring and Uniform Custom Shape Blueprint Types, the Inner Area is adjustable and can be whatever size you want, but for other Blueprint Types it is locked to a single Cell. The reason for that is made clear in the Sections dedicated to those Blueprint Types.
When using multiple LODs, you can change which LOD is loaded for Inner Area Cells. For Blueprints used with Terrain or other objects that the player can walk on, it usually does not make sense to change this value to anything other than LOD 1, but for other types of Assets it may make sense.
You can also configure whether you want the Inner Area loaded at all using the Load Inner Area option. When disabled, the Inner Area still exist for the purpose of defining a safe area for the Player to walk around without triggering changes to the loaded Active Grid Cells, but no Active Grid Cells representing the Inner Area will be passed to the World. This is useful for creating voids around the player where World Cells will not be loaded.
These are theoretical values that should ideally match the Streamable Grid you are planning on using the Blueprint with. These settings mainly effect Non Uniform Blueprints where they change the number of Unique per Cell Loading Patterns that you can define.
Note, however, that you can use Blueprints with any Streamable Grid so long as their Axes (2D or 3D) match. While it is recommended to set the Rows, Columns, and Layers (if 3D) on the Blueprint to match the corresponding Streamable Grid, it is not a strict requirement.
If a Blueprint has a unique Loading Pattern for a Cell that is not present on the Streamable Grid, that pattern is simply ignored.
When a Blueprint does not have a unique Loading Pattern for a Cell that is present on the Streamable Grid, the Blueprints Default Loading Pattern is used instead. You can find more information about this subject in the Non Uniform Blueprint Type sections.
The Key Cell is the cell that dictates the Loading Pattern that is used. For Inner Areas that are simply a single Cell, the Key Cell is the Inner Area Cell, but for Inner Areas that use multiple Cells, the Key Cell is always the bottom left (and lower for 3D blueprints) Cell in the Inner Area.
Each set of 10 LODs (LODs 1-10, 11-20, etc.) utilize a separate hue of color to try and help distinguish between different LODs. Within each set, the final color is calculated by combining the hue with pre-set brightness and saturation values that are designed to make LODs that sit next to each within the same set clearer. The pre-set brightness and saturation values cannot be adjusted, however you can adjust the hue used by each set via the GlobalEditorSettings asset (found in the Assets/Editor Default Resources/Deep Space Labs/SAM/ScriptableAssets folder).
If somehow you reach 100 LODs, the hues start repeating, however it's doubtful you will ever need this many LODs.
You can also adjust some other color setting related to the Loading Blueprint Editor via the GlobalEditorSettings asset, such as the outline color when selecting cells, the color of disabled cells, and even the background color of the Blueprint Editor itself.