Topics Covered
This user manual covers creation of entities (objects, avatars) and assets (prefabs) in the Visual3D toolset, including setup of new entity type presets, placement of models into the scene, and creation of prefab assets.
Updated.
You can find related topics in the Scripting & Gameplay User Manual and Mission Editing & Scripting tutorial sequence, as well as the Programming and Asset Creation user manuals.
Any animation that is imported from a model or added (such as by right clicking on an Entity > Add New > Animation or added through the Entity Editor or Model Editor) will have a Trigger with the same name created for it automatically. You can rename animations to change what the trigger name and key mapping name it is played from, though you may need to ensure the Animation.Animation Definition.EventName property is renamed as well. So, for example, if an animation is named MoveForward (and has its Animation Definition.Event Name property as MoveForward as well), then it will be played for as long as the W key is held down (as its mapped to MoveForward entry in the Global Key Map).
You can edit the key mapping by going to Short Cuts in menubar > Key Map or clicking on the (Global) Key Map in World Explorer and using Object Editor edit key map entries or add new ones). Also, you can assign a different key map to an entity by going to the "..." button for the Input Controller.Key Map in the User Controls category in Object Editor and using the Asset Selector dialog to choose what key map should be used instead of the Global/Default Key Map.

Creating Entity Triggers for Events and Key Mappings
Entity Triggers represent the basic mechansism for toolset-based scripting and wiring up of entity states with actions, events, abilities, cinematics, sounds, animations, and the other building blocks of a game or simulation.
Creating Entity Triggers for States, Events and Key Mappings
You create a new Trigger on an Entity by drag-drop an event from Asset Explorer onto an Entity to create a new Trigger (under Triggers folder shown when that entity is expanded in World Explorer or Asset Explorer). You can then enter a name for that trigger and drag-drop actions (or behaviors or abilities) onto that trigger.
You can also drag-drop an Event onto an existing Trigger to cause that Trigger (which is also known as an Entity State or Entity Action) to be activated whenever the event occurs (which can be controlled by editing the events parameters in Object Editor). The Activated trigger occurs automatically when the Entity is activated, such as when the scene is loaded or when it gets added to a live scene.
And, you can create Triggers for Key Mappings by right clicking on an Entity (in World Explorer for entity instances in a scene, or in Asset Explorer if editing a prefab) and select Add New > Trigger (or similar named context menu option) to create a new Trigger, and then enter a new name for the trigger (after creating it or after right click >Rename or by editing its Name property in Object Editor).
On trigger, you can drag other actions what you want to execute. They can be combined in parallel and sequentially sequents.
Editing Entity Prefab's Triggers in Asset Explorer

