Commit Graph

225 Commits

Author SHA1 Message Date
mikko mononen
ef8f978f83 StateTree: Various fixes how the binding sources are displayed.
- Added editor only StatePath to FStateTreeBindableStructDesc to help error reporting
- Friendlify user defined struct property names in FStateTreePropertyPath::ToString()
- Fixed FStateTreeEditorNode::GetName() to return the BP node name instead of the wrapper name
- Categorize binding sources based on state (including one section for global) in the binding popup

#jira UE-212418, UE-209016
#rb Yoan.StAmant

[CL 33623462 by mikko mononen in ue5-main branch]
2024-05-14 02:41:50 -04:00
jacob wang
c7a6fe6ffa [State Tree] Renaming common elements between Condition and the upcoming Utility Consideration
- Renamed EStateTreeConditionOperand and properties of that type.
- Renamed FStateTreeEditorNode::Indent Property.
- Corrected a few tooltips
#rb mikko.mononen, Yoan.StAmant

[CL 33614033 by jacob wang in ue5-main branch]
2024-05-13 20:48:39 -04:00
yoan stamant
08b5314641 [StateTreeDebugger] replaced WITH_STATETREE_DEBUGGER by WITH_STATETREE_TRACE and WITH_STATETREE_TRACE_DEBUGGER to allow different targets to use only one of the two functionalities. For example consoles can only output traces while Desktop targets can output traces and analyse them.
#rb Mieszko.Zielinski

[CL 33398309 by yoan stamant in ue5-main branch]
2024-05-02 11:47:26 -04:00
yoan stamant
db3b23de1c [StateTreeDebugger] enabled debugger on all desktop platforms
#jira UE-192305
#rb mikko.mononen

[CL 33371821 by yoan stamant in ue5-main branch]
2024-05-01 09:59:57 -04:00
yoan stamant
218566e2aa [StateTreeDebugger] fixed timelines reused for the same instances through multiple traces taken during the same game session
#rb mikko.mononen

[CL 33266685 by yoan stamant in ue5-main branch]
2024-04-26 12:01:04 -04:00
alex kahn
b9d237ef29 [Backout] - CL33240386 - CIS Compile Error
#rnx
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
[StateTreeDebugger] enabled debugger on all desktop platforms
#jira UE-192305
#rb mikko.mononen

[CL 33254605 by alex kahn in ue5-main branch]
2024-04-25 21:28:43 -04:00
yoan stamant
e56181f258 [StateTreeDebugger] enabled debugger on all desktop platforms
#jira UE-192305
#rb mikko.mononen

[CL 33241614 by yoan stamant in ue5-main branch]
2024-04-25 15:30:44 -04:00
mikko mononen
a2a77adfe5 StateTrees: Made StateTree override schemas overridable.
[CL 33197151 by mikko mononen in ue5-main branch]
2024-04-24 08:52:09 -04:00
mikko mononen
a583516941 StateTrees: Made FStateTreeNodeBase::PostLoad available in all kinds of builds.
[CL 33197099 by mikko mononen in ue5-main branch]
2024-04-24 08:49:40 -04:00
jacob wang
60131c19b5 [State Tree] StateTreeInstanceData RandomStream variable Initialization Fix/Improvement
- When duplicating the Component, RandomStream was always copied from the one on Component CDO and wasn't constructed with the current time as expected. We now initialize RandomStream at FStateTreeExecutionContext::Start(), where the InstanceData is going to persist till Stop().
- Moved RandomStream variable to FStateTreeExecutionState as it better reflects the window it persists now.
- Fixed non-deterministic default-constructed value of RandomStream variable in UStruct LogError by the above

#jira UE-212551
#rb mikko.mononen

[CL 33174826 by jacob wang in ue5-main branch]
2024-04-23 14:17:24 -04:00
yoan stamant
9f4886944e [StateTreeDebugger]
allowed to provide verbosity to STATETREE_TRACE_LOG_EVENT and STATETREE_LOG_AND_TRACE so the debugger can add custom icons accordingly.
#jira UE-210505
#rb mikko.mononen

[CL 33140307 by yoan stamant in ue5-main branch]
2024-04-22 11:34:53 -04:00
mikko mononen
c78e76aa16 StateTrees: AddOverride replaces now already existing override.
Also, added removing overrides

[CL 33135832 by mikko mononen in ue5-main branch]
2024-04-22 07:42:21 -04:00
mikko mononen
4211bca4fd StateTrees: Made TStateTreeInstanceDataStructRef usable when const.
[CL 33135828 by mikko mononen in ue5-main branch]
2024-04-22 07:42:16 -04:00
mikko mononen
19bc060246 StateTree: Added support for description and icon for BP nodes.
#rb Thomas.Sarkanen, Yoan.StAmant

