Visual Scripting Overview

Virtuoso Visual Scripting (VVS)

Virtuoso will not be supporting a scripting language and has opted for a more intuitive point and click visual approach using Triggers and Actions.  User's can create interaction behaviours on a region/parcel by assigning actions to triggers to manipulate objects.  Overtime there will be a vast library of action types produced for the game covering rigid body physics, soft body particle physics, transforms, mathematical operations, etc. 

To demonstrate the power and flexibility of this approach a home and dog barking diagram is show below.  This diagram gives a typical intuitive peak into how the visual scripting can be setup in Virtuoso Life.  For example, imagine a point and click onto different objects in the region and assigning actions.  Setup trigger options to determine how these actions are initated.

The tables at the bottom show the objects, actions and triggers supported during the beta roadmap.

 

Object Types

Four different object types will be possible in the game 

OBJECT

Supports all action types accept Mesh, Primitive and Particle.  

Can also be used as a way to group Mesh and Primitive Objects.

MESH OBJECT

Supports complex polygon structures from different source types OBJ, FBX.  Contains up to 5 standard materials supporting physical based shading.

PRIMITIVE OBJECT

Supports very basic shapes Cube, Cylinder and Sphere with a single material (2 shader types) and a color option.

PARTICLE OBJECT

Supports a mesh combined with a particle source.

 

Trigger Types

​A trigger initiates an event in the scene such as a mouse click.  Triggers can be either user or non-user initiated.  An example of a non-user trigger is a timer.

Four types of trigger are supported in game

MOUSE TRIGGER

Triggers on Left, Right and Middle Button Clicks

TIMER TRIGGER

Triggers on time elapsed in seconds with a repeat option.  Time elapsed can be set randomly between and min and max value.

COLLIDER TRIGGER

Used with either a Mesh or a Primitive Object type when the Collision mode is not NONE.

Support three modes. None, Collision and Proximity.

Proximity Mode triggers on enter/exit within a specified area. The proximity does not stop another object from passing through it.

Collision Mode triggers on enter/exit when a Character, Mesh or Primitive's collider touches it.

Action Types

Actions are what give the scene its behaviour. Action types come in all different flavors and sizes depending on the behaviour the user wishes to create.  Actions are kept as generic as possible with properties to taylor their desired usage.  Although its impossible at this time to give a full list of actions which will be supported some are given as an example here.

GENERIC

  • Set - Choose a selected set of properties from another action to apply.

LOCATION

  • LocalTeleport - Move to a new coordinates on the same region.
  • RemoteTeleport - Move to a new coordinates on another region

MATH

  • Operator - Performs standard arithematic operations to another actions property Equal, Add, Sub, Mul, Div, Inc, Dec
  • Interpolate - transition from a start value to an end value.

TRANSFORM

  • Rotate - Rotate a mesh or primitive object type with a generic set of settings covering axis, direction, speed, cycle, swing modes and audio clip attachments.

AUDIO

  • Audio - Used with the Audio Object to configure the audio settings. Covers Continuous and One-Shot modes.  Allows for  min and max volume rolloff distances.

​LIGHT

  • Light - Used with the Light Object to configure the light settings.

SOFT BODIES

  • Particle - Used with the particle object to configure the particle settings.