Commit Graph

148 Commits

Author SHA1 Message Date
yoan stamant
f027516a12 [StateTreeDebugger] added trace status changed delegate that gets broadcasted by the StateTree module when traces are started or stopped. Debugger view can then keep recording button in sync.
#jira UE-192336
#rnx

[CL 27173965 by yoan stamant in ue5-main branch]
2023-08-17 11:23:30 -04:00
yoan stamant
6e26cbb348 [StateTreeDebugger] add traces for Evaluators
#rnx
#rb maxime.mercier

[CL 26901368 by yoan stamant in ue5-main branch]
2023-08-07 18:06:40 -04:00
yoan stamant
8aba578f59 [StateTreeDebuggger] Frame details view update:
- replaced node details view by embedding property values in the tree view
- node exported text (e.g. Task, Conditions, etc) is no longer imported in struct or object to avoid problems with missing types or property types with specific requirements (e.g. Object base property needs to find the specified value). Goal is to always be able to inspect key/value pairs.
- improved hierarchy of event to improve readibility
- started adding some custom row widgets for the different event types
- reworked the toolbar to regroup the different concepts (Simulation controls, Trace recording, Trace analyzing)
#rnx
#rb mikko.mononen

[CL 26855639 by yoan stamant in ue5-main branch]
2023-08-04 14:55:23 -04:00
yoan stamant
17811fc0e8 [StateTreeDebugger]
- Tracks are no longer cleared when running multiple consecutive PIE sessions unless 'bShouldDebuggerResetDataOnNewPIESession' is set to true in the StateTree Editor Settings. Non editor session analysis will always clear tracks.
- Added dedicated button to clear track data.
- Since tracks can be preserved between PIE session clamp range of the timelines is now the longest recording duration instead of the current session duration.
- Allow goto previous active states when scrubbing past the recording duration of the current analysis session
- Scrub buttons can now be used when the session is no longer active, regardless of the autoscroll state
- Manual scrubbing no longer change auto scroll status if session is not active
#rnx
#rb mieszko.zielinski
#jira UE-191087

[CL 26641868 by yoan stamant in ue5-main branch]
2023-07-27 11:27:43 -04:00
yoan stamant
3f326b2c0a [StateTreeDebugger]
- On breakpoint hit the tree view will select and focus on the associated state and event treeview will select the event that triggered the breakpoint
- added missing trace for exiting tasks
- scrub to the record time when breakpoint is hit so events tree view is synchronized to the right time (not the latest processed time)
#rb mikko.mononen

[CL 26268463 by yoan stamant in ue5-main branch]
2023-06-27 15:55:11 -04:00
yoan stamant
36d1541ccf [StateTree] moved some types to the execution types header
#rb mikko.mononen

[CL 26255500 by yoan stamant in ue5-main branch]
2023-06-27 09:07:17 -04:00
mikko mononen
0c9e82ff6d StateTree: Show mismatching property types on property binding
- Improved formatting of State Tree error messages
- Fixed GetDataViewByID to return true on null values but valid types (e.g. context data)
- Added check if property types match for property binding widget
- Cache current property binding data for binding widget

#jira UE-168333

[CL 26230591 by mikko mononen in ue5-main branch]
2023-06-26 06:34:49 -04:00
yoan stamant
6653455ac2 [StateTreeDebugger]
- created a dedicated option to auto-scroll and converted debugger pause to control event processing
- clear tracks when selecting new valid session
- scrub buttons can now be used as soon as analysis is pause of auto-scroll disabled
- fixed potential access to invalid struct view when processing a FStateTreeTraceNodeEvent
- added return value and output parameter to IStateTreeModule::StartTraces to take appropriate actions if traces was already active or not.
- added new button to the DebuggerView to control the session analysis state (pause or not). Mainly required when performing a remove analysis of non editor target.
- added new button to the DebuggerView to toggle auto-scroll. Manual selection in the timeline will turn it off so it can now be turned back on.
#rb mikko.mononen

[CL 26188376 by yoan stamant in ue5-main branch]
2023-06-22 14:18:20 -04:00
yoan stamant
6a69544705 [StateTree] Added option to construct a FStateTreeIndex16 directly from a uint16.
This fixes cases where we go from FStateTreeIndex16::Invalid to uint16 then back to FStateTreeIndex16.
#rb mikko.mononen

[CL 26185990 by yoan stamant in ue5-main branch]
2023-06-22 12:51:16 -04:00
yoan stamant
f687596e32 [StateTreeDebugger]
- enabled by default in the StateTreeEditor
- traces can be automatically started on non-editor targets by setting 'bAutoStartDebuggerTracesOnNonEditorTargets = true in StateTreeSettings or' under [/Script/StateTreeModule.StateTreeSettings]
in the .ini config file.
- traces can be manually started/stopped using `statetree.startdebuggertraces` and `statetree.stopdebuggertraces` from the console
#rb mikko.mononen

[CL 26152323 by yoan stamant in ue5-main branch]
2023-06-21 12:05:31 -04:00
yoan stamant
3110bb501b On behalf of mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Improved reconciling property names when they change
- Added PropertyGuid to FStateTreePropertyPathSegment to allow reconsile changed Blueprint class and User Defined Struct property names
- Changed FStateTreePropertyPath to optionally handle property redirects and BP/UDS name changes
- Renamed UpdateInstanceStructsFromValue to UpdateSegmentsFromValue to better reflect the use
- Improved State Tree editor bindings to update when BP/UDS properties are changed

#jira UE-184193, UE-168168

