UAbstractBrain
class UAbstractBrain : public UObjectAn AbstractBaseClass for subclasses representing different ways of synchronizing policy, observations and actions.
Dependencies
This type depends on:
Inherits from: public UObject
Subclassed by: USynchronousBrain
Public Interface
Constructor:
UAbstractBrain
UAbstractBrain()Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 35, column 1)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 5-7)
Public Functions:
IncrementStep
void IncrementStep()Increment the current agent step.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 60, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 9-12)
SetStep
void SetStep(int NewStep)Set the current agent step.
Parameters:
NewStep(int) – the value to update the step too
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 66, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 14-17)
ResetStep
void ResetStep()Reset the agent’s count of steps to 0.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 71, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 19-22)
IsActive
bool IsActive()Check if this brain is active (e.g.
Not closed or errored out)
Returns: true iff this brain is functional (e.g. Not closed or errored out)
Returns: bool
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 77, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 24-27)
Reset
inline virtual void Reset()Reset this brain.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 82, column 14)
IsDecisionStep
virtual bool IsDecisionStep(int StepToCheck)Check whether a specific step will require a brain decision.
Returns: true iff the agent should be requesting a decision
Parameters:
StepToCheck(int) – the timestep to check
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 89, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 29-32)
IsDecisionStep
virtual bool IsDecisionStep()If the current step is a decision step, as defined by the step frequency.
Returns: true iff the current step is a decision step
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 95, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 34-37)
Init
void Init(UAbstractPolicy *InjectedPolicy)Initialize this brain by supplying a policy.
Note: this is so that we can avoid having massively nested structs in the editor when opening the Agent
Parameters:
InjectedPolicy(UAbstractPolicy *) – [inout] The policy that this brain will use to make decisions
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 102, column 6)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 39-42)
HasAction
inline virtual bool HasAction()Check if this brain has an action prepared.
Returns: true iff this brain has an action prepared (e.g. a GetAction() call on this step will suceed)
Returns: bool
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 108, column 14)
GetAction
inline virtual FAction * GetAction()get an action from this brain
Returns: A pointer to the current action
Returns: FAction *
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 114, column 17)
RequestDecision
inline virtual bool RequestDecision(const FDictPoint &Observations)Request that the brain determine a new action.
Returns: Status True if decision request suceeded and False otherwise
Parameters:
Observations(const FDictPoint &) – [in] The current state of the agent used to inform the brains choice of action
Returns: bool
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 120, column 14)
GetAbstractSettingsVisibility
virtual bool GetAbstractSettingsVisibility() const constUse by subclasses to set whether the settings are visible or not.
Returns: true if settings in this class are visible in the editor.
Returns: bool
Attributes: const, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 125, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 44-47)
GetStatus
virtual EBrainStatus GetStatus()Get the last status of the brain.
Returns: the last status
Returns: EBrainStatus
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 131, column 22)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 49-52)
SetStatus
virtual void SetStatus(EBrainStatus NewStatus)Update the status of the brain.
Parameters:
NewStatus(EBrainStatus) – [in] The new status to set
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 137, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 54-57)
UpdateStatusFromDecision
virtual void UpdateStatusFromDecision(const FPolicyDecision &Decision)Update the status of the brain from a PolicyDecision.
Parameters:
Decision(const FPolicyDecision &) – [in] The PolicyDecision to unpack and use when updating the status
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 143, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 59-71)
ResolveDecision
inline virtual void ResolveDecision()Inform the policy that you will require a response decision iminently, so it should resolve the open decision and update it’s status accordingly.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 148, column 14)
IsActionStep
virtual bool IsActionStep()Check if brain has an action, and it’s an action step.
Returns: true if the brain has an action and it’s an action step
Returns: bool
Attributes: virtual
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 154, column 14)
Implementation: Schola/Source/Schola/Private/Brains/AbstractBrain.cpp (lines 73-76)
Public Members:
UAbstractPolicy * Policy
UAbstractPolicy * PolicyThe underlying policy this brain wraps.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 33, column 17)
bool bTakeActionBetweenDecisions
bool bTakeActionBetweenDecisions = = trueIf true the agent will repeat it’s last action each step between decision requests.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 39, column 6)
int Step
int Step = = 0The current step of the simulation.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 43, column 5)
int DecisionRequestFrequency
int DecisionRequestFrequency = = 5The number of steps between requests for new actions.
If this is different across agents it may cause issues training in some frameworks (e.g. Stable Baselines 3).
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 47, column 5)
bool bAbstractSettingsVisibility
bool bAbstractSettingsVisibility = = trueToggle for whether the user can see the settings for this class.
Use to hide in subclass if they aren’t relevant
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 51, column 6)
EBrainStatus Status
EBrainStatus Status = = EBrainStatus::RunningThe status of the brain.
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 55, column 14)
Used By
This type is used by:
- AInferenceController
- AInferencePawn
- IInferenceAgent
- UAsyncBrain
- UBTTask_AgentStep
- UDiscreteBrain
- UInferenceComponent
- USynchronousBrain
Source: Schola/Source/Schola/Public/Brains/AbstractBrain.h (line 26, column 1)