unreal.AIController

class unreal.AIController(outer=None, name='None')

Bases: unreal.Controller

AIController is the base class of controllers for AI-controlled Pawns.

Controllers are non-physical actors that can be attached to a pawn to control its actions. AIControllers manage the artificial intelligence for the pawns they control. In networked games, they only exist on the server. https://docs.unrealengine.com/latest/INT/Gameplay/Framework/Controller/:

C++ Source:

  • Module: AIModule
  • File: AIController.h

Editor Properties: (see get_editor_property/set_editor_property)

  • actions_comp (PawnActionsComponent): [Read-Write] Actions Comp
  • allow_strafe (bool): [Read-Write] Is strafing allowed during movement?
  • allow_tick_before_begin_play (bool): [Read-Write] Whether we allow this Actor to tick before it receives the BeginPlay event. Normally we don’t tick actors until after BeginPlay; this setting allows this behavior to be overridden. This Actor must be able to tick for this setting to be relevant.
  • always_relevant (bool): [Read-Write] Always relevant for network (overrides bOnlyRelevantToOwner).
  • attach_to_pawn (bool): [Read-Write] If true, the controller location will match the possessed Pawn’s location. If false, it will not be updated. Rotation will match ControlRotation in either case. Since a Controller’s location is normally inaccessible, this is intended mainly for purposes of being able to attach an Actor that follows the possessed Pawn location, but that still has the full aim rotation (since a Pawn might update only some components of the rotation).
  • auto_destroy_when_finished (bool): [Read-Write] If true then destroy self when “finished”, meaning all relevant components report that they are done and no timelines or timers are in flight.
  • auto_receive_input (AutoReceiveInput): [Read-Write] Automatically registers this actor to receive input from a player.
  • blackboard (BlackboardComponent): [Read-Write] blackboard
  • block_input (bool): [Read-Write] If true, all input on the stack below this actor will not be considered
  • brain_component (BrainComponent): [Read-Write] Component responsible for behaviors.
  • can_be_damaged (bool): [Read-Write] Whether this actor can take damage. Must be true for damage events (e.g. ReceiveDamage()) to be called. https://www.unrealengine.com/blog/damage-in-ue4: TakeDamage(), ReceiveDamage():
  • can_be_in_cluster (bool): [Read-Write] If true, this actor can be put inside of a GC Cluster to improve Garbage Collection performance
  • custom_time_dilation (float): [Read-Write] Allow each actor to run at a different time speed. The DeltaTime for a frame is multiplied by the global TimeDilation (in WorldSettings) and this CustomTimeDilation for this actor’s tick.
  • default_navigation_filter_class (type(Class)): [Read-Write] Default Navigation Filter Class
  • enable_auto_lod_generation (bool): [Read-Write] If true, and if World setting has bEnableHierarchicalLOD equal to true, then it will generate LODActor from groups of clustered Actor
  • find_camera_component_when_view_target (bool): [Read-Write] If true, this actor should search for an owned camera component to view through when used as a view target.
  • generate_overlap_events_during_level_streaming (bool): [Read-Write] If true, this actor will generate overlap events when spawned as part of level streaming. You might enable this is in the case where a streaming level loads around an actor and you want overlaps to trigger.
  • hidden (bool): [Read-Write] Allows us to only see this Actor in the Editor, and not in the actual game. SetActorHiddenInGame():
  • ignores_origin_shifting (bool): [Read-Write] Whether this actor should not be affected by world origin shifting.
  • initial_life_span (float): [Read-Write] How long this Actor lives before dying, 0=forever. Note this is the INITIAL value and should not be modified once play has begun.
  • input_priority (int32): [Read-Write] The priority of this input component when pushed in to the stack.
  • instigator (Pawn): [Read-Write] Pawn responsible for damage and other gameplay events caused by this actor.
  • is_editor_only_actor (bool): [Read-Write] Whether this actor is editor-only. Use with care, as if this actor is referenced by anything else that reference will be NULL in cooked builds
  • min_net_update_frequency (float): [Read-Write] Used to determine what rate to throttle down to when replicated properties are changing infrequently
  • net_cull_distance_squared (float): [Read-Write] Square of the max distance from the client’s viewpoint that this actor is relevant and will be replicated.
  • net_dormancy (NetDormancy): [Read-Write] Dormancy setting for actor to take itself off of the replication list without being destroyed on clients.
  • net_load_on_client (bool): [Read-Write] This actor will be loaded on network clients during map load
  • net_priority (float): [Read-Write] Priority for this actor when checking for replication in a low bandwidth or saturated situation, higher priority means it is more likely to replicate
  • net_update_frequency (float): [Read-Write] How often (per second) this actor will be considered for replication, used to determine NetUpdateTime
  • net_use_owner_relevancy (bool): [Read-Write] If actor has valid Owner, call Owner’s IsNetRelevantFor and GetNetPriority
  • on_actor_begin_overlap (ActorBeginOverlapSignature): [Read-Write] Called when another actor begins to overlap this actor, for example a player walking into a trigger. For events when objects have a blocking collision, for example a player hitting a wall, see ‘Hit’ events. Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.:
  • on_actor_end_overlap (ActorEndOverlapSignature): [Read-Write] Called when another actor stops overlapping this actor. Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.:
  • on_actor_hit (ActorHitSignature): [Read-Write] Called when this Actor hits (or is hit by) something solid. This could happen due to things like Character movement, using Set Location with ‘sweep’ enabled, or physics simulation. For events when objects overlap (e.g. walking into a trigger) see the ‘Overlap’ event. For collisions during physics simulation to generate hit events, ‘Simulation Generates Hit Events’ must be enabled.:
  • on_begin_cursor_over (ActorBeginCursorOverSignature): [Read-Write] Called when the mouse cursor is moved over this actor if mouse over events are enabled in the player controller.
  • on_clicked (ActorOnClickedSignature): [Read-Write] Called when the left mouse button is clicked while the mouse is over this actor and click events are enabled in the player controller.
  • on_destroyed (ActorDestroyedSignature): [Read-Write] Event triggered when the actor has been explicitly destroyed.
  • on_end_cursor_over (ActorEndCursorOverSignature): [Read-Write] Called when the mouse cursor is moved off this actor if mouse over events are enabled in the player controller.
  • on_end_play (ActorEndPlaySignature): [Read-Write] Event triggered when the actor is being deleted or removed from a level.
  • on_input_touch_begin (ActorOnInputTouchBeginSignature): [Read-Write] Called when a touch input is received over this actor when touch events are enabled in the player controller.
  • on_input_touch_end (ActorOnInputTouchEndSignature): [Read-Write] Called when a touch input is received over this component when touch events are enabled in the player controller.
  • on_input_touch_enter (ActorBeginTouchOverSignature): [Read-Write] Called when a finger is moved over this actor when touch over events are enabled in the player controller.
  • on_input_touch_leave (ActorEndTouchOverSignature): [Read-Write] Called when a finger is moved off this actor when touch over events are enabled in the player controller.
  • on_instigated_any_damage (InstigatedAnyDamageSignature): [Read-Write] Called when the controller has instigated damage in any way
  • on_released (ActorOnReleasedSignature): [Read-Write] Called when the left mouse button is released while the mouse is over this actor and click events are enabled in the player controller.
  • on_take_any_damage (TakeAnyDamageSignature): [Read-Write] Called when the actor is damaged in any way.
  • on_take_point_damage (TakePointDamageSignature): [Read-Write] Called when the actor is damaged by point damage.
  • on_take_radial_damage (TakeRadialDamageSignature): [Read-Write] Called when the actor is damaged by radial damage.
  • only_relevant_to_owner (bool): [Read-Write] If true, this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.
  • optimize_bp_component_data (bool): [Read-Write] Whether to cook additional data to speed up spawn events at runtime for any Blueprint classes based on this Actor. This option may slightly increase memory usage in a cooked build.
  • path_following_component (PathFollowingComponent): [Read-Only] Component used for moving along a path.
  • perception_component (AIPerceptionComponent): [Read-Only] Perception Component
  • pivot_offset (Vector): [Read-Write] Local space pivot offset for the actor, only used in the editor
  • player_state (PlayerState): [Read-Write] PlayerState containing replicated information about the player using this controller (only exists for players, not NPCs).
  • primary_actor_tick (ActorTickFunction): [Read-Write] Primary Actor tick function, which calls TickActor(). Tick functions can be configured to control whether ticking is enabled, at what time during a frame the update occurs, and to set up tick dependencies. https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Engine/FTickFunction/: AddTickPrerequisiteActor(), AddTickPrerequisiteComponent():
  • receive_move_completed (AIMoveCompletedSignature): [Read-Write] Blueprint notification that we’ve completed the current movement request
  • relevant_for_level_bounds (bool): [Read-Write] If true, this actor’s component’s bounds will be included in the level’s bounding box unless the Actor’s class has overridden IsLevelBoundsRelevant
  • replay_rewindable (bool): [Read-Write] If true, this actor will only be destroyed during scrubbing if the replay is set to a time before the actor existed. Otherwise, RewindForReplay will be called if we detect the actor needs to be reset. Note, this Actor must not be destroyed by gamecode, and RollbackViaDeletion may not be used.
  • replicate_movement (bool): [Read-Write] If true, replicate movement/location related properties. Actor must also be set to replicate. SetReplicates(): https://docs.unrealengine.com/latest/INT/Gameplay/Networking/Replication/:
  • replicated_movement (RepMovement): [Read-Write] Used for replication of our RootComponent’s position and velocity
  • replicates (bool): [Read-Write] If true, this actor will replicate to remote machines SetReplicates():
  • root_component (SceneComponent): [Read-Write] The component that defines the transform (location, rotation, scale) of this Actor in the world, all other components must be attached to this one somehow
  • set_control_rotation_from_pawn_orientation (bool): [Read-Write] Copy Pawn rotation to ControlRotation, if there is no focus point.
  • skip_extra_los_checks (bool): [Read-Write] Skip extra line of sight traces to extremities of target being checked.
  • spawn_collision_handling_method (SpawnActorCollisionHandlingMethod): [Read-Write] Controls how to handle spawning this actor in a situation where it’s colliding with something else. “Default” means AlwaysSpawn here.
  • sprite_scale (float): [Read-Write] The scale to apply to any billboard components in editor builds (happens in any WITH_EDITOR build, including non-cooked games).
  • stop_ai_logic_on_unposses (bool): [Read-Write] By default AI’s logic gets stopped when controlled Pawn is unpossesed. Setting this flag to false
    will make AI logic persist past loosing controll over a pawn
  • tags (Array(Name)): [Read-Write] Array of tags that can be used for grouping and categorizing.
  • wants_player_state (bool): [Read-Write] Specifies if this AI wants its own PlayerState.