Editing Triggers for Scene Entities in World Explorer
Editing Event and Action Parameters in Object Editor
Wiring up Actions, Scripts, Motion, Animation, and Abilities to Entity Triggers
You can drag-drop any Action (or Behavior or Ability) from Asset Explorer onto an Action, or right click on the Action (or Trigger) and select from the Add Instance > context menu (or Add Asset... for the asset selector dialog) the action it should trigger. You can select what action (or behavior or ability) you want to add to it via any of those methods, choosing from the same set of action/ability/behavior preset folders you see in Asset Explorer. You can add your own action presets for quick reuse and add your own PythonActions (for Python code snippets) there, and even create your own ActionBase derived classes in your world's C# project which will show up in the Actions folder automatically when you compile them with Visual Studio. A few actions that are commonly Triggered for Entity Actions (which are also known as Entity Triggers or Entity States) include:
- Motion (or Translate or Turn or Rotate)
- TriggerBehaviorSystem
- Animate
- PlaySound
- PlayCinematic
- PythonAction
Any trigger you create can be shown be triggered via scripting, such as by triggering dropping TriggerBehaviorSystem or Animate onto another trigger on the the same entity (into a Behavior Tree Editor or onto a different entity, if you set the Target or Owner property of that action to the specific entity you want the action triggered on).
Triggers will be shown under Actions, Triggers, or Animations folders when an Entity is expanded in World Explorer or Asset Explorer as well as under the Components category in Object Editor (mixed together with Abilities and other components). However, soon these will all be shown together in a single Actions folder and Actions category in Object Editor, together with "Add Action" button and context menu option. You can also use the Entity Editor (Entities > Entity tab, shown when double clicking an Entity prefab in Asset Explorer) and, and in some cases Model Editor (Entities > Model tab) to edit, test and add to the Entity States (Actions, Triggers, and Animations) defined for an entity prefab. More documentation, including tutorials and videos, is coming soon on how to use this.
Hooking up events, actions, and Python (or C#, or VB, etc.) scripts to Triggers is covered in more detail in the Event Triggered Scripts & Actions tutorial. This shows how to use a PythonAction script to trigger a cinematic, as an example, though you can trigger cinematics more easily by using the PlayCinematic action, which, like other edits, has parameters easily and visually edited through the Object Editor without any need for coding.
Creating Custom Actions, Behaviors, and Entity Classes
- Creating a Action Script with C#
- Triggering Cinematic on SceneLoad Event with IronPython Action Script
- Actions and Behaviors: Basic Building Blocks for Scripts
- Creating Entity, Component and Plugin Classes in C# with Visual Studio - This section of the scripting / programming guide provides an overview of the extensibility for Visual3D All-in-One Development Tool editors as well as creating your own component classes ranging from entities and scenarios to lower-level entity abilities, actions, and events, as well as plugin services.
Creating Entity Prefabs and Instances
Creating New Entity Types (Preset/Prefab Assets) for Models
Create a new Entity (Type/Prefab/Preset) Asset by one of the following methods:
-
Select one of the common Base Types to create an instance (or Derived/Smart Copy) of, for example by:
- Right clicking on folder in Asset Explorer (any under "Entities", "Objects" or for a specific Entity type like Weapons, Items, Avatars, etc.) and select > Add New > Actor (or Avatar, Vehicle, etc.)
- Click on the "+" ("Add/Create New") icon (shown the a "+" symbol icon) in Asset Explorer toolbar, and select the type of asset to be created (which will be added into default group/folder for that asset)
-
Create Copy of Existing Asset
- Right click on an existing Entity Asset in Asset Explorer and select > "Create Derived Copy"
- of an existing Asset an instance of a common "Base Type", which includes
- Avatar (any Entity which can be controlled by user/player or AI), with specialized Avatar types including:
- (Ground) Vehicle
- Aircraft (or Flying Avatar)
- Watercraft (or Ship)
-
Right click on a Model in Asset Explorer and select > Create Actor, and an Actor with that model will be added into the default location (under Objects/ or Entities/ folder)
-
Create Prefab from Object in the Scene
- Right-click on any Object in Scene Editor or World Explorer and select "> Save as Base Asset"
- Or select multiple objects instead of a single one and right click > "Save Objects as Base Assets" (which will create a separate Asset/Prefab for each selected object, and place them all in the same asset folder)
-
Then select the Asset Folder (for the Asset Library/Database, like shown in Asset Explorer) where to place the new asset
- Rename the asset and/or create a new folder if desired here or after it is created
-
where in Asset Explorer to save the new assets to o, and thenor "Save as Base Assets" and then select category (folder) to place it in, find(in Asset Explorer) and select > Add New > Actor (or Avatar, Entity, Vehicle, etc.)
Select Model and Configure Settings For Entity
-
Going to Object Editor tool window after creating the entity (or after selecting the entity, in Asset Explorer if was an Entity Type asset, or from World Explorer if it was an entity instance in the scene, or from drop-down at top of Object Editor if was recently selected) selected to that its properties can be edited in the Object Editor tool window.
-
You can then select (or change) the Model used by the Entity via the Model Selector dialog shown when clicking on the "…" button next to the Model property in Object Editor (found under the "Appearance" or "Visual Object" property category).
-
You can find a model in Asset Explorer or Model Selector dialog by typing part of its name (or folder) into the Search/Filter box shown at the top of it.
-
Alternatively, you can right click on the Entity (eg. in Asset Explorer or World Explorer) and select > Add Asset (or Add Instance) > Models > {Path to model from Project Folder}"
Place an Instance of Entity Type (or Model) Into the Scene
-
Drag-drop an Entity (Object, Avatar, Actor, etc.) Asset or Model from Asset Explorer onto the Scene to create (and place) an "Instance" of it
- You can drag this onto the Scene Editor (viewport) to place it at mouse cursor position as a top-level child (attached to) the Scene (as a child of its "Scene Graph" root node)
- Or you could drag-drop a Model from Asset Explorer onto Scene Editor, which will result in a new Entity being created
- based on the Model's Object Type property, whether it has a Skeleton or not),
-
When a Model is first used/selected (via drag-drop or otherwise) for use by an Entity (Actor scene object), you will see a dialog allowing you to choose what type of Entity it should be (and what type of collision/physics it should have), by selecting its Object Type (eg. Character, Vehicle, Obstacle, Weapon, etc.)
- The default Object Type (Physical Class) is "Obstacle" which will result in an "Object" (aka. Actor) entity type
- Obstacle is a physical/collidable object which, by default, uses a box collision shape and is optimized for static (not moved at runtime) use.
- If the Model has a Skeleton (eg. bones or skeletal animations), then it will default to an Object Type of Character and an Entity Type of Avatar (AvatarBase Entity Class, Avatar SceneObject Class).
- You can change the Object Type from (basic model instance) scene object) and an Object Type of "Obstacle" (making it physical, collidable, but optimized for static
-
You can (or will) be able to select an existing Entity (Type or Base Type) Asset to use for it instead of the default one.it created, usually an Actor (basic "Object" entity or model instance Scene Object) will be created.
Create an Attached Entity Spatially Linked to a Parent Object/Entity
-
You can drag it onto an Entity from Asset Explorer onto a different entity shown in World Explorer (for an instance in the scene) or shown in Asset Explorer or Entity Editor (Entities > Entity tab) for to create a new Entity which is attached as a spatially linked "child" to the existing "parent" Object/Entity
- As a child object, the new entity instance will be moved with (aka. spatially linked to) its parent object, as well as hidden/shown, saved/loaded, grouped (in World/Asset Explorer), and owned by its parent object.
-
Or, you can hold right mouse button down during drag-drop from Asset Explorer onto Scene Editor (viewport) - possibly also onto Entity Editor (Entities > Entity tab) as well - to perform "Advanced Drag Drop".
- Then select "Attach To {Parent Object Name}" from context menu to specify which of one or more objects under the mouse cursor the new entity should be attached as a child to.
(By default, objects aren't attached when drag-dropped over another object, to avoid accidental attachment)
-
Or you can right click on Scene Editor (viewport) or parent Entity/Object (in World Explorer) and select Entity Type to create an instance (added to scene, or attached to parent object/entity) by selecting the entity type from a context menu instead of via drag-drop
- You can select from the "Add New" context (right click) menu for common entity Base Types / Classes found in "Base Types" group in Asset Explorer
- Or you can select from the "Add Instance" context menu (to create an instance of user-defined entity types/prefabs/presets and models)which shows a submenu for each folder in Asset Explorer)for all other Entity assets in Asset Explorer/Library/Database, with a subfolder for each Asset)
-
Or you could drag-drop a Model from Asset Explorer onto Scene Editor,
-
In most places where an Entity (or Actor/SceneObject) can be drag-dropped, you can also drag-drop a Model (from Asset Explorer)
-
If placed into the Scene, the entity instance (aka. Scene Object) can be manipulated (moved, scaled, and rotated) through by dragging it with the mouse (moving the mouse while holding down left, right, and/or middle mouse buttons).
- Different combinations of mouse buttons and the Alt, Shift, and Ctrl modifier keys will result in different manipulations (movement and rotation on different axes and scaling in different dimensions).
- Also the manipulator Widget shown in corner of the Scene Editor (when in Design mode and an object is selected) can be used to move, rotate, and scale it for specific axes or dimensions
- This is covered in more detail in the Scene Design tutorial videos and Keyboard & Mouse Reference Sheet (Keyboard/Mouse/Hotkey) from the Scene Design user manual page.
Common Entity (Base) Types
-
Avatar - General base type for complex entities ranging from user-controlled Players, AI-controlled Enemies, NPCs (eg. with dialogue/trade), Vehicle, (Simulation/RTS) Units, or Creatures (Simulated animals or flocks)
- More specific/specialized Avatar types may include:
- Player (or Character, Soldier, Human/Person, Unit)
- Enemy (eg. with Combat AI)
- NPC (eg. with Dialogue/Conversation, Trade/Inventory, and non-Combat AI)
- Animal (or Creature)
- Animal/Creature Flock (Swarm, Pack, etc. of multiple creatures with related AI)
- (Ground) Vehicle
- Aircraft (or Flying Avatar)
- Watercraft (or Ship, Boat)
-
Weapon
- Equippable Item which can be used for combat to inflict damage.
- More specializes types of Weapons include:
- Missile Launcher (or Projectile Weapon) - such as a Gun, Rocket Launcher, Bow, Cannon, or other Projectile (Launching) / Ranged Weapon
- Melee Weapon - Bladed (Sword, Knife, Cutting/Stabbing), Blunt (Mace, Staff) Weapon for Close-range Combat
-
Equippable Item
- Ranges from Weapons and Armor to Clothing and Apparel/Accessories
-
Missile (or Projectile)
- Projectile object (eg. Missile, Bullet, Arrow) or effect (Gunfire, Laser, etc.) fired from a Gun, Missile Launcher, Bow, or other Ranged/Projectile weapon
-
Trigger Area
- Proximity Sensor used to trigger events, entity/AI state changes, and/or specific actions/behaviors/scripts - often for the entities (players, etc.) which enter into them, sometimes for specific linked entities or the game/mission/area state)
-
or players - or certain types of entities - enter them (are within range), or certain entities enter them, for triggering events, action sequences, entity states, AI behaviors, cinematics, AI/entity/area/mission state changes)
-
Container (or Item Container)
- Object with can contain (or spawn) one or more inventory items (often non-visible while contained) which can be transferred to/from other entities with inventories (eg. Avatars, Containers)