Difference between revisions of "Spatial Objects"

From Constructive Labs
Jump to navigation Jump to search
Line 11: Line 11:
 
* '''Entity''' an object that is an animated 3D model imported from a Collada (.dae) file. Entity: Mesh which has animation.  Methods are there for playing animations, etc.  You can load a mesh with animations into a Mesh, but then you just get a static Mesh. Only Entity lets you see and play with animations. (default model is a teddybear)
 
* '''Entity''' an object that is an animated 3D model imported from a Collada (.dae) file. Entity: Mesh which has animation.  Methods are there for playing animations, etc.  You can load a mesh with animations into a Mesh, but then you just get a static Mesh. Only Entity lets you see and play with animations. (default model is a teddybear)
  
=Other spatial objects=
+
 
[[File:SpatialAnimation.png]]
+
=Buttons=
* '''Animation->timeline''' - needs to be wired to things to be useful
 
* '''GroundPlane''' - this is basically like a quad.  You put these down and then whenever the user is over them, they will move at a particular height about that (their head height).  these are used to lock the user to "walking on the ground"
 
==Buttons==
 
 
* '''MomentaryButton''' a pushbutton that can be used to momentarily cause an action, like a doorbell button does.
 
* '''MomentaryButton''' a pushbutton that can be used to momentarily cause an action, like a doorbell button does.
 
* '''ToggleButton''' a pushbutton that toggles something between two states, like a lightswitch turns a light on and off.
 
* '''ToggleButton''' a pushbutton that toggles something between two states, like a lightswitch turns a light on and off.
Line 29: Line 26:
 
* '''Lights''' - objects that emit light to illuminate the scene
 
* '''Lights''' - objects that emit light to illuminate the scene
  
==Other==
+
=Movement spatial objects=
 +
[[File:SpatialAnimation.png]]
 +
* '''Animation->timeline''' - needs to be wired to things to be useful
 +
* '''GroundPlane''' - this is basically like a quad.  You put these down and then whenever the user is over them, they will move at a particular height about that (their head height).  these are used to lock the user to "walking on the ground"
  
 
'''Waypoint''' - this controls the movement of any object on a "path".  Waypoint again controls the facing of the thing moving on the path - there are options for the time to get to the waypoint, time to rotate to the orientation and smoothing (currently the smoothing options do not work). All Spatial objects now have two added fields - CurrentWaypointName - this the name of the Waypoint they are moving to, and MovingToWaypoint (whether they are moving to it or not) along with corresponding inputs to manipulate this.  Waypoints have a NextWaypoint field - this controls the next waypoint to go to after the object has reached this waypoint.  This can be the name of a single waypoint in the scene, or it can be a CSV list of waypoint names.  If a CSV list, it will select a next waypoint from the list at random.  I may later add a probability to the waypoint, so you can control the frequency with which it selects paths.
 
'''Waypoint''' - this controls the movement of any object on a "path".  Waypoint again controls the facing of the thing moving on the path - there are options for the time to get to the waypoint, time to rotate to the orientation and smoothing (currently the smoothing options do not work). All Spatial objects now have two added fields - CurrentWaypointName - this the name of the Waypoint they are moving to, and MovingToWaypoint (whether they are moving to it or not) along with corresponding inputs to manipulate this.  Waypoints have a NextWaypoint field - this controls the next waypoint to go to after the object has reached this waypoint.  This can be the name of a single waypoint in the scene, or it can be a CSV list of waypoint names.  If a CSV list, it will select a next waypoint from the list at random.  I may later add a probability to the waypoint, so you can control the frequency with which it selects paths.
Line 37: Line 37:
 
Note: You can have a warp marker on a vehicle.  IE, you made a composite, then you parented the warp marker to the composite, and the model to that.  then, if you animate the composite, the warp marker will move with it.  Net effect: you can get on a vehicle by clicking on the warp marker.  Then you are on the vehicle and will move with it.  Get off the vehicle with another warp marker at the other end.
 
Note: You can have a warp marker on a vehicle.  IE, you made a composite, then you parented the warp marker to the composite, and the model to that.  then, if you animate the composite, the warp marker will move with it.  Net effect: you can get on a vehicle by clicking on the warp marker.  Then you are on the vehicle and will move with it.  Get off the vehicle with another warp marker at the other end.
  