[CL 26148754 by yoan stamant in ue5-main branch]
2023-06-21 10:25:47 -04:00
mikko mononen
866e20fbf7 [Backout] - CL26143160
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Improved reconciling property names when they change
- Added PropertyGuid to FStateTreePropertyPathSegment to allow reconsile changed Blueprint class and User Defined Struct property names
- Changed FStateTreePropertyPath to optionally handle property redirects and BP/UDS name changes
- Renamed UpdateInstanceStructsFromValue to UpdateSegmentsFromValue to better reflect the use
- Improved State Tree editor bindings to update when BP/UDS properties are changed

#jira UE-184193, UE-168168

[CL 26145857 by mikko mononen in ue5-main branch]
2023-06-21 08:49:48 -04:00
mikko mononen
0b159c4cd2 StateTree: Improved reconciling property names when they change
- Added PropertyGuid to FStateTreePropertyPathSegment to allow reconsile changed Blueprint class and User Defined Struct property names
- Changed FStateTreePropertyPath to optionally handle property redirects and BP/UDS name changes
- Renamed UpdateInstanceStructsFromValue to UpdateSegmentsFromValue to better reflect the use
- Improved State Tree editor bindings to update when BP/UDS properties are changed

#jira UE-184193, UE-168168

[CL 26143169 by mikko mononen in ue5-main branch]
2023-06-21 04:10:57 -04:00
yoan stamant
7d4961a65f [StateTreeDebugger]
- added option to disable state transitions
- added state transition breakpoints
- fixed scrubbing not using the right time (analysis time instead of world simulation time) when hitting a breakpoint
- fixed new instance auto selection on record when previous selection is a stale subtrack
- added console variable `statetree.displayitemids` to display states, tasks and transitions Ids in the StateTreeEditor (details view and state treeview)
#rb mikko.mononen

[CL 26128077 by yoan stamant in ue5-main branch]
2023-06-20 13:49:25 -04:00
yoan stamant
8f75e0145f Fix for CIS Issue 319943
#rb none

[CL 26020565 by yoan stamant in ue5-main branch]
2023-06-15 14:05:21 -04:00
yoan stamant
869839957a [StateTreeDebugger] breakpoint improvements
- added support for breakpoint when exiting state (was only when entering)
- added support for breakpoint when entering or exiting a task
- state breakpoints can be added from contextual menu in the TreeView or from the Debug options in the details panel
- task breakpoints can be added from the Debug options in the details panel
- added feedback labels in the details panel for states and tasks with breakpoints
#rb mikko.mononen

[CL 26016378 by yoan stamant in ue5-main branch]
2023-06-15 11:38:28 -04:00
mikko mononen
c73a46dd7f StateTree: Updating bindings instanced structs while linking State Tree.
[CL 26007675 by mikko mononen in ue5-main branch]
2023-06-15 05:51:46 -04:00
mikko mononen
03109406a8 StateTree: Changed EnterState and TickState to events to allow latent tasks
- Added new EnterState and TickState and deprecated olds ones
- Added function to finish the state

#jira UE-187149

[CL 25947504 by mikko mononen in ue5-main branch]
2023-06-13 05:56:36 -04:00
mikko mononen
99e2d7f79f StateTree: Fix TriggerTransitions() call on tasks which have not been ticked this frame.
[CL 25946796 by mikko mononen in ue5-main branch]
2023-06-13 04:36:07 -04:00
yoan stamant
b8edc8af08 [StateTreeDebugger]
- Added buffered instance lifetime event in case recording is started of channel enabled after simulation is running with ticking instances.
- Fixed display issue for inactive instances
- Fixed edge case where we receive StateTree events before the first game frame of the FrameProvider for late recording sessions.
#rnx
#rb mikko.mononen

[CL 25898111 by yoan stamant in ue5-main branch]
2023-06-09 13:20:39 -04:00
yoan stamant
4556fc6dd3 [StateTreeDebugger]
- Added owner track to hold instance tracks as sub tracks. This will regroup all statetree instances running on the same owner during a recorded session.
   - Instance tracks are marked as stale at the end of the session but owner track can be reactivated from a subsequent PIE sessions (i.e. same owners as previous session)
- Added some placeholders icons for the two track types
#rnx
#rb mikko.mononen

[CL 25895424 by yoan stamant in ue5-main branch]
2023-06-09 11:45:15 -04:00
yoan stamant
08a5a8f2c6 [StateTreeDebugger] QOL improvements for PIE debugging
- improved the connection to the next live session in case other live traces are actives
- give priority to the Editor actions (e.g. start/stop recording or auto-record on PIE start) even if an analysis was active (remote process). This will stop current analysis and connect to the new live trace.
#rnx
#rb mikko.mononen

[CL 25894628 by yoan stamant in ue5-main branch]
2023-06-09 11:20:16 -04:00
yoan stamant
83ffd627a9 Fixed unitialized property
#jira UE-187994
#rnx
#rb trivial

[CL 25870454 by yoan stamant in ue5-main branch]
2023-06-08 10:06:52 -04:00
yoan stamant
fe0d176e22 [StateTree]
- fixed scrub state not refreshed when selecting another instance
 -added GetInstanceName and using it instead of GetInstanceDescription for the instance tree view to get lighter UI
- used a single external scrollbar for instances and timelines treeviews
#rnx
#rb mikko.mononen

[CL 25817285 by yoan stamant in ue5-main branch]
2023-06-06 11:25:12 -04:00
yoan stamant
dfdc26f0d4 [StateTree] added possibility to disable States and Tasks. Also possible to force condition result to true/false.
#jira UE-187154
#rb mikko.mononen

[CL 25796491 by yoan stamant in ue5-main branch]
2023-06-05 13:12:19 -04:00