| RAIN.Action.Action | The Action class defines the basic functionality of any low-level action. An Action can be Started, Executed, or Stopped. Actions have an ActionName to help identify them during debugging, and an ActionContext that serves as a kind of "blackboard" for transmitting information between actions that are working together |
| RAIN.Action.ActionContext | ActionContext serves as a kind of shared memory context, or "blackboard", for Actions that work together to complete a task. ActionContext works as a typed name/value pair, with only one value allowed per name |
| RAIN.Core.Agent | Agent is the base class for AI. Generally if you are using RAIN you will not want to create instances on your own. However, you may want to use key methods of this class to manipulate your AI |
| RAIN.Motion.AIAnimationController | AIAnimationController is the motion controller for AI whose motion is driven by or strongly linked to animation. AIAnimationController requires the attachment of an AIAnimationExtender. For Mixamo animations, use the supplied MixamoAIAnimationExtender script provided with RAIN. You may also write your own AIAnimationExtender to link motion control to your custom animation rig |
| RAIN.Motion.AIAnimationExtender | The AIAnimationExtender is a component that should be added to AI Avatars that need to manipulate animations from AI Logic. The AIAnimationExtender works in conjunction with Behavior Trees and with Motion to support handling of various animation callbacks |
| RAIN.Core.AIBehavior | AIBehavior is the base class for most AI scripting. AIBehavior replaces MonoBehavior and uses a modified Start/Update system to support the AI thinking pipeline. AIBehavior is typically managed by the Mind associated with an AI, which controls the timing and activation of the AIBehavior code. The contents of the InitBehavior and Act methods are up to the developer, but typically contain AI specific code that utilizes other supporting RAIN functions such as Steering, Pathfinding, Sensors, etc |
| RAIN.Motion.AICharacterController | AICharacterController is used to translate movement requests from the RAIN motion system into CharacterController movement requests |
| RAIN.Motion.AIKinematicController | AIKinematicController is used to enforce direct control over AI position. AIKinematic controller translates movement requests from the RAIN motion system directly into position and orientation transforms on the Avatar game object |
| RAIN.Motion.AIMixamoAnimationController | |
| RAIN.Motion.AIRigidBodyController | The AIRigidBodyController is intended to translate movement requests from the RAIN motion system into physics forces suitable for rigid body objects whose motion is controlled by rigid body physics |
| RAIN.Primitives.AnimateAction | AnimateAction is a primitive that can be used to manipulate animation in RAIN characters. The easiest way to link animation to your character is by adding an AnimationRequestHandler to it - either directly or through a controller that supports IAnimationRequestHandler (e.g., an AIAnimationController) |
| RAIN.Motion.AIAnimationController.AnimationMap | AnimationMap is used to map an animation state to a set of motion parameters that help RAIN to determine when to transition to a given state |
| RAIN.Motion.AIMixamoAnimationController.AnimationMap | |
| RAIN.Animation.AnimationParams | |
| RAIN.Animation.AnimationRequestHandler | AnimationRequestHandler is a stub class/component that can be added to a game object to quickly provide support for Animation driven by AI It is a simple imlementation of the IAnimationRequestHandler interface, which defines the methods RAIN will use to manipulate animation |
| RAIN.Ontology.Aspect | An Aspect defines an observable characterstic of an object. Aspects are identified by their name and by the sensation that would be used to detect the Aspect. Aspects do not themselves have definitions, but instead are defined entirely by their relationship (coexistence with) other Aspects and the interpretation of the sensing entity |
| RAIN.Belief.AssignmentExpression | AssignmentExpression represents a variable assignment expression similar to a C++ or C# assignment. Assignments can be represented as a left-hand-side (lhs), right-hand-side (rhs) and an infix operator (op) as in (lhs op rhs). Operators supported are EQ, PLUSEQ, MINUSEQ, TIMESEQ, DIVIDEEQ Nested expressions and expressions with variables are supported. lhs must be a single variable name |
| RAIN.Primitives.AssignVariableAction | AssignVariableAction is a primitive action used to execute an AssignmentExpression. A min and max value can be set to limit the range of the variable assigned to |
| RAIN.Motion.AvatarController | AvatarController is the base class for all AIControllers in RAIN. When using or extending the controller, keep in mind that the controller methods are automatically called by a RAINAgent during Update and LateUpdate. UpdateFromAvatar is used to make your agent.Kinematic up to date before Think and Act calls occur. CalculatePhysics is used to update the Kinematic based on forces stored in Kinematic.Set/AddForces or Kinematic.Set/AddVelocity. ApplyPhysicsToAvatar is used to push Kinematic changes back to the game object |
| RAIN.Path.BasicPathFollower | |
| RAIN.Minds.BehaviorTreeMind | BehaviorTreeMind is a Mind setup designed to integrate with the RAIN Behavior Tree system. Upon initialization, this mind will load the behavior tree designated by behaviorTreeFilename. It will then use the attached BTActivationManager to InitBehavior, SetVariables, and Act. This causes the BehaviorTree to be evaluated and executed at each timestep, with results applied to the agent owning this Mind |
| RAIN.Sensors.BoxObstacleAvoidanceCollider | BoxObstacleAvoidanceCollider is a box implementation of the ObstacleAvoidanceCollider |
| RAIN.Sensors.BoxSensor | BoxSensor is a simple sensor that uses a fixed size box collider to detect Aspects |
| RAIN.BehaviorTrees.BTActionNode | BTActionNode is the behavior leaf node representing an atomic action |
| RAIN.BehaviorTrees.BTActivationManager | BTActivationManager is an AIBehavior associated with a BehaviorTreeMind responsible for managing execution of a behavior tree and interacting with user code to perform pre-treetraversal steps such as per frame variable binding |
| RAIN.BehaviorTrees.BTConditionNode | BTConditionNode is a behavior tree leaf node that evaluates a conditional expression to either true or false. A true evaluation will return an ActionResult of SUCCESS. A false evaluation will return an ActionResult of FAILURE. More complex computational evaluations must be coded as BTActionNodes |
| RAIN.BehaviorTrees.BTDecoratorNode | DecoratorNode is the abstract base class for behavior tree nodes that are intended as passthrough decorators that proxy for their child but add some intermediate functionality |
| RAIN.BehaviorTrees.BTIteratorNode | BehaviorTree iterator node. Iteration is initialized based on a count initializer expression, which may contain variables |
| RAIN.BehaviorTrees.BTLastStateNode | BTLastStateNode is a BTDecoratorNode used to record the last state of the decorated node. This is used by the BTParallelNode to keep track of how child nodes should be processed based on their prior results |
| RAIN.BehaviorTrees.BTNode | BTNode is the abstract base class for all behavior tree nodes. BTNode is an Action, so all BTNodes conform to the standard Start(), Execute(), Stop() protocol and return ActionResults |
| RAIN.BehaviorTrees.BTParallelNode | BTParallelNode is a behavior tree node for allowing child nodes to operate in parallel. Since Unity runs behavior single threaded, nodes are processed in priority order (pre-sorted). However, at each Execute step all active children are given an opportunity to execute even if higher priority nodes fail |
| RAIN.BehaviorTrees.BTRepeater | BTRepeater is a BTDecoratorNode used to cause another node to repeat until some return state is achieved |
| RAIN.BehaviorTrees.BTSelectorNode | BTSelectorNode chooses one of a set of options. The child list order is assumed to be prioritized, so that children can be evaluated in order |
| RAIN.BehaviorTrees.BTSequencerNode | BTSequencerNode executes a series of nodes. The child list order is assumed to be prioritized, so that children can be executed in order |
| RAIN.Belief.ConditionalExpression | ConditionalExpression represents a logical expression similar to a C++ or C# conditional. Conditionals can be represented as a left-hand-side (lhs), right-hand-side (rhs) and an infix operator (op) as in (lhs op rhs). Operators supported are GT, LT, GE, LE, EQ, NEQ, APPROX, NAPPROX, NO_OP Nested expressions and expressions with variables are supported. (i.e., lhs and rhs can be any valid Expression) |
| Decorated | Decorated is an interface used for any item that can hold decorations |
| RAIN.Ontology.Decoration | A Decoration is a mechanism for adding various descriptions to an Entity |
| RAIN.Ontology.Describable | |
| RAIN.Primitives.DetectAction | DetectAction is a primitive that is used to detect an object with a certain aspect, then assign the object to a variable in the Agent's actionContext |
| RAIN.Ontology.Entity | The Entity class is the primary component used to identify Describable objects to RAIN |
| RAIN.Sensors.ExpandingBoxSensor | ExpandingBoxSensor is a BoxSensor that changes shape over time. ExpandingBoxSensor has a minimum size, maximum size, and expand rate (per axis) |
| RAIN.Belief.Expression | Expression is used to represent math calculations that can be evaluated into float numbers. Expressions are usually entered as text representations similar to Java or C# expressions. Expressions may be nested and may contain variables. The variable "t" always represents time, and is always bound to deltaTime during expression evaluation. Expressions are used throughout RAIN in Goal Oriented Behavior and Behavior Trees |
| RAIN.Path.FindPathToTarget | FindPathToTarget is an Action that uses the AI Agent position and ContextItems.TARGET as begin and end points, then constructs a path using ContextItems.PATHGRAPH, inserting the final result in ContextItems.PATH_TO_TARGET |
| RAIN.Path.FollowPath | FollowPath is a helper Action that combines two other Actions. FollowPath first chooses a movement target using chooseAction, then moves to the target using moveAction. ContextItems constants are expected to be set and used, including PATHGRAPH, PATH_TO_TARGET, TARGET, and MOVE_TO_TARGET |
| RAIN.Minds.GoalActionMind | GoalActionMind is here for legacy reasons. It is now just a behavior tree mind, since Goal Oriented Behavior has been integrated with behavior trees |
| RAIN.GOB.GOBTree.GOBActionNode | GOBActionNode is a |