1. Introduction |
Bt Studio is a standalone Qt application written in C++ that implements the tree layout algorithms proposed by Buchheim, et al. [1] and Walker [2]. The main purpose of Bt Studio is to provide GUI utilities for users to visually edit the behavior tree/forest diagrams as well as their node attributes. These diagram and attribute data can be imported and exported as XML files, which is the file format for Bt Engine to read in when loading a tree/forest in Unity Engine. |
2. File Menu |
File->New->Forest File |
New a forest diagram in a new tab. |
File->New->Tree File |
New a tree diagram in a new tab. |
File->Open->Forest File |
Open a forest XML file from disk in a new tab. |
File->Open->Tree File |
Open a tree XML file from disk in a new tab. |
File->Close |
Close the current tab. |
File->CloseAll |
Close all the tabs. |
File->Save (Ctrl+S) |
Save the forest or tree diagram in the current tab on disk. |
File->SaveAs |
Save the forest or tree diagram in the current tab on disk with a new copy. |
File->SaveAll (Ctrl+Shift+S) |
Save all the forest or tree diagram(s) in all the tab(s) on disk. |
File->Quit |
Quit the Bt Studio application. |
3. Edit Menu |
Edit->Undo (Ctrl+Z) |
Undo one of these operations: NewForest, NewTree, NewSelector, NewSequence, NewParallel, NewDecorator, NewCondition, NewAction, Cut, Paste, or Delete. |
Edit->Redo (Ctrl+Y) |
Redo one of these operations: NewForest, NewTree, NewSelector, NewSequence, NewParallel, NewDecorator, NewCondition, NewAction, Cut, Paste, or Delete. |
Edit->Add->NewForest |
Add a new Forest node to the current selected node as the rightmost child. Only the BehaviorForestRoot node in the forest diagram can be added a new Forest node as a child. |
Edit->Add->NewTree |
Add a new Tree node to the current selected node as the rightmost child. Only the Forest node in the forest diagram can be added a new Tree node as a child. |
Edit->Add->NewSelector |
Add a new Selector node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Selector node as a child. |
Edit->Add->NewSequence |
Add a new Sequence node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Sequence node as a child. |
Edit->Add->NewParallel |
Add a new Parallel node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Parallel node as a child. |
Edit->Add->NewDecorator |
Add a new Decorator node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Decorator node as a child. |
Edit->Add->NewCondition |
Add a new Condition node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Condition node as a child. |
Edit->Add->NewAction |
Add a new Action node to the current selected node as the rightmost child. Only the BehaviorTreeRoot node, Selector node, Sequence node, Parallel node, or Decorator node in the tree diagram can be added a new Action node as a child. |
Edit->Cut (Ctrl+X) |
Cut the current selected node and all the sub-tree node(s) below it. |
Edit->Copy (Ctrl+C) |
Copy the current selected node and all the sub-tree node(s) below it. |
Edit->Paste (Ctrl+V) |
Paste the node or the sub-tree nodes that was cut or copied to the current selected node as a rightmost child. |
Edit->Delete (Del) |
Delete the current selected node and all the sub-tree node(s) below it. |
Edit->Change->ToSelector |
Change the current selected node to a Selector node. |
Edit->Change->ToSequence |
Change the current selected node to a Sequence node. |
Edit->Change->ToParallel |
Change the current selected node to a Parallel node. |
Edit->Change->ToDecorator |
Change the current selected node to a Decorator node. |
Edit->Change->ToCondition |
Change the current selected node to a Condition node. |
Edit->Change->ToAction |
Change the current selected node to an Action node. |
Edit->MoveLeft |
Move the current selected node to the left side of its left sibling node. |
Edit->MoveRight |
Move the current selected node the right side of its right sibling node. |
4. View Menu |
View->ZoomIn |
Zoom in the forest or tree diagram. |
View->ZoomOut |
Zoom out the forest or tree diagram. |
View->Focus (Ctrl+F) |
Focus the view on the root node of the forest or tree diagram. |
5. Node Menu |
Node->Name->ResetAll |
Reset all node names to their node type name abbreviation, node type name, or a custom name. (This tool is locked for Trial Edition.) |
Node->Name->SerializeAll |
Change all node names to their node type name with a suffix of node index. (This tool is locked for Trial Edition.) |
Node->Name->AppendAll |
Append a prefix, suffix, or node index to all node names. (This tool is locked for Trial Edition.) |
Node->Attribute->ClearAll |
Clear all user attributes of each node. (This tool is locked for Trial Edition.) |
6. Help Menu |
Help->About |
Display Bt Studio edition, version, and copyright information. |
Help->License |
Display Bt Studio license information. |
Help->Manual |
Display Bt Studio online manual reference. |
Help->Register |
Register with an email address and corresponding license key to upgrade to the ultimate edition. |
7. First Tool Bar |
ZoomIn, ZoomOut, Focus, Save, SaveAll, Undo, Redo, Cut, Copy, Paste, Delete, MoveLeft, MoveRight |
8. Second Tool Bar |
NewForest, NewTree, NewSelector, NewSequence, NewParallel, NewDecorator, NewCondition, NewAction |
9. Main Editable Diagram Window |
Display the editable forest or tree diagram. |
10. All Node List Window |
Display a list of all the nodes in the forest or tree diagram in an order of node index. |
11. Node Attribute Table Window |
Display all the attributes of a node in a table. Each attribute is composed of a pair of parameter and value. Most of the attributes can be passed to the BtEngine in Unity with a pair of strings. |
Type |
The Type of a node should be one of these node types in a forest diagram: ForestRoot, Forest and Tree. It should be one of these node types in a tree diagram: TreeRoot, Selector, Sequence, Parallel, Decorator, Condition, and Action. |
Index |
In a forest diagram, the Index of a Forest node or a Tree node is the child index of its parent node. In a tree diagram, the Index of each node is the depth-first traversal order of the tree. |
Name |
The Name of a node should be defined by user. |
Policy |
The Policy of a node can only be applied to a Parallel node, a Decorator node, a Condition node, or an Action node in the tree diagram. |
File |
The File of a node can only be applied to a tree node in the forest diagram. It should be the tree XML file name of the tree node. |
Note |
The Note of a node can be anything that you want to comment on that node. This attribute will never be passed to the BtEngine in Unity. |
User Attributes |
The User Attributes can only be applied to a Forest node or a Tree node in the forest diagram, and a Decorator node, a Condition node, or an Action in the tree diagram. The User Attributes of each node can be passed to Bt Engine in Unity, except the Forest node. |
12. References |
1. Christoph Buchheim, Michael Junger, and Sebastian Leipert. Improving Walker’s algorithm to run in linear time. Graph Drawing 2002, LNCS2528, pp 344-353, 2002. |
2. John Q. Walker II. A node-positioning algorithm for general trees. Software – Practice and Experience, volume 20, issue 7, pages 685-705, 1990. |
|