<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CAIUMODULE :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/index.html</link>
    <description>Overview The CAIUMODULE provides an AI controller and a set of Behavior Tree task nodes for NPC behavior. It wraps Unreal Engine’s AAIController with perception setup (sight), team attitude, blackboard management, and fight-state broadcasting. Task nodes cover movement, attack, automation, navigation recovery and idle waiting.&#xA;Depends on CCOREUMODULE, AIModule, NavigationSystem, GameplayTasks.&#xA;Functionalities Overview AI Controller ACAIController — AI controller with sight perception, behavior tree execution, team attitude and fight-state management Data FCAIStruct — DataTable row configuring perception radius, vision angle, forget delay and behavior tree reference Task Nodes 8 custom UBTTaskNode subclasses for attack, movement, automation, navigation recovery and waiting Blueprint UCAIBPLibrary — Blueprint function library (currently empty) ACAIController ACAIController extends AAIController with UCrowdFollowingComponent for crowd avoidance. On possession it:</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Jul 2024 21:09:28 +0200</lastBuildDate>
    <atom:link href="https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Blueprint</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/blueprint/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/blueprint/index.html</guid>
      <description>Overview UCAIBPLibrary is the Blueprint function library for CAIUMODULE. It currently exposes no functions.</description>
    </item>
    <item>
      <title>Diagrams</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/diagrams/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/diagrams/index.html</guid>
      <description>Overview Visual diagrams illustrating the internal architecture and runtime behavior of CAIUMODULE.&#xA;1. Possession and Perception Setup Pipeline The complete flow when ACAIController possesses a pawn. Five sequential steps: read FCAIStruct config, create the perception system (conditional on enableSight), run the behavior tree, setup automation blackboard key, and bind perception delegates. SetGenericTeamId must happen before perception creation, and RunBehaviorTree must be called after OnPossess.</description>
    </item>
    <item>
      <title>Task Nodes</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/tasknode/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/modules/caiumodule/tasknode/index.html</guid>
      <description>Overview Custom Behavior Tree task nodes provided by CAIUMODULE. All extend UBTTaskNode (or a UE built-in task subclass) and are usable directly in Behavior Tree assets.&#xA;Task Nodes Name Description UCTNAttack Triggers an attack via UCCombotterComponent_. Latent — finishes when the montage ends. UCTNAutomation Reads the next automation command from UCAutomationComponent_. Supports LOCATION (room-relative positions A–H, M) and WAIT commands. UCTNChooseRandomExtremityOfClosestEdge Picks a random reachable point near the closest room edge within the navigation invoker radius. Falls back to spawn origin if no edge is close enough. UCTNClearValue Clears one or more blackboard keys. UCTNMove Extends UBTTask_MoveTo. Adjusts AcceptableRadius by adding both the target and the pawn capsule radii. UCTNMoveOnNavMeshIfRequired Checks if the pawn is on the NavMesh. If not, projects to the nearest navigable point and teleports. UCTNTeleportToACloseNavigablePoint Teleports the pawn to a close navigable point. Tries projection first, then random point in closest room. Updates the pawn’s origin transform. UCTNWait Extends UBTTask_Wait. Reads wait duration from a blackboard key instead of using a fixed value. // --- UCTNAttack --- // Requires: UCCombotterComponent_ on the possessed pawn. // Triggers proceedAttack and waits for montage completion. // Returns InProgress while the montage plays, Failed if no combotter component. // --- UCTNAutomation --- // Properties: // FBlackboardKeySelector targetLocationBBkey — receives the computed location // FBlackboardKeySelector waitBBKey — receives the wait duration // Reads commands from UCAutomationComponent_::read(). // LOCATION command: resolves room-relative position codes (A=top-left, B=top-right, // C=bottom-right, D=bottom-left, E=top-center, F=right-center, G=bottom-center, // H=left-center, M=center). Sets targetLocationBBkey with world Z. // WAIT command: sets waitBBKey with the float duration. // Advances to next command via i-&gt;next(). // --- UCTNChooseRandomExtremityOfClosestEdge --- // Properties: // FBlackboardKeySelector locationToReach — receives the chosen location // Requires: UNavigationInvokerComponent on the pawn. // Picks a random distance within [25%, 75%] of the navigation generation radius. // Finds the closest room edge; if within range, picks extremity A or B (checking cell ownership). // Falls back to spawn origin if no edge is close enough. // Normalizes direction in 2D, clamps to navigation radius, then finds a random reachable point. // --- UCTNClearValue --- // Properties: // TArray&lt;FBlackboardKeySelector&gt; keyToClearArray — keys to clear // Iterates and clears each blackboard key. // --- UCTNMove --- // Extends UBTTask_MoveTo. // If the blackboard key references an actor, adds both capsule radii (target + pawn) // to AcceptableRadius, minus 10% tolerance. // --- UCTNMoveOnNavMeshIfRequired --- // Projects the pawn location onto the NavMesh. // First tries a vertical projection (UpVector * capsuleSize). // If that fails, tries a wider sphere (OneVector * capsuleSize * 2) and teleports. // --- UCTNTeleportToACloseNavigablePoint --- // Attempts to place the pawn on the NavMesh: // 1. ProjectPointToNavigation with capsule extent * 2 // 2. If that fails, GetRandomPointInNavigableRadius within the closest room // On success, sets ensureNavigation blackboard key and updates the pawn&#39;s origin. // --- UCTNWait --- // Properties: // FBlackboardKeySelector waitBBKey — blackboard key holding the wait duration (float) // Reads the float value and passes it to UBTTask_Wait::WaitTime before executing.</description>
    </item>
  </channel>
</rss>