actions_comp

(PawnActionsComponent) – [Read-Only] Actions Comp

allow_strafe

(bool) – [Read-Write] Is strafing allowed during movement?

blackboard

(BlackboardComponent) – [Read-Only] blackboard

brain_component

(BrainComponent) – [Read-Write] Component responsible for behaviors.

claim_task_resource(resource_class) → None

Claim Task Resource

Parameters:resource_class (type(Class)) –
clear_focus() → None

Clears Focus, will also clear FocalPoint as a result

default_navigation_filter_class

(type(Class)) – [Read-Write] Default Navigation Filter Class

get_ai_perception_component() → AIPerceptionComponent

Get AIPerception Component

Returns:
Return type:AIPerceptionComponent
get_focal_point() → Vector

Retrieve the final position that controller should be looking at.

Returns:
Return type:Vector
get_focal_point_on_actor(actor) → Vector

Retrieve the focal point this controller should focus to on given actor.

Parameters:actor (Actor) –
Returns:
Return type:Vector
get_focus_actor() → Actor

Get the focused actor.

Returns:
Return type:Actor
get_immediate_move_destination() → Vector

Returns position of current path segment’s end.

Returns:
Return type:Vector
get_move_status() → PathFollowingStatus

Returns status of path following

Returns:
Return type:PathFollowingStatus
get_path_following_component() → PathFollowingComponent