[CL 33098383 by mikko mononen in ue5-main branch]
2024-04-19 05:44:13 -04:00
mikko mononen
ef148ecd80 StateTree: StateTree UI spring clean.
- Added icons and icon colors for ST nodes
- Implemented icons for some common ST nodes
- Small update to ST logic icons
- Added icons to the task list in State treeview row, adjusted task list BG color to make icons visible
- Fixed ST editor tabs icons and names (e.g. there were two tabs that had the same label)
- Moved ST node picker to separate class
- Moved category array customization to common helper function
- Added node icons to the ST node picker
- Add node button is not node selector too (simila to Niagara)
- Consolidated the add button style across all lists
- Cleaned up the node customization
  - Moved type selector, debug, and property controls into one menu at right
  - The combined menu can be also summoned using right click
  - Renaming now has to be triggered via the menu
  - Replacing node happens via menu
  - Most of the row was left "clickable" to later use it for selection
  - Improved the visualization and controls for the expression indentation
- Cleaned up state customization
  - Moved parameters to own category (similar to the tree params)
  - Moved event to the enter conditions category
- Cleaned up transition customization
  - Improved the transition display
  - Consolidated add button styles

#jira UE-180608
#rb Juan.Portillo, Mieszko.Zielinski

[CL 33030431 by mikko mononen in ue5-main branch]
2024-04-17 03:01:36 -04:00
jacob wang
c641fa607f [State Tree] Uniformly Random State Selection
- Added a new option for selecint child at uniform random in StateTreeStateSelectionBehavior
- Added RandomStream in StateTreeInstanceData and relevant APIs to get stream and set seed
#rb mikko.mononen

[CL 33006455 by jacob wang in ue5-main branch]
2024-04-16 13:30:24 -04:00
guillaume arruda
4f79176477 Add compile in StateTree PostLoad and compile on PIE begin to state tree so that the trees are never out of sync with the editor state in game
Add validation warning if the state tree is not compiled to prevent uncompiled state tree to be submitted
#rb mikko.mononen

[CL 33001894 by guillaume arruda in ue5-main branch]
2024-04-16 11:14:34 -04:00
guillaume arruda
1c7f123911 Mark FStateTreeReference BlueprintType
#rnx

#rb mikko.mononen

[CL 32998046 by guillaume arruda in ue5-main branch]
2024-04-16 08:28:26 -04:00
mikko mononen
2b93815d0a StateTree: Improved event handling
- Added support for shared event buffer, so that multiple instance data can use the same
- Added API to consume events
- Removed double buffering from events
- Treat TriggerTransitions() as event handler (events flushed after each call to the method)
- Event handlers (including tasks) are executed in priority order
- Transitions and event capturing states can consume events on successful selection
- Added API to tick a StateTree in two passes (update tasks and trigger transitions)
- Change parallel tree tasks to do the task update in Tick(), and event handling in TriggerTransitions()
- Small improvements to the ST debugger to display events
- NOTE: this is breaking change for implementations that has relied events emitted during tick to be available on next EnterState()

#okfirgithub public
#rb Yoan.StAmant

[CL 32924765 by mikko mononen in ue5-main branch]
2024-04-12 06:04:01 -04:00
mikko mononen
2cd00ea993 StateTree: Added description to tasks and conditions.
#rb guillaume.arruda, Mieszko.Zielinski

[CL 32754702 by mikko mononen in ue5-main branch]
2024-04-05 04:18:10 -04:00
mikko mononen
b888b0f394 StateTree: Added automatic description to tasks and conditions.
#rb Mieszko.Zielinski

[CL 32754463 by mikko mononen in ue5-main branch]
2024-04-05 03:37:02 -04:00
mikko mononen
d5ede881de StateTree: Fix FStateTreePropertyRef example to guide correct type usage
- Fix FStateTreePropertyRef types in Env Query Task
- Fix too eager PVS warning

[CL 32754191 by mikko mononen in ue5-main branch]
2024-04-05 02:53:00 -04:00
mikko mononen
5e4d3a8a6c [Backout] - CL32744797
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL32723276
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Made parent state required events and enter conditions to be evaluated when transition leads directly to it's child. (contributed)

[CL 32754072 by mikko mononen in ue5-main branch]
2024-04-05 02:16:32 -04:00
bob tellez
adaa2e290a [Backout] - CL32723276
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Made parent state required events and enter conditions to be evaluated when transition leads directly to it's child. (contributed)

[CL 32744822 by bob tellez in ue5-main branch]
2024-04-04 17:51:12 -04:00
mikko mononen
b67864e0ad StateTree: Made parent state required events and enter conditions to be evaluated when transition leads directly to it's child. (contributed)
[CL 32723281 by mikko mononen in ue5-main branch]
2024-04-04 07:01:38 -04:00