Commit Graph

202 Commits

Author SHA1 Message Date
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
a10f0364b9 StateTree: Remove ensure from ResolveIndirectionsWithValue()
- fails silenty, as we need to call it during runtiem load
- there's already a note on the method documentation about the behavior

[CL 26232215 by mikko mononen in ue5-main branch]
2023-06-26 09:15:23 -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
mikko mononen
4cd28df741 StateTree: Fix PatchBindings() for subtrees.
#jira UE-188822

[CL 26087601 by mikko mononen in ue5-main branch]
2023-06-19 08:35:03 -04:00
mikko mononen
0a339e13c3 StateTree: Prevent level Actor references in State Tree
- Added check in the compiler to error when level Actors are found in the node, instance or parameter properties
- Made debug text task's ReferenceActor optional input to hide the level actor picker

#jira UE-185445

[CL 26086218 by mikko mononen in ue5-main branch]
2023-06-19 05:49:34 -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
mikko mononen
717ebca643 State Tree: Fix handling of subtree completion transitions.
[CL 25926321 by mikko mononen in ue5-main branch]
2023-06-12 07:34:11 -04:00
yoan stamant
9deb197025 [StateTreeDebugger] updated some traces call sites in execution context
- State OnEnter no longer traced if a state is sustained (similar to OnExit)
- Added Task OnEnter for global and state tasks
- Added OnTicking and OnTicked for global tasks (same as state tasks)
#rnx
#rb none

[CL 25901710 by yoan stamant in ue5-main branch]
2023-06-09 15:27:31 -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
mikko mononen
77c9876457 StateTree: Fixed crash when a task is disabled
- Disabled tasks should update their DataViews

[CL 25888954 by mikko mononen in ue5-main branch]
2023-06-09 05:20:18 -04:00