Returns PathFollowingComponent subobject *

Returns:
Return type:PathFollowingComponent
has_partial_path() → bool

Returns true if the current PathFollowingComponent’s path is partial (does not reach desired destination).

Returns:
Return type:bool
move_to_actor(goal, acceptance_radius=-1.000000, stop_on_overlap=True, use_pathfinding=True, can_strafe=True, filter_class=None, allow_partial_path=True) → PathFollowingRequestResult

Makes AI go toward specified Goal actor (destination will be continuously updated), aborts any active path following AcceptanceRadius has default value or -1 due to Header Parser not being able to recognize UPathFollowingComponent::DefaultAcceptanceRadius:

Parameters:
  • goal (Actor) –
  • acceptance_radius (float) – finish move if pawn gets close enough
  • stop_on_overlap (bool) – add pawn’s radius to AcceptanceRadius
  • use_pathfinding (bool) – use navigation data to calculate path (otherwise it will go in straight line)
  • can_strafe (bool) – set focus related flag: bAllowStrafe
  • filter_class (type(Class)) – navigation filter for pathfinding adjustments. If none specified DefaultNavigationFilterClass will be used
  • allow_partial_path (bool) – use incomplete path when goal can’t be reached
Returns:

Return type:

PathFollowingRequestResult

move_to_location(dest, acceptance_radius=-1.000000, stop_on_overlap=True, use_pathfinding=True, project_destination_to_navigation=False, can_strafe=True, filter_class=None, allow_partial_path=True) → PathFollowingRequestResult

