Scene Tree Editing
- Scene Tree UI
- Create Nodes
- Manage Nodes
- Locking UI Elements
- Bitmap Preview
- Flipped Bitmaps
- Pivot Hint
- Including Solution Items in Scene Explorer
- Isolated Editing
- Usage and Dependencies
- Locking/Unlocking the Properties Panel
Scene Tree UI
This section explains the User Interface of the Scene Tree panel.
| No. | Name | Description |
| 1 | Navigation button |
This button is enabled when multiple scenes are displayed. The button has a back (left arrow) and forward (right arrow) function. |
| 2 | Lock button |
This button is enabled when a node is selected in the scene tree. Pressing the button locks the selected node. For details, please refer to here. When a lock is set, the lock icon is displayed. The child node icons will be displayed in grey. |
| 3 | Rendering button |
This button is enabled when a node is selected in the scene tree. This button is used to set whether or not the node will be rendered at design-time and run-time. If rendering is disabled, child nodes will also not be rendered. If rendering is disabled, the rendering disabled icon will be displayed. |
| 4 | Transparency |
This function is enabled when a node is selected in the scene tree. This sets the local alpha transparency (Alpha Value) of the selected node. The effective alpha value is combined with the material alpha value of the node. |
| 5 | Search field | Searches for items in the scene tree and extra scene tree. Nodes containing the input keywords are highlighted. |
| 6 | Scene tree | The nodes that make up the scene displayed in the Scene Editor panel are displayed in a tree. |
| 7 | Extra scene tree | The behaviour set for the selected node is displayed here. |
| 8 | Rendering disabled icon |
If rendering is disabled using Rendering button, the rendering disabled icon will be displayed. |
| 9 | Lock icon | If the node is locked using Lock button, a lock icon will be displayed. If the locked node has child nodes, these will also be displayed with a lock icon (greyed out). |
| 10 | Annotation |
The status of each node is displayed using four-colour icons.
|
| 11 | Fusion | Displays the Fusion panel for the node currently selected in the scene tree. |
Create Nodes
Create Nodes from Toolbox
Drag an item from the Toolbox and drop it
- either into the Scene Tree to sort the node properly into the scene graph
- or directly into the render view of the Scene Editor to create the node on a specific display coordinate.
When adding a node to the scene tree, note the following:
- The new node will be created as the last child of the node on which the node is dropped.
- To modify the scene tree structure, hold the "Ctrl" key while moving the node along the scene tree to the desired position. The dragged node will be positioned below the node it was dropped on.
- Moving a node along the scene tree without keeping the "Ctrl" key pressed will move the selected node inside the node it was dropped on.
Create Nodes from Imports
Drag an item from a user-defined import (a template scene node) and drop it to Scene Editor or Scene Tree.
Scene Editor: Drop the template scene node in the Scene Editor to create an instance of this node at the given location. The new scene node will be created at the top level of the scene graph.
Scene Tree: As an alternative, the template scene node from Imports can also be dropped to the Scene Tree. This way it is possible to hierarchically sort the new node into the scene graph.
-
Bitmaps from Imports can only be dropped on an already existing RenderNode or BitmapNode. In this case, a BitmapBrushAlphaBlend effect will be created on that node referencing the given bitmap.
When adding a node to the scene tree, note the following:
- The new node will be created as the last child of the node on which the node is dropped.
- To modify the scene tree structure, hold the "Ctrl" key while moving the node along the scene tree to the desired position.
- Moving a node along the scene tree without keeping the "Ctrl" key pressed will move the selected node inside the node it was dropped on.
Properties of Nodes Created from Imports
All node properties of a selected node are displayed in "Properties" panel.
For nodes created from imports, additional properties are available:
- Import Path: Specifies the path to the imported artifact that serves as the source
- Status:
> OK: Template exists and type matches
> New: Parent instance item is linked to a template which was modified by adding new children
> Missing: Template item cannot be found
Manage Nodes
Copy, Move Scene Nodes
Scene nodes are all the items which form a scene. They can be toolbox scene nodes or template scene nodes created from the "Imports" panel.
Sometimes during solution creation one scene needs to be split into more separate scenes, or many elements from different scenes need to be combined to keep the Solution clean and manageable. Instead of creating the nodes again they could be copy-pasted in as many other scenes as necessary.
First, right-click on the desired node in the Scene Tree and from the contextual menu select "Copy".
Second, switch to the desired scene and right-click on the main node in the Scene Tree. Then select the Paste option. The desired element will be copied into the selected scene.
Another similar possibility is to get the desired nodes by using Cut option and to paste them into the new scene. The usual combos are available: Ctrl + c for Copy, Ctrl + x for Cut and Ctrl + v for Paste.
Upon copy/cut/paste operations, the SceneComposer will allow any operation and display a set of errors/warnings depending on the raised violations (e.g. missing references, bad paths and so forth).
-
It is possible to select and to cut/copy/paste two or more Nodes only if they are at the same level in the scene hierarchy. By using Ctrl + C shortcut it is possible to copy the path of any selected object together with all the properties to the clipboard. The path can be copied directly in the Properties panel.
Clone, Delete, Rename Scene Nodes
Clone
Clone a scene node via the "Clone" context menu. The clone of the item will have the same name as the item, suffixed by a number, and will be placed in the same group or scene.
If there is necessary to realize many clones of the same item, the "Multiple Clone" option should be used. As can be seen in the image below, the user has just to specify the "Base Name" of all the clones and how many copies are needed.
When cloning (or pasting a node) the name of the new node will automatically check if there is already a number at the end of the name. If there is a number this should be increased automatically. For instance, if an existing "Node_1" (or "Node1") is cloned the name of the clone will be "Node_2" (or "Node2") and not "Node_1_1" (or "Node1_1").
-
The duplication of the item names is incremented based on the numeric suffix with our without an _ separator.
To duplicate an item into the selected location hold left shift while drag and dropping an item. Upon dropping a copy of the item will be created in the target location. Currently duplicating as a child of itself is not supported.
Delete
Delete a scene node via the "Delete" context menu.
- If the item is not used anywhere, a simple prompt to confirm the deletion will appear.
- If the item is used in an animation, the "Delete Item" dialog will be open and list the paths of the items from the animation where the scene node is used. The "OK" button is disabled so the scene node cannot be deleted.
Rename
Rename a scene node via the "Rename" context menu.
- Item is not used anywhere; the renaming will take place as the user presses Enter key after editing.
- Item with same name already exists (in the same location); warning message pops up.
Properties of the instance items can also be modified in the user defined scene. Properties that have been changed can be reset to their value in the template item by clicking the "revert" button on the left of the property to be restored.
-
The first change of a property from the value from the template will cause the name of the property and its value to appear in bold in the "Properties" panel of the main view.
Reset Node Structure
Groups which have been created from a template item (an imported scene graph) can be reset to the template structure with the context menu "Reset Structure" on the group:
Deleted or modified group elements will be restored to the default structure.
Multi-Selection and Comparison of Nodes
For multi-selection of nodes, press the Ctrl key while left clicking all the desired elements to select.
When the last desired element is selected the Ctrl key can be released.
Another way is to use one of select options from the Scene Tree context menu for multi-selection:
- Select Leaf Nodes
- Select Children
- Select All Descendants
Examples:
After the multi-selection operation it is possible to copy, move or delete all selected items as desired.
Locking UI Elements
In different circumstances it could be useful to have the possibility to avoid any type of accidental SceneComposer solution modification. SceneComposer offers the locking option to provide the possibility to avoid such unfortunate mistakes.
Locking is available via context menu for all items excepting folders.
To lock a selected item the user has to right click on that item. From the context menu it is possible to select the "Lock" option.
The locking state of the items can be: unlocked or locked (directly or by an ancestor). The item icon is decorated in such a way that it is clearly indicate if it is locked. The properties (including the name) and the structure of locked items cannot be changed using direct means (properties panel, scene tree etc.)
Another way to lock a selected item is to check the "Is Locked" checkbox in Properties.
The re-import of content used by locked items is not possible.
If it is necessary to unlock a sub-item it is possible to use the "Force Unlock" option from the context menu. When the "Force Unlock" option is used not only the sub-item is unlocked, the parent node is unlocked as well.
Generally speaking this feature is a soft lock mechanism. References used by a node can be modified, but not the locked object directly. For instance, if a node which has associated a texture that uses a bitmap is locked, the bitmap still can be modified so, in this way, the locked node can be modified.
Bitmap Preview
Use Bitmap Preview
Whenever a Bitmap is selected - for example from the "Imports" panel, "Scene Tree" panel or "Solution Explorer" panel - a preview of the selected Bitmap is displayed in the "Properties" panel in addition to the specific Bitmap properties.
Image properties in the properties panel also show a preview of the image as a tooltip when they are hovered over with the mouse.
Flipped Bitmaps
The platform definition has been extended and defined via meta-info if the bitmaps shall be flipped or not for 2D and 3D. Each bitmap written into the asset specifies the info if flipped or not (the new attribute) SceneComposer writes the bitmap data in the flipped or not flipped data format depending on the platform's specification.
A new property (Origin) is available for bitmaps to configure the layout of the pixels in the asset.
If the option PlatformDependent is selected, the following verifications will be performed:
- Bitmap is used only in 2D content, the platform setting for the 2D engine will be used;
- Bitmap is used in 3D content, the platform setting for the 3D engine will be used;
- otherwise the imported content will be exported without any flipping.
Pivot Hint
Pivot Hint is a property of a Bitmap which allows to set the coordinates of a point that will be used as default Pivot Point for the RenderNode that uses the Bitmap.
The example hereafter presents the situation of replacing the Hour Needle Image on an AnalogClock control with a bitmap having or not having set the Pivot Hint.
Including Solution Items in Scene Explorer
Creation
Solution items can be added in the Scene Explorer via copy-paste or drag-and-drop.
The image below exemplify the adding (by drag-and-drop) the Text Control into the Solution Explorer:
-
When the solution items are copied in Scene Explorer the class is copied, not the instance.
After adding the solution item (Text control, in our case) in the Solution Explorer the newly created copy is shown in the destination folder (1) from Solution Explorer and also in the Controls panel in the Category Common (2). Also, in the case of the controls and behavior building blocks, the solution item becomes active (3) and its content is shown in the Scene Tree.
Following solutions items support this feature:
- controls
- behavior building blocks
- templates
- shader fragments
- shader programs
- render targets
Usage
Once the solution item is copied in the Solution Explorer it can be edited and then instantiated in the Scene Tree. As exemplification, the Category property was changed to "MyControls" and the control TextNode2D properties were changed to show a different text and color:
Isolated Editing
For a graphic designer or a technical artist, sometimes it is very useful to have the possibility to shape a single graphic object without seeing the whole scene context. For instance, the designer needs to switch to a special context where only one object (e.g. car) is visible and can be edited. To address this need, SceneComposer allows to edit a single object within the regarding scene hiding all other rendered elements and temporary set the edited object in the view center.
To use this feature, in SceneTree having multiple objects selected, right click > Isolated Edit - this will enter in a special Single Editing Mode, where a scope is applied to the selection.
Another possibility to enter in a special Single Editing Mode is to use the "Isolated Edit" button which is placed in the Toolbar near the "Active Rendering" button.
All objects will be rendered with the built-in scope. Turning off this mode can be realized from the toolbar, this mode being highlighted. In this way more complex scenarios can be applied.
If you refresh the current scene or switch to another scene, the isolated edit mode will be automatically turned off.
Usage and Dependencies
Find Usage & Dependencies
Use this feature by opening a SceneComposer solution to activate and select the Graph Dependencies panel.
- Activate the panel by selecting "View" > "Editors" > "Graph Dependencies".
- The graph panel represents in a visual form the nodes and the connections that unify them.
The edges that link the nodes show the dependencies that exist among the items. The layout graph panel can be docked in SceneComposer.
-
By using the "Export" button the user is allowed to export the "Dependency Graph" as an .xml file with nodes based on items types and names.
After the Graph Dependencies panel is selected, right-click on the scene and select "Dependencies" or "References" from the context menu (see below).
If the "Dependencies" option is selected, the graph will become visible inside the Graph Dependencies panel. If the "References" option is selected, the current selected scene will become visible inside the Graph Dependencies panel. When the current selected scene is pressed, two option are displayed as two buttons near the selected scene icon: "Show the dependencies of this node" and "Show the references where this object is used".
On the left side of the panel there is a cursor, which allows to establish the dimensions of the graph. There are several different possibilities to set the dimensions of the graph:
- By using the 1:1 button (the graph will have an optimal dimension)
- By using the "Fill" button (the graph will fill the whole panel)
- By using the cursor (the dimensions should be set in a range between 0 and 100.00)
- By using the combo Ctrl + Mouse Wheel
At the same time, there are some combinations that can be seen in the next figure:
On the top side of the Graph Dependencies panel there are some other possible options. First, it is possible to select the desired layout type of the graph by using the "Pick Layout Type" list. There are several different algorithms to display the graph:
- Bounded FR
- Circular
- Compound FDP
- Efficient Sugiyama
- ISOM
- KK
- Lin Long
- Tree
The most common one from all these graph types is the Efficient Sugiyama.
- Animations
- Bitmaps
- Controls 3D
- Controls 2D
- Display
- Scene 3D
- Scene 2D
- Shaders
- Shader Programs
- Vertex Buffers
By left-clicking on a node in the graph two buttons will appear in the right corner:
- "Show references" which will display the usage of an item in a graph with navigation and scene tree synchronization
- "Show all dependencies" which will display all the dependencies of an item in a graph
Another given possibility is to move the graph in the Graph Dependencies panel. For example, if the "Scene" category is selected, you will be able to see the relationships between the main scene and all the scenes associated with those imported .fbx that are used in the main scene.
It is possible to select and to move the whole graph; to do this, just left click somewhere near the graph and hold down the left button of the mouse. On this way, it is possible to move the entire graph in any desired place inside the panel. If just one of the scenes is selected by clicking on it, it will be possible to move just that element.
-
When a category with many elements is filtered by using the specific menu list, the graph will not be centered and the only visible elements can be some peripheral parts of the tree.
To center the graph, first, the "Fill" button has to be used. After this, the "1:1" button will center the graph instantly. Last but not least, even though the filter category is used to show a specific category, it is possible to choose one or many elements that do not pertain to that category to be shown. To obtain this effect let's suppose that the Scene category was previously selected. By right-clicking on any scene displayed in the graph, there is a "Pinned" option available in the context menu.
In the case of the main scene, these "Pinned" option is enabled. For any other secondary scene this option is disabled. If this option is enabled, the graph will display all the elements of that category, plus the "pinned" elements from the previous category.
Activation of Items Referenced
If necessary, it is possible to activate items referenced through paths. The Activate button will load the item in the property grid and in others panels linked to the type of the item.
This feature is available for any referenced item as can be seen in the examples below.
For a TextStyle referenced by a text node:
For a Bitmap referenced by a bitmap node:
For a Render target referenced by a camera:
Locking/Unlocking the Properties Panel
Some behaviors like e.g. the ForwardValue behavior have a property TargetNode. The appropriate TargetNode can be assigned by pressing the respective icon button, which will open the "Choose Item" dialog as shown in a Behavior example.
There is an alternative - possibly more comfortable - way to configure the TargetNode via drag & drop.
Like various DCC tools and Game Development Platforms, Scene Composer employs a locking and unlocking method for the Properties panel to significantly enhance the workflow efficiency for designers.
This method the user to lock the properties panel on the top right side of the property panel and move SCItems via drag and drop into the property fields. The value that is being copied into the fields is the path (if the field requires it) or the name of the item.
How to use the Locking/Unlocking method
- Select the target node from the scene tree, and then select the behavior displayed in the extra scene tree.
- Click the Lock button in the upper right of the properties panel for the selected behavior to lock the properties panel.
- While locked, the properties of the object selected when locking will be displayed and maintained.
- While locked, the properties of the object selected when locking will be displayed and maintained.
- In the scene tree, select the node you want to set as the TargetNode, and drag and drop it onto the [TargetNode] in the Properties window, where it will be displayed in step 2.
- Click the Lock button in the top right of the Properties panel again to unlock the Properties panel.
Limitation: Drag&drop to Properties panel doesn't work for external (windows) files.