arrow-left

All pages
gitbookPowered by GitBook
1 of 16

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Rotate Object

Rotates an object about its local axes.

  • Rotation (Degrees): Amount by which to rotate the object per axis in degrees. Provided using an XYZ Range.

  • Step Size (Optional): Locks the rotation amount to a given step size. For example, a step size of 90 will limit rotation values to 0, 90, 180, and 270. This value is typically an integer, however may also be used.

  • Execute Per Array Element: If enabled, this will be applied to each element within the , provided that the 's source is an .

float values
placement rule
array
child object
array

Locate Object (Global)

Sets the location of an object in global coordinate space.

  • Position: Sets the position of the object using an XYZ Range.


Locate Object (Local)

Sets the location of an object in local space, relative to a face on the parent object's bounding box.

  • Position: Sets the position of the object using a UVW Range.

  • Face: The face(s) to reference on the parent object when positioning the object in local space.


Basic Transformations

Basic transformations consist of typical affine transformations such as translation, rotation, and scaling.

Translate Object

Translates an object relative to its current position.

  • Translation (XYZ): Determines the translation vector using an XYZ Range.

  • Execute Per Array Element: If enabled, this placement rule will be applied to each element within the array, provided that the child object's source is an .

Drop Object

"Drops" an object onto a using a vertical raycast to determine the point of intersection. If there is no intersection (i.e. the is not located directly above a surface), the rule will fail.

  • Execute Per Array Element: If enabled, this will be applied to each element within the , provided that the 's source is an .

array
Use Parent Above: If enabled, this placement rule will instead reference the parent object above this object's direct parent in the tree. For example, if the hierarchy of objects is Table > Plate > Food where "Food" is the child object, enabling "Use Parent Above" in this case would use "Table" as the parent object instead of "Plate".

The following workflow uses the "drop object" rule to place screws on a ground plane:

  • A ground plane (0.5m x 0.5m) is generated using a Ground Plane generator

  • Multiple screws are loaded from a collection

  • The screws are organized using a series of placement rules:

    • : Moves the screws to positions between (-0.5, -0.5) and (0.5, 0.5) at a height of 1 meter.

    • : Drops the screws onto the ground plane ().

    • : Rotates the screws about their local Z axis.

parent object
child object
placement rule
array
child object
array
Locate Object (Global)
Drop Object
parent object
Rotate Object

Placement Rules

Placement rules are used to transform child objects. Transformations are done in multiple ways:

  • In global (scene) coordinate space (e.g. translation)

  • In local (object) space (e.g. rotation)

  • Relative to a (e.g. alignment, orientation, etc.)

The following workflow constructs a basic scene consisting of a ground plane and screws:

  • A ground plane (0.5m x 0.5m) is generated using a generator

  • Multiple screws are loaded from a

  • The screws are organized using a series of :

Put Object: Places the screws on the ground plane between the UV coordinates (0.2, 0.2) and (0.8, 0.8)
  • Rotate Object: Rotates each object about its local Z axis between 0 and 360 degrees

  • parent object
    Ground Plane
    collection
    placement rules

    Put Object

    "Puts" an object on a parent object using the top face of the parent object and the bottom face of the child object.

    • Position: The relative position of the object on the top face of the parent object provided by a UV Range.

    • Use Parent Above: If enabled, this will instead reference the above this object's direct parent in the tree. For example, if the hierarchy of objects is Table > Plate > Food where "Food" is the , enabling "Use Parent Above" in this case would use "Table" as the instead of "Plate".


    In this example, an of screws is placed on the center of a using the "Put Object" .

    Attach Object

    Attaches one object to another provided a for each.

    • Parent Face: Reference on the .

    • Child Face: Reference on the .

    Scale Object (Uniform)

    Scales an object uniformly (equally along all axes).

    • Scale Factor: Factor by which to scale the object, provided by a . A value of 1 corresponds to the object's original scale.

    Number
    placement rule
    parent object
    child object
    parent object
    array
    ground plane
    placement rule

    Position: Relative position of the child object on the face of the parent object provided by a UV Range.

  • Execute Per Array Element: If enabled, this placement rule will be applied to each element within the array, provided that the child object's source is an array.

  • Use Parent Above: If enabled, this placement rule will instead reference the parent object above this object's direct parent in the tree. For example, if the hierarchy of objects is Table > Plate > Food where "Food" is the child object, enabling "Use Parent Above" in this case would use "Table" as the parent object instead of "Plate".


  • face
    face
    parent object
    face
    child object

    Scale Object (Non-Uniform)

    Scales an object non-uniformly with a different value per axis.

    • Scale: Factor by which to scale the object along each axis, as provided by an XYZ Range.

    Align Objects

    Aligns a child object to a parent object, given a bounding box face for each. The objects to not necessarily have to intersect with one another. The parent face is treated as an infinite plane when aligning the child object.

    • Parent Face: Reference face on the parent object.

    • Child Face: Reference on the .

    • Use Nearest Parent/Child Face: If enabled, the most appropriate will be automatically determined by proximity.


    In this example, between 2 and 4 screws are placed on a using the "" . For each object, an additional screw is placed on the using the same method and referencing the one level above. The objects are then aligned to one another using the right of the and the left of the .

    Complex Transformations

    Complex transformations may consist of several basic transformations and typically reference a parent and/or child bounding box face.

    Move Object Nearby

    Moves a horizontally (within the global XY plane) to be within a specified distance range relative to the .

    • Minimum/Maximum Distance (m): Distance from the bounds of the provided by a.

    A region representing the provided distances is created by inscribing the bounds of the object with an ellipse. A distance of 0 corresponds to no offset from the original object bounds (shown as "minimum" below). Distances above 0 offset the object bounds by that specified distance. The outer region is defined by inscribing the offset bounds with a new ellipse. By using an ellipse, this prevents the corners of the rectangular region from being sampled, which would otherwise sample distances greater than intended. Furthermore, using a circular region relative to the object center would not account for objects with a footprint of uneven proportions (e.g. a vehicle).

    Neighbor

    Places an object near another, relative to a bounding box face on each.

    • Parent Face: Reference on the .

    • Child Face: Reference on the .


    In this example, between 2 and 4 screws are placed on a using the "" . For each object, an additional screw is aligned to it using the "" . The same screw is then moved to be near another screw with a minimum distance of 0.05 meters and a maximum distance of 0.1 meters.

    child object
    parent object
    parent object
    Number

    Offset Distance: Distance to offset from the parent face when placing the provided by a .

  • Horizontal Position: Horizontal position along the parent face to use when placing the child object. A value of 0 corresponds to the left edge, while a value of 1 corresponds to the right edge. Provided by a .


  • face
    parent object
    face
    child object
    face
    child object
    face
    ground plane
    Put Object
    placement rule
    ground plane
    parent object
    face
    parent object
    face
    child object
    ground plane
    Put Object
    placement rule
    Align Objects
    placement rule
    child object
    Number
    Number

    Orient Object to Surface

    Re-orients an object to align to the nearest surface. This is typically used when placing objects on an uneven surface.

    • Child Face: Reference face on the child object.

    • Execute Per Array Element: If enabled, this placement rule will be applied to each element within the array, provided that the 's source is an .


    In this example, multiple cars are placed on a ground object currently in the scene. The "" performs the initial placement of the car on the ground. It is then about its Z axis by a random amount, and finally oriented to the surface using its bottom .

    child object
    array
    Put Object
    placement rule
    rotated
    face