==Constriants==
+
=Constraints=
 
All Objects: three flags have been added to all spatial objects.  They are:
 
All Objects: three flags have been added to all spatial objects.  They are:
 
* ExcludeUsersFromVolume (no users will be permitted to move inside the volume) - they will "bounce back" if they attempt to enter  
 
* ExcludeUsersFromVolume (no users will be permitted to move inside the volume) - they will "bounce back" if they attempt to enter  

Revision as of 12:41, 21 January 2022

Spatial->Visual - are objects you can see.


SpatialVisual.png

Basic Spatial Objects

  • Primitive shapes: Sphere, Cube, Cone, Ring, Torus, Tube, Arrow
  • Quad - a basic rectangle with no thickness
  • TextQuad - a label you can add text to
  • Mesh an object that is a 3D model imported from a Collada (.dae) file (default model is a jacks game piece)
  • Entity an object that is an animated 3D model imported from a Collada (.dae) file. Entity: Mesh which has animation. Methods are there for playing animations, etc. You can load a mesh with animations into a Mesh, but then you just get a static Mesh. Only Entity lets you see and play with animations. (default model is a teddybear)


Buttons

  • MomentaryButton a pushbutton that can be used to momentarily cause an action, like a doorbell button does.
  • ToggleButton a pushbutton that toggles something between two states, like a lightswitch turns a light on and off.

SpatialButtons.png

  • Containers->Composite - for grouping objects. A composite object is used as the parent to a group of objects. The child objects act as a group and move and change together with the composite parent object. You must assign an object as a child of a composite to make it a part of the group. You do that in the PropertyEditor. Select the object you want to add to a composite, group Click the button labeled Change Parent. You will then choose the parent Composite object from a list.
  • CollisionTrigger - sends a message when an object collides with it - needs to be wired to things to be useful
  • Gui->GuiKeyboard - displays a keyboard to type on - needs to be wired to things to be useful

Sound & Light

  • Sound - add an object that plays audio
  • Lights - objects that emit light to illuminate the scene

Movement spatial objects

SpatialAnimation.png

  • Animation->timeline - needs to be wired to things to be useful
  • GroundPlane - this is basically like a quad. You put these down and then whenever the user is over them, they will move at a particular height about that (their head height). these are used to lock the user to "walking on the ground"

Waypoint - this controls the movement of any object on a "path". Waypoint again controls the facing of the thing moving on the path - there are options for the time to get to the waypoint, time to rotate to the orientation and smoothing (currently the smoothing options do not work). All Spatial objects now have two added fields - CurrentWaypointName - this the name of the Waypoint they are moving to, and MovingToWaypoint (whether they are moving to it or not) along with corresponding inputs to manipulate this. Waypoints have a NextWaypoint field - this controls the next waypoint to go to after the object has reached this waypoint. This can be the name of a single waypoint in the scene, or it can be a CSV list of waypoint names. If a CSV list, it will select a next waypoint from the list at random. I may later add a probability to the waypoint, so you can control the frequency with which it selects paths.

WarpMarker - this is a small box with a direction vector to which we will eventually apply fancy shaders. Direction vector will be displayed . when you ray it and click, it will place you there. It will eventually adjust for player height, etc, so put them on the ground. You can control the facing of the player by turning it around and setting "Reorientuser" or leave them in their current orientation if that is false. Orientation not displayed at "play" time.

Note: You can have a warp marker on a vehicle. IE, you made a composite, then you parented the warp marker to the composite, and the model to that. then, if you animate the composite, the warp marker will move with it. Net effect: you can get on a vehicle by clicking on the warp marker. Then you are on the vehicle and will move with it. Get off the vehicle with another warp marker at the other end.

Constraints

All Objects: three flags have been added to all spatial objects. They are:

  • ExcludeUsersFromVolume (no users will be permitted to move inside the volume) - they will "bounce back" if they attempt to enter
  • ExcludeOtherObjectsFromVolume - this does the same thing for other moving objects, like things you grab, path moves, etc.
  • ExcludeWhenInvisible - this means that even when you make an object Visible = false, exclusion still works. So, you can make an invisible collision volume.

Zone: the flag DissallowFreemove has been added. When this is on, users in the zone cannot fly but are forced to move around on the ground or using waypoints.