Makes AI go toward specified Dest location, aborts any active path following AcceptanceRadius has default value or -1 due to Header Parser not being able to recognize UPathFollowingComponent::DefaultAcceptanceRadius:

Parameters:
  • dest (Vector) –
  • acceptance_radius (float) – finish move if pawn gets close enough
  • stop_on_overlap (bool) – add pawn’s radius to AcceptanceRadius
  • use_pathfinding (bool) – use navigation data to calculate path (otherwise it will go in straight line)
  • project_destination_to_navigation (bool) – project location on navigation data before using it
  • can_strafe (bool) – set focus related flag: bAllowStrafe
  • filter_class (type(Class)) – navigation filter for pathfinding adjustments. If none specified DefaultNavigationFilterClass will be used
  • allow_partial_path (bool) – use incomplete path when goal can’t be reached
Returns:

Return type:

PathFollowingRequestResult

on_using_black_board(blackboard_comp, blackboard_asset) → None

On Using Black Board

Parameters:
receive_move_completed

(AIMoveCompletedSignature) – [Read-Write] Blueprint notification that we’ve completed the current movement request

run_behavior_tree(bt_asset) → bool

Starts executing behavior tree.

Parameters:bt_asset (BehaviorTree) –
Returns:
Return type:bool
set_control_rotation_from_pawn_orientation

(bool) – [Read-Write] Copy Pawn rotation to ControlRotation, if there is no focus point.

set_focal_point(fp) → None

Set the position that controller should be looking at.

Parameters:fp (Vector) –
set_focus(new_focus) → None

Set Focus for actor, will set FocalPoint as a result.

Parameters:new_focus (Actor) –
set_move_block_detection(enable) → None

Updates state of movement block detection.

Parameters:enable (bool) –
set_path_following_component(new_pf_component) → None
Note that his function does not do any pathfollowing state transfer.
Intended to be called as part of initialization/setup process
Parameters:new_pf_component (PathFollowingComponent) –
skip_extra_los_checks

(bool) – [Read-Write] Skip extra line of sight traces to extremities of target being checked.

stop_ai_logic_on_unposses

(bool) – [Read-Write] By default AI’s logic gets stopped when controlled Pawn is unpossesed. Setting this flag to false will make AI logic persist past loosing controll over a pawn

unclaim_task_resource(resource_class) → None

Unclaim Task Resource

Parameters:resource_class (type(Class)) –
use_blackboard(blackboard_asset) → BlackboardComponent or None

Makes AI use the specified Blackboard asset & creates a Blackboard Component if one does not already exist.

Parameters:blackboard_asset (BlackboardData) – The Blackboard asset to use.
Returns:true if we successfully linked the blackboard asset to the blackboard component.

blackboard_component (BlackboardComponent): The Blackboard component that was used or created to work with the passed-in Blackboard Asset.

Return type:BlackboardComponent or None
wants_player_state

(bool) – [Read-Write] Specifies if this AI wants its own PlayerState.