The Reality Action Builder application is used for designing the control interfaces and the actions being triggered with animations. It is a WYSIWYG editor, which runs while connected to the Reality Processing Engine over the network.

Starting Action Builder

When you launch the Reality Control application, press F6 key to run Reality Action Builder. Then, Action Builder will launch as a separate tab. After selecting the set that we want to work on, we will click the BUILDER button and the Action Builder application will start. 

When the Action Builder is started, it tries to connect to all of the servers defined in the configuration file. If there is no previous action built for the selected set, the Action Builder will come with a blank window. 

Alternatively, you can start Action Builder also using its desktop icon, but when started from “Reality Launcher”, project management creates the “.raction” files.

Action Builder Interface

Action Builder is composed of 4 main panels:

  1. List of Action Files: List of Action “.raction” files for the current set.

  2. Action Interface Preview: Preview Window for Action Control Interface.

  3. List of Actions: Action groups and Actions show here.

  4. Action Properties: The properties of selected Action is/are shown here.

Creating an Action Control File

Clicking on the CREATE button will bring a popup window, and we need to name our action control interface.

This will create a new action file (“.raction”) under R:\Reality\Sets\SETNAME\ACTIONS1.raction. Also, a “RootPanel” under this file is automatically created, which brings the middle window for previewing our interface.

Modifying Root Panel

Clicking on the “RootPanel” brings the panel properties. This is our main windows properties, we can change its docking options, colors, etc.

For example, you can change its background color as blue, by changing the property Appearance > Background > B to “1.0”.

Every “.raction” file must have a RootPanel.

Layout Panels

You may optionally create other types of layout panels by right-clicking the “RootPanel”.

  • Dock Panel: Positions child content along the edge of a layout container.

  • Stack Panel: Stacks child elements horizontally or vertically.

  • Uniform Grid: The Grid element is used to precisely position content in rows and columns.

These Layout panel types are directly exposed WPF Container Controls. For more information, you can check:

First create a “Dock Panel”, since it is the more generic container for most of the user interfaces.

Action Groups

The Action Groups can hold multiple “Actions” and “Properties”. This gives you a great way to organize your buttons and properties on your controller screens.

Creating an Action Group

Right click on the “DockPanel” and Create > Action Group. This will create an Action Group container inside our Dock Panel.

The Action Groups can hold “Actions” and “Properties”. Left clicking the Action Group brings its properties, where we can rename, change alignment, appearance settings.

Changing the Name of the Action Group

We will most probably rename our Action Group instead of the default incremented “ActionGroup” name. Just edit the NAME  property under the OBJECT category.

We will see that both the Object name and the display inside the Dock Panel have changed. By default, the name of the “ActionGroup” is also used as its display name.

Changing the Title of the Action Group

There is another Display Name property TITLE under TITLE category. We may write very long or using any world language including non-Latin alphabets like Arabic, Chinese or Japanese. Basically, the supported languages depend on your Windows version.

You can also choose the alignment mode using the TITLE ALIGNMENT property.

Changing the Alignment of the Action Group

Under the “Alignment” category, you can choose the horizontal/vertical alignment modes of the Action Group, margins, padding, and the Docking options.

Changing the Appearance of the Action Group

You have the cosmetic properties of the Action Group under the APPEARANCE category. You can change background color, border thickness, border color, and the corner radius of the Action Group.

Setting the Options for Properties in an Action Group

Action Groups can contain properties. You can choose to “show” or “hide” these properties or even the categories they are belonging to. You can also choose where the properties of the Action Groups are going to be displayed.

Setting the Options for Actions in an Action Group

Most importantly, your Action Group will contain a few Action Buttons. You can choose the orientation and horizontal/vertical alignment of these buttons.

Creating Action Buttons

After creating an Action Group, we are ready to create an “Action Button” under this group. This button can call a node function from our node graph or set a property of a node.

Creating an Action Button

Right-click on the Action Group we created, and click Create > Action button.

This will create an “Action Button” inside the “Action Group”, which is automatically named incrementally as “Action”, “Action1” …

Renaming an Action Button

Selecting the “Action” using the top right window is going to bring the “Action Button” properties. Just type “myActionButton” as the new name inside Name under “Object” category.

It is a good idea to limit the characters used for naming to letters, numbers and underscore. Think of them as function names in a programming language. If you need some special characters or any other language than standard ASCII characters, you can use the DISPLAY NAME property. Reality Action Builder automatically legalizes the names, but still watch your naming.

Changing the Color of the Action Button

You can set the BACKGROUND property under the APPEARANCE category in order to change the button color.

Changing the Display Name of the Action Button

If you need to give a longer name using non-Latin characters or any other special characters, you can change the DISPLAY NAME property under ACTION category.

Asking for Confirmation

If you want the Control operator to confirm an “Action” before proceeding with it. You can set the NEEDS CONFIRMATION property to TRUE .

Every time the button is clicked, it will pop up a window and ask the user to confirm this action.

Tasks of Action Buttons

We can assign different types of tasks to an “Action Button”.

  • Set Node Property: Reality Processing Engine nodes usually have properties, and we can set or animate the values of a property using this task type.

  • Call Node Function: Some of the Reality Processing Engine nodes have callable functions, this task type lets us call those functions.

  • Select Node: This is used for external input control for the nodes accepting this control mode.

An “Action Button” can execute several tasks in order, at the given time and duration. This lets you combine several tasks into one-button control.

Animating a Node Property

Setup a simple node graph by adding a Virtual Camera. In the example setup, we create a camera node CAMERA_0.

We will animate the position of this camera using Action Builder. Create an Action Group named “Camera_Control” and then add an action button named “Go_Back” into this group.

This will look like this in the main Action Builder interface:

Then add a “SetNodeProperty” task to “Go_Back” action.

Enter the following values to “SetNodePropertyTask”:

  • Start Time: 0.0

  • Duration: 5.0

  • Interpolation: “EaseInOut”

  • Node: “Camera_0”

  • Property: “LocalTransform”

  • Value Type: Constant

  • Value: X = -500.0 and Z = 100.0

This will move the CAMERA_0 node to “X = -500.0” and “Z = 100.0” position, in 5.0 second duration. Now we add a “Go_Front” action, under the “Camera_Control” Action Group.

Add a “SetNodeProperty” task to this action.

Enter these values to the task “SetNodePropertyTask_1”:

This will move the CAMERA_0 node to “X = -300.0” position in 1.0 seconds.

You can also rename the “Set Node Property” and “Call Node Function” tasks, by editing their NAME properties.

Assigning Multiple Tasks to an Action

We can assign multiple tasks to one Action button. Select the “Camera_Control” action group and create another Action Button, then rename it to “Go_Up_Down”. We will now create an action that will first move the camera up, then down.

This action will have 2 tasks. The first one is going to move the camera up to 200 centimeters in a 2-second DURATION, and a START TIME of 0 seconds.

The second task is going to move the camera down again to 100 centimeters in a 1-second DURATION, starting at 2 second START TIME.

By calling multiple tasks at different time offsets, you can create complex animations.

Animation Interpolation Types

The INTERPOLATION property can have the following types:

  • Jump: Changes the value instantly.

  • Linear: Animated value changes with the same increments every frame.

  • Ease in: Value starts to change slowly at the beginning, but tends to change to linear interpolation at the end.

  • Ease out: Value starts to change linearly at the beginning, but slows down at the end.

  • Ease in-out: Value starts to change slowly, accelerate in the middle and slow down at the end.