Skip to main content

Cell

Custom Icon
Base:
UDataAsset
Type:
UNCell
Header File:
NexusWorldAssembly/Public/Cell/NCell.h
Wikipedia Definition

The basic structural and functional unit of all living organisms. It is the smallest unit of life classified as a living thing, acting as the fundamental building block of all tissues and organs

Editing Convex Hull

A cell represents a map's meta-data, allowing it to be placed in a World Assembly operation. It is meant to disconnect the actual UWorld (Map) from this data, allowing generation to occur without having to load any of the actual map data itself until it is actually used (FNSpawnCellProxiesTask).

This allows for an extremely efficient World Assembly operation, off of the Game Thread.

tip

Cell-level instances spawned at runtime/author-time are locked out from editing. Open the source level directly when you need to make changes. See the Cell Editor as part of the Editor Mode.

Cell Actor​

The ANCellActor functions as the root of all evil, and also houses the level-side data for the UNCell.

Cell Actor Details

SettingDescription
Cell JunctionsInternal mapping of a ticket/identifier to a Junction.
Author Time ActorsA user-defined list of AActors that should be destroyed when a ANCellLevelInstance is loaded. Will not effect cell spatial calculations either.
Initialize Callback ActorsReference list to all AActors that implement the INCellInitialized interface. Populated automatically during the save process to avoid finding at build time.
SidecarSoft-pointer to the associated side-car data (UNCell) for the level.
Cell Junction Next IdentifierStorage for the next internal ticket/identifier.

Cell Root Component​

The UNCellRootComponent represents the data which is going to get mirrored into the UNCell when saved.

Cell Root Details

Bounds Settings​

SettingTypeDescriptionDefault
Calculate On SaveboolShould the bounds of the cell be calculated / updated on save.true
Include Non CollidingboolInclude non-colliding AActors in bounds calculations.false
Include Editor OnlyboolInclude AActors flagged as EditorOnly in bounds calculations.false
Actor Ignore TagsTArray<FName>AActor's with these tags will be ignored during bounds calculations.NCell_Ignore, NCell_BoundsIgnore

Rotation Constraints​

The cell exposes a dual-interval FNRotationConstraints set. The matching interval constrains a candidate rotation's own pose; the difference interval constrains the delta between two rotations. Either interval can be enabled independently.

SettingTypeDescriptionDefault
Enforce Matching?boolEnables the matching-interval test on the candidate rotation itself.true
Minimum Matching RotationFRotatorLower bound (inclusive) of the matching interval.(0,0,-180.f)
Maximum Matching RotationFRotatorUpper bound (inclusive) of the matching interval.(0,0,180.f)
Enforce Difference?boolEnables the difference-interval test on the delta between two rotations.false
Minimum Difference RotationFRotatorLower bound (inclusive) of the difference interval.(0,0,-180.f)
Maximum Difference RotationFRotatorUpper bound (inclusive) of the difference interval.(0,0,180.f)

Hull Settings​

SettingTypeDescriptionDefault
Calculate On SaveboolShould the hull be calculated / updated on save.true
Allow Non ConvexboolAllow the hull to be non-convex; creating a complex collision mesh. There is a performance cost to using non-convex meshes inside of an assembly operation, choose wisely.false
Include Non CollidingboolInclude non-colliding AActors in hull calculations.false
Include Editor OnlyboolInclude AActors flagged as EditorOnly in hull calculations.false
Build MethodENullBuildMethodThis is the method/version used by Chaos to create the convex hull initially. It is currently locked out due to some of the newer versions of the system producing n-gons.Original
Actor Ignore TagsTArray<FName>AActor's with these tags will be ignored during hull calculations.NCell_Ignore, NCell_HullIgnore

Proxy Color​

Voxel Settings​

SettingTypeDescriptionDefault
Use Voxel DataboolVoxel data is currently ignored. Should a cell's voxel data be used in assembly operations.false
Calculate On SaveboolShould the voxel data of the cell be calculated / updated on save.true
Include Non CollidingboolInclude non-colliding AActors in voxel data calculations.false
Include Editor OnlyboolInclude AActors flagged as EditorOnly in voxel data calculations.false
Actor Ignore TagsTArray<FName>AActor's with these tags will be ignored during voxel data calculations.NCell_Ignore, NCell_VoxelIgnore
Collision ChannelECollisionChannelThe collision channel used when tracing for collisions to determine occupancy.WorldStatic

Side-Car Data​

Each cell is stored as a side-car asset (<CellName>_NCell.uasset) that lives next to the source level. The side-car holds the cached bounds, hull, voxel data, junction set, and a thumbnail snapshot of the level — none of which require the level itself to be loaded for the assembly task graph to schedule work against the cell.

When a thumbnail is captured for the ANCellActor in the level editor (via the Capture Thumbnail menu option in Cell Editor), it propagates (with gizmos) to the side-car automatically so the cell shows similar preview in the content browser as the source level.

The side-car asset's content-browser context menu includes a Select Level action button that jumps to the source level in the content browser — handy when triaging a generation result and you need to open the source map for the cell that produced a particular proxy.