Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
RAIN.Action.ActionThe 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.ActionContextActionContext 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.AgentAgent 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.AIAnimationControllerAIAnimationController 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.AIAnimationExtenderThe 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.AIBehaviorAIBehavior 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.AICharacterControllerAICharacterController is used to translate movement requests from the RAIN motion system into CharacterController movement requests
RAIN.Motion.AIKinematicControllerAIKinematicController 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.AIRigidBodyControllerThe 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.AnimateActionAnimateAction 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.AnimationMapAnimationMap 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.AnimationRequestHandlerAnimationRequestHandler 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.AspectAn 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.AssignmentExpressionAssignmentExpression 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.AssignVariableActionAssignVariableAction 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.AvatarControllerAvatarController 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.BehaviorTreeMindBehaviorTreeMind 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.BoxObstacleAvoidanceColliderBoxObstacleAvoidanceCollider is a box implementation of the ObstacleAvoidanceCollider
RAIN.Sensors.BoxSensorBoxSensor is a simple sensor that uses a fixed size box collider to detect Aspects
RAIN.BehaviorTrees.BTActionNodeBTActionNode is the behavior leaf node representing an atomic action
RAIN.BehaviorTrees.BTActivationManagerBTActivationManager 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.BTConditionNodeBTConditionNode 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.BTDecoratorNodeDecoratorNode 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.BTIteratorNodeBehaviorTree iterator node. Iteration is initialized based on a count initializer expression, which may contain variables
RAIN.BehaviorTrees.BTLastStateNodeBTLastStateNode 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.BTNodeBTNode 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.BTParallelNodeBTParallelNode 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.BTRepeaterBTRepeater is a BTDecoratorNode used to cause another node to repeat until some return state is achieved
RAIN.BehaviorTrees.BTSelectorNodeBTSelectorNode 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.BTSequencerNodeBTSequencerNode executes a series of nodes. The child list order is assumed to be prioritized, so that children can be executed in order
RAIN.Belief.ConditionalExpressionConditionalExpression 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)
DecoratedDecorated is an interface used for any item that can hold decorations
RAIN.Ontology.DecorationA Decoration is a mechanism for adding various descriptions to an Entity
RAIN.Ontology.Describable
RAIN.Primitives.DetectActionDetectAction 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.EntityThe Entity class is the primary component used to identify Describable objects to RAIN
RAIN.Sensors.ExpandingBoxSensorExpandingBoxSensor is a BoxSensor that changes shape over time. ExpandingBoxSensor has a minimum size, maximum size, and expand rate (per axis)
RAIN.Belief.ExpressionExpression 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.FindPathToTargetFindPathToTarget 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.FollowPathFollowPath 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.GoalActionMindGoalActionMind 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.GOBActionNodeGOBActionNode is a