User Tools

Site Tools


behavior-trees

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
behavior-trees [2020/05/22 12:36] maximebehavior-trees [2020/07/17 14:29] maxime
Line 5: Line 5:
 ===== Register new behavior trees ===== ===== Register new behavior trees =====
  
-You can now create custom behavior tree assets with ''foundation.registerBehaviorTree''.+You can now create custom behavior tree assets with ''[[:mod-management-functions#registerBehaviorTree|mod:registerBehaviorTree]]''.
  
 A behavior tree is defined as a table containing an ID (''Id''), a list of variable (''VariableList'') and an execution tree (''Root''). A behavior tree is defined as a table containing an ID (''Id''), a list of variable (''VariableList'') and an execution tree (''Root'').
Line 11: Line 11:
 ==== VariableList ==== ==== VariableList ====
  
-Each variable in the list must contain at list a unique ''Name'', and a ''DataType''. The ''DataType'' must be a type inheriting ''[[preview:api:behavior_tree_data|BEHAVIOR_TREE_DATA]]''.+Each variable in the list must contain at list a unique ''Name'', and a ''DataType''. The ''DataType'' must be a type inheriting ''[[api:behavior_tree_data|BEHAVIOR_TREE_DATA]]''.
  
 You can also specify if a variable is public (''IsPublic''), thus specifying if this variable must be filled by the outer tree when this tree is used as a sub-tree node. You can also specify if a variable is public (''IsPublic''), thus specifying if this variable must be filled by the outer tree when this tree is used as a sub-tree node.
Line 27: Line 27:
 Leaf nodes (''NODE_LEAF'') cannot have children. Some are defined in the core game, but you can also [[behavior-trees#custom_behavior_tree_nodes|define your own]]. Leaf nodes (''NODE_LEAF'') cannot have children. Some are defined in the core game, but you can also [[behavior-trees#custom_behavior_tree_nodes|define your own]].
  
-When defining a node in a new behavior tree, you have to specify at least its unique name (''Name''), and its type (''Type'') inheriting from ''[[preview:api:node|NODE]]''. If the node has public variables, you have to link by name each of the node's variables to the tree variables.+When defining a node in a new behavior tree, you have to specify at least its unique name (''Name''), and its type (''Type'') inheriting from ''[[api:node|NODE]]''. If the node has public variables, you have to link by name each of the node's variables to the tree variables.
  
 Finally, if the node is a branch node, you have to add the list of children (''Children''). Finally, if the node is a branch node, you have to add the list of children (''Children'').
Line 39: Line 39:
 ==== VariableList ==== ==== VariableList ====
  
-The list of variables is a simple key-value pair list with the variables name as key, and its type (inheriting from ''[[preview:api:behavior_tree_data|BEHAVIOR_TREE_DATA]]'') as value. Each of those variables are input by the tree using the node.+The list of variables is a simple key-value pair list with the variables name as key, and its type (inheriting from ''[[api:behavior_tree_data|BEHAVIOR_TREE_DATA]]'') as value. Each of those variables are input by the tree using the node.
  
 ==== Functions ==== ==== Functions ====
  
-A leaf node has three basic functions: ''Init'', ''Update'', and ''Finish''. The ''Update'' function takes the level (''[[preview:api:level|LEVEL]]'') and the tree instance (''[[preview:api:behavior_tree_instance|BEHAVIOR_TREE_INSTANCE]]'') as parameter, and returns a ''[[preview:api:behavior_tree_node_result|BEHAVIOR_TREE_NODE_RESULT]]''.+A leaf node has three basic functions: ''Init'', ''Update'', and ''Finish''. The ''Update'' function takes the level (''[[api:level|LEVEL]]'') and the tree instance (''[[api:behavior_tree_instance|BEHAVIOR_TREE_INSTANCE]]'') as parameter, and returns a ''[[api:behavior_tree_node_result|BEHAVIOR_TREE_NODE_RESULT]]''.
  
-When a node is executed, the ''Init'' function is called first. Then, the ''Update'' function is called until it doesn't return ''[[preview:api:behavior_tree_node_result|BEHAVIOR_TREE_NODE_RESULT.PROCESSING]]''. Finally, the ''Finish'' function is called.+When a node is executed, the ''Init'' function is called first. Then, the ''Update'' function is called until it doesn't return ''[[api:behavior_tree_node_result|BEHAVIOR_TREE_NODE_RESULT.PROCESSING]]''. Finally, the ''Finish'' function is called.
  
 You can access all of the node's variables in those functions with ''self''. You can access all of the node's variables in those functions with ''self''.
behavior-trees.txt · Last modified: 2021/07/29 11:56 by maxime

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki