Scene Object Types

From Octodad Workshop
Revision as of 18:24, 24 December 2013 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.