{{description>Generate and organize Spot sets along a Path or Volume with the Volume Spots module. Group objects, apply randomization, and define start and end placements.}} ====== Volume Spots ====== This component is used in example scene(s) such as: 22_CGClonePrefabs, 28_AsteroidBelt, 29_CGDeformMesh_BarbedWire. Generates a collection of [[..:datatypes#Spots|Spots]] by distributing [[..:datatypes#Bounds|Bounds]] along a [[..:datatypes#Path|Path]] or [[..:datatypes#Volume|Volume]]. Each spot defines where one item from the [[..:datatypes#Bounds|Bounds]] array should be placed. Feed the output into [[.:createmesh|Create Mesh]] or [[.:creategameobject|Create GameObject]] to instantiate the actual objects. Items are organized into groups. A group is a set of items that are placed together as a unit. For example, a fence section made of three meshes: a start post, middle panels, and an end post. Groups can repeat along the path, either in order or randomly (with optional weighting).

===== Slots ===== ==== Inputs ==== ^ Name ^ Type ^ Description ^ | Path or Volume | [[..:datatypes#Path|Path]] or [[..:datatypes#Volume|Volume]] | The curve along which spots are distributed | | Bounds[] | Array of [[..:datatypes#Bounds|Bounds]] | The bounding boxes of the objects to place | ==== Outputs ==== ^ Name ^ Type ^ Description ^ | Spots | [[..:datatypes#Spots|Spots]] | The generated placement spots | ===== Settings ===== ==== General ==== Controls placement range and cross-volume positioning. === Volume Path === == Range == The portion of the path or volume along which spots are placed. === Volume Cross === == Use Volume's Surface == When the input is a [[..:datatypes#Volume|Volume]], choose whether to place spots on the path center or on the volume's surface. == Cross Base == Shifts the cross-section origin by a constant value. On a volume, the initial base is defined in [[.:shapeextrusion#shift|Shape Extrusion → Shift]]. == Cross Base Variation == Shifts the cross-section origin by a value that varies along the path's length. The curve's X axis is [[documentation:glossary#relative_distance|Relative Distance]] (0 = start of range, 1 = end). On a volume, the initial base is defined in [[.:shapeextrusion#shift|Shape Extrusion → Shift]]. === Advanced === == Simulate == Run a dry run to preview placement counts without creating spots. ==== Groups ==== Manage the list of groups. Add, remove, rename, and reorder groups here. === Repeating Groups === The range of groups that will repeat along the volume. Groups outside this range are placed only once (as fixed start/end groups). Non repeating groups are highlighted with a blue background in the Inspector. === Repeating Order === How repeating groups are selected: * **In Order** - groups cycle in sequence * **Random** - groups are picked randomly, weighted by their individual weight values === Fits The End === //(Only when non-repeating end groups exist)// When enabled, the last non-repeating group is placed exactly at the end of the range. When disabled, it is placed at the first available spot, which may leave a gap at the end. ==== Group Settings ==== Settings for each individual group. === Randomize Items === When enabled, items within the group are selected randomly. === Items # === //(Requires Randomize Items)// The indices of the items available for random selection. === Keep Together === When enabled, the entire group is skipped if there is not enough space to fit all its items. === Space Before === Extra space to add before the group. === Space After === Extra space to add after the group. === Cross Base === Shifts the cross-section origin for this group specifically. === Ignore Module Cross Base === When enabled, this group ignores the Cross Base settings from the General tab. === Translation === == Relative Translation == When enabled, translation is applied in world space rather than the path's local space. == Translation X / Y / Z == Position offset applied to each spot in this group. === Rotation === == Rotation Mode == How spot rotation axes are defined relative to the path: * **Full** - uses direction and orientation * **Direction** - uses direction only * **Horizontal** - uses direction projected onto the XZ plane * **Independent** - ignores path data entirely == Rotation X / Y / Z == Rotation offset applied to each spot in this group. === Scale === == Uniform Scaling == When enabled, scale is applied equally on all axes. == Scale X / Y / Z == Scale applied to each spot in this group.