Perception: - Configure senses in BeginPlay + RequestStimuliListenerUpdate (not constructor) - Filter threats by team attitude: only Hostile actors generate threat - Skip Friendly and Neutral actors in CalculateThreatLevel and GetHighestThreatActor - All Hostile actors are valid threats regardless of TargetPriority list Blackboard: - Use SetValueAsEnum/GetValueAsEnum for BehaviorState key (was Int) Patrol: - Auto NavMesh patrol when no manual waypoints defined - Project HomeLocation onto NavMesh before searching random points - Fallback to NPC current position if HomeLocation not on NavMesh Spline following: - Choose direction based on NPC forward vector vs spline tangent (not longest distance) - Skip re-search if already following a spline (prevent BT re-boucle) - Reverse at end: wait for NPC to catch up before inverting direction - Use NPC actual CharacterMovement speed for target point advancement - Face toward target point (not spline tangent) to prevent crab-walking in turns - Junction switching: direction continuity check, 70% switch chance, world gap tolerance - Debug draw: green sphere (target), yellow line (gap), cyan arrow (tangent), text overlay - Add GetWorldDirectionAtDistance to SplinePath Editor: - Add Placeable to SplinePath and CoverPoint UCLASS - Add PersonalityProfileFactory for Data Asset creation - Add EnsureBlackboardAsset declaration Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB