Difference between revisions of "Scene Object Types"

From Octodad Workshop
Jump to navigation Jump to search
(Created page with "'''EmptySceneNode''' Basic scenenode with no additional properties. Use for organization within a scene. (Ex: Placing all wall objects under "Architecture") '''SubLevelObject...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''EmptySceneNode'''
+
'''EmptySceneNode''' <br />
 
Basic scenenode with no additional properties.
 
Basic scenenode with no additional properties.
 
Use for organization within a scene. (Ex: Placing all wall objects under "Architecture")
 
Use for organization within a scene. (Ex: Placing all wall objects under "Architecture")
  
'''SubLevelObject'''
+
 
 +
'''SubLevelObject''' <br />
 
Loads another level externally into a main level.
 
Loads another level externally into a main level.
 
Use to separate larger levels into separate workspaces so multiple designers can work on them.
 
Use to separate larger levels into separate workspaces so multiple designers can work on them.
 
Use for compound objects, such as a grocery store shelf you want repeated everywhere.
 
Use for compound objects, such as a grocery store shelf you want repeated everywhere.
  
'''InstancedObject'''
+
 
 +
'''InstancedObject''' <br />
 
Creates a duplicate of an item at runtime.
 
Creates a duplicate of an item at runtime.
 
Use this anytime you want EXACTLY the same object, such as a stack of identical cheeses on a table.
 
Use this anytime you want EXACTLY the same object, such as a stack of identical cheeses on a table.
 
Objects CAN have their own unique position, scale, and rotation.
 
Objects CAN have their own unique position, scale, and rotation.
  
'''JointObject'''
+
 
 +
'''JointObject''' <br />
 
Creates a physics joint between two PhysicsObjects, by referring to their child MarkerObjects.
 
Creates a physics joint between two PhysicsObjects, by referring to their child MarkerObjects.
  
'''MarkerObject'''
+
 
 +
'''MarkerObject''' <br />
 
Parented to another object to describe a specific point on the parent.
 
Parented to another object to describe a specific point on the parent.
 
Use 1: Marks the points on an object where a JointObject can joint two PhysicsObjects together.
 
Use 1: Marks the points on an object where a JointObject can joint two PhysicsObjects together.
  
'''DataBindingObject'''
+
 
 +
'''DataBindingObject''' <br />
 
Copies a property from one object to the property of another.  
 
Copies a property from one object to the property of another.  
 
Always us to define generic relations in editor.  
 
Always us to define generic relations in editor.  
Line 29: Line 34:
 
Destination Property: Target
 
Destination Property: Target
  
'''VariableObject'''
+
 
 +
'''VariableObject''' <br />
 
Holds a variable that can be queried and altered by triggers.  
 
Holds a variable that can be queried and altered by triggers.  
  
'''LevelInfo'''
+
 
Defines the properties of the level
+
'''LevelInfo''' <br />
# of lights per object, shadow direction, ambient cube texture, music property.
+
Defines the properties of the level: # of lights per object, shadow direction, ambient cube texture, music property.
 
The object's position and rotation defines Octodad spawn position and rotation
 
The object's position and rotation defines Octodad spawn position and rotation
 
Sublevel LevelInfos are ignored when run inside a larger level.
 
Sublevel LevelInfos are ignored when run inside a larger level.
  
'''CheckpointObject'''
+
 
 +
'''CheckpointObject''' <br />
 
Describes the checkpoint attributes when saving out the level as a checkpoint.  
 
Describes the checkpoint attributes when saving out the level as a checkpoint.  
  
'''Objective'''
+
 
 +
'''Objective''' <br />
 
Completable objective that hooks into the UI.  
 
Completable objective that hooks into the UI.  
  
'''PhysicsObject'''
+
 
 +
'''PhysicsObject''' <br />
 
The standard object for creating 3D objects in editor.
 
The standard object for creating 3D objects in editor.
 
Can exist as a mesh without physics or a physics body without a mesh (collision volumes)
 
Can exist as a mesh without physics or a physics body without a mesh (collision volumes)
Line 52: Line 61:
 
Please refer to the editor's Attribute Editor in order to see all the properties.  
 
Please refer to the editor's Attribute Editor in order to see all the properties.  
  
'''AdvancedPhysicsObject'''
+
 
 +
'''AdvancedPhysicsObject''' <br />
 
A PhysicsObject with more advanced custom logic, such as doors.  
 
A PhysicsObject with more advanced custom logic, such as doors.  
  
'''TieObject'''
 
A TieObject is a PhysicsObject with special logic for collecting ties in game.
 
  
'''TriggerObject'''
+
'''TriggerObject''' <br />
 
The foundation of game logic in the game.
 
The foundation of game logic in the game.
 
Start Condition
 
Start Condition
Line 73: Line 81:
 
11~20  - One of the objects in this range (11,12,13...20) must be colliding for condition met.
 
11~20  - One of the objects in this range (11,12,13...20) must be colliding for condition met.
 
This logic and syntax is the same for trigger start expression.
 
This logic and syntax is the same for trigger start expression.
Triggers additionally can:  
+
Triggers additionally can:  
 
ApplyEventPerObject - Some trigger end events can apply per PhysicsObject that makes the condition true, such as SetObjectProperty.
 
ApplyEventPerObject - Some trigger end events can apply per PhysicsObject that makes the condition true, such as SetObjectProperty.
 
Will automatically override default ObjectID if checked.
 
Will automatically override default ObjectID if checked.
Line 86: Line 94:
 
SetObjectProperty turning an object visible could automatically turn it back invisible on unmet if checked.  
 
SetObjectProperty turning an object visible could automatically turn it back invisible on unmet if checked.  
  
'''TriggerEventObject'''
+
 
 +
'''TriggerEventObject''' <br />
 
Ability to parent additional events on a trigger for a longer sequence.
 
Ability to parent additional events on a trigger for a longer sequence.
 
They are separate objects for greater visibility.
 
They are separate objects for greater visibility.
Line 95: Line 104:
 
ApplyEventPerObject - Lets you apply the event per object if applicable.
 
ApplyEventPerObject - Lets you apply the event per object if applicable.
  
'''ConditionalTriggerObject'''
+
 
 +
'''ConditionalTriggerObject''' <br />
 
Must be a child of a TriggerObject or CutsceneObject.  
 
Must be a child of a TriggerObject or CutsceneObject.  
 
Used for branching or optional trigger event lists.
 
Used for branching or optional trigger event lists.
Line 101: Line 111:
 
TimeSpan: The range in seconds that the conditional trigger will check its trigger conditions.
 
TimeSpan: The range in seconds that the conditional trigger will check its trigger conditions.
  
'''ParticleObject'''
+
 
 +
'''ParticleObject''' <br />
 
Creates a particle emitter.
 
Creates a particle emitter.
 
Refer to Attributes Editor for definitions.
 
Refer to Attributes Editor for definitions.
 +
  
 
'''SoundObject'''
 
'''SoundObject'''
Line 113: Line 125:
 
Update3D - If the sound is set to enable 3D sound in FMOD, this ensures that it's 3D position is sent every update.
 
Update3D - If the sound is set to enable 3D sound in FMOD, this ensures that it's 3D position is sent every update.
  
'''CutsceneObject'''
+
 
 +
'''CutsceneObject''' <br />
 
Parent a list of TriggerEndEvents in order to have a sequence of events occur, such as an animated cutscene.
 
Parent a list of TriggerEndEvents in order to have a sequence of events occur, such as an animated cutscene.
 
Is triggered through trigger end event: Run Trigger Event.
 
Is triggered through trigger end event: Run Trigger Event.
  
'''CameraVolumeTrigger'''
+
 
 +
'''CameraVolumeTrigger''' <br />
 
A light version of TriggerObject specifically for collision-based zone cameras.
 
A light version of TriggerObject specifically for collision-based zone cameras.
 
Helps differentiate itself from other triggers.
 
Helps differentiate itself from other triggers.
 
You almost always want to leave UndoOnTriggerRevert to True.  
 
You almost always want to leave UndoOnTriggerRevert to True.  
  
'''CameraObject'''
+
 
 +
'''CameraObject''' <br />
 
The main object for defining cameras in game.
 
The main object for defining cameras in game.
 
Can choose between different modes:
 
Can choose between different modes:
Line 134: Line 149:
 
Spline - Uses children spline objects to create a complex camera movement based on Octodad's position.  
 
Spline - Uses children spline objects to create a complex camera movement based on Octodad's position.  
  
'''CameraPathObject'''
+
 
 +
'''CameraPathObject''' <br />
 
Measures Octodad's progress along a path using these objects to define the points.
 
Measures Octodad's progress along a path using these objects to define the points.
 
Automatically generates a spline  
 
Automatically generates a spline  
 
Finds closest point along the path for progress.
 
Finds closest point along the path for progress.
  
'''CameraSplineObject'''
+
 
 +
'''CameraSplineObject''' <br />
 
Generates a curved path for the spline camera based on the positions of each object.
 
Generates a curved path for the spline camera based on the positions of each object.
 
Automatically generates a spline  
 
Automatically generates a spline  
 
Maps the time value to the progress value of the associated camera path.
 
Maps the time value to the progress value of the associated camera path.
  
'''CharacterObject'''
+
 
 +
'''CharacterObject''' <br />
 
An advanced PhysicsObject with support for character movement between WaypointObjects and with state-based animation.
 
An advanced PhysicsObject with support for character movement between WaypointObjects and with state-based animation.
  
'''WaypointObject'''
+
 
 +
'''WaypointObject''' <br />
 
Places where CharacterObjects will idly walk between.  
 
Places where CharacterObjects will idly walk between.  
  
'''WaterObject'''
+
 
 +
'''WaterObject''' <br />
 
Default defines a water plane with reflection and refraction
 
Default defines a water plane with reflection and refraction
 
Can disable these for better performance.
 
Can disable these for better performance.
 
Can optionally override with a different mesh, such as a cylinder volume.
 
Can optionally override with a different mesh, such as a cylinder volume.
  
'''VolumeLightObject'''
+
 
 +
'''VolumeLightObject''' <br />
 
Creates godray light volumes.
 
Creates godray light volumes.
 +
 +
 +
== Currently Unsupported in Steam Workshop Levels ==
 +
 +
'''TieObject''' <br />
 +
A TieObject is a PhysicsObject with special logic for collecting ties in game.

Latest revision as of 18:24, 24 December 2013

EmptySceneNode
Basic scenenode with no additional properties. Use for organization within a scene. (Ex: Placing all wall objects under "Architecture")


SubLevelObject
Loads another level externally into a main level. Use to separate larger levels into separate workspaces so multiple designers can work on them. Use for compound objects, such as a grocery store shelf you want repeated everywhere.


InstancedObject
Creates a duplicate of an item at runtime. Use this anytime you want EXACTLY the same object, such as a stack of identical cheeses on a table. Objects CAN have their own unique position, scale, and rotation.


JointObject
Creates a physics joint between two PhysicsObjects, by referring to their child MarkerObjects.


MarkerObject
Parented to another object to describe a specific point on the parent. Use 1: Marks the points on an object where a JointObject can joint two PhysicsObjects together.


DataBindingObject
Copies a property from one object to the property of another. Always us to define generic relations in editor. Keep values in sync, such as having a spotlight always target an object's position Source Object: Mouse Source Property: Position Destination Object: Spotlight Destination Property: Target


VariableObject
Holds a variable that can be queried and altered by triggers.


LevelInfo
Defines the properties of the level: # of lights per object, shadow direction, ambient cube texture, music property. The object's position and rotation defines Octodad spawn position and rotation Sublevel LevelInfos are ignored when run inside a larger level.


CheckpointObject
Describes the checkpoint attributes when saving out the level as a checkpoint.


Objective
Completable objective that hooks into the UI.


PhysicsObject
The standard object for creating 3D objects in editor. Can exist as a mesh without physics or a physics body without a mesh (collision volumes) Object transformation is based on their parents transformation (position/rotation/scale). You can ignore these properties by selecting "IgnoreParentTranslate", etc. Object visibility is generally based on parent visibility. Please refer to the editor's Attribute Editor in order to see all the properties.


AdvancedPhysicsObject
A PhysicsObject with more advanced custom logic, such as doors.


TriggerObject
The foundation of game logic in the game. Start Condition You can define triggers to not seek their trigger condition (ie; check collide with Octodad) if other preconditions have not been met by other triggers. For instance, typing 24 & 13 in TriggerStartExpression means that both 24 & 13 triggers must have their condition met in order for this trigger to even start checking its condition. Trigger Condition The condition to which this trigger is "condition met". A "condition met" trigger shows up in debug editor as green, whereas "condition unmet" is red. Example conditions include "On Octodad Collide", or "On PhysicsObject Collide". For PhysicsObject collide, you can use expressions to define more than one object. 11 & 12 & 13 - All 3 objects must be colliding with the trigger for condition met. 11 | 12 | 13 - One of the 3 objects must be colliding for condition met. (11 | 12) & 13 - Object 13 and either 11 or 12 must be colliding for condition met. 11-20 - All objects 11 through 20 (11,12,13...20) must be colliding for condition met. 11~20 - One of the objects in this range (11,12,13...20) must be colliding for condition met. This logic and syntax is the same for trigger start expression. Triggers additionally can: ApplyEventPerObject - Some trigger end events can apply per PhysicsObject that makes the condition true, such as SetObjectProperty. Will automatically override default ObjectID if checked. OnceCondMetAlwaysMet - The trigger will be set to condition met true (green) indefinitely if it passes at any time. For instance, Octodad hitting a trigger to open a door, you do not want it to trigger again or it would replay opening the door. DelayTimerSeconds - Requires the trigger condition met to be true for this amount of time before going green (condition met). Use this if you want Octodad to stand inside a trigger for 10 seconds to be true. Can Reset the timer if unmet. Otherwise, it will default accumulate over time. For instance, Octodad steps outside the trigger after 5 seconds, it'll continue to count from 5 seconds when you go back in. ModeCondition - Requires Octodad to be in Arms or Legs mode before true. UndoOnTriggerRevert - Some end events allow a reversal event if the trigger goes unmet. SetObjectProperty turning an object visible could automatically turn it back invisible on unmet if checked.


TriggerEventObject
Ability to parent additional events on a trigger for a longer sequence. They are separate objects for greater visibility. MUST BE PARENTED DIRECTLY TO TRIGGEROBJECT TO WORK Responsible for the resulting actions of triggers. SetObjectProperty, Change Octodad Controls, End Level, Play a Sound, Set Camera EventDelay - Allows you to time the event for a better sequence of events (like cutscenes). ApplyEventPerObject - Lets you apply the event per object if applicable.


ConditionalTriggerObject
Must be a child of a TriggerObject or CutsceneObject. Used for branching or optional trigger event lists. Will trigger its children events if true. Can optionally break remaining trigger event siblings. TimeSpan: The range in seconds that the conditional trigger will check its trigger conditions.


ParticleObject
Creates a particle emitter. Refer to Attributes Editor for definitions.


SoundObject Object used for playing sounds. Requires FMOD event name. Contains random looping range logic. Ability to trigger a sound based on a trigger. Highly recommend using triggers to trigger sound, rather than SoundObjects watch triggers. (Will probably remove this in the future.) Update3D - If the sound is set to enable 3D sound in FMOD, this ensures that it's 3D position is sent every update.


CutsceneObject
Parent a list of TriggerEndEvents in order to have a sequence of events occur, such as an animated cutscene. Is triggered through trigger end event: Run Trigger Event.


CameraVolumeTrigger
A light version of TriggerObject specifically for collision-based zone cameras. Helps differentiate itself from other triggers. You almost always want to leave UndoOnTriggerRevert to True.


CameraObject
The main object for defining cameras in game. Can choose between different modes: Target Default - Uses camera object rotation Octodad - Targets Octodad Object - Targets a specific object Position Stationary - Uses camera object position FixedAngle - Maintains the same angle from the target, at a set distance. Spline - Uses children spline objects to create a complex camera movement based on Octodad's position.


CameraPathObject
Measures Octodad's progress along a path using these objects to define the points. Automatically generates a spline Finds closest point along the path for progress.


CameraSplineObject
Generates a curved path for the spline camera based on the positions of each object. Automatically generates a spline Maps the time value to the progress value of the associated camera path.


CharacterObject
An advanced PhysicsObject with support for character movement between WaypointObjects and with state-based animation.


WaypointObject
Places where CharacterObjects will idly walk between.


WaterObject
Default defines a water plane with reflection and refraction Can disable these for better performance. Can optionally override with a different mesh, such as a cylinder volume.


VolumeLightObject
Creates godray light volumes.


Currently Unsupported in Steam Workshop Levels

TieObject
A TieObject is a PhysicsObject with special logic for collecting ties in game.