Commit Graph

223 Commits

Author SHA1 Message Date
mikko mononen
72c488d0cf StateTree: Changed how instance data is accessed
- Remove DataView concept
- Added FStateTreeExecutionFrame, which defines an active branch of a specific state tree that is running
- Added FStateTreeDataHandle, which allows frame relative access of instance data (replaces the DataViews)
- Changed linked states to spawn new frames (will later extend to handle linked trees on other assets)
- Bumped StateTree data version number, requires recomplation of StateTrees

#rb Yoan.StAmant

[CL 29805087 by mikko mononen in ue5-main branch]
2023-11-17 07:41:08 -05:00
mikko mononen
44d7dc29e1 StateTrees: Made StateTreeLinker handle IInterface types
[CL 29553306 by mikko mononen in ue5-main branch]
2023-11-08 02:43:58 -05:00
mikko mononen
2372c0c1e7 StateTree: Fixed binding validation and binding display update issues
- Added Modify() for the validation functions so that they behave nice with undo (e.g. a binding may be removed by validation)
- Changed FCachedBindingData::ConditionallyUpdateData() to check if the binding has changed so that the caching reacts to undos and other modifications
- Changed FStateTreePropertyPath::ResolveIndirectionsWithValue() to fall back to the property object type, on null objects (previous logic was preventing some valid cases on empty instances)

#rb Mieszko.Zielinski

[CL 29553170 by mikko mononen in ue5-main branch]
2023-11-08 02:26:27 -05:00
mikko mononen
5260606711 StateTree: Fixed invalidating binding to parameter of Object type.
#jira UE-197989

[CL 29039713 by mikko mononen in ue5-main branch]
2023-10-24 04:44:08 -04:00
juan portillo
09c6561997 [StateTree]
Added "Next Selectable State" transition option which is similar to "Next State" but the difference is that if the next state fails to be selected (i.e. enter condition failed), then instead of going back up the hierarchy, it will try to select the next sibling until it finds one that is selectable or if it reached the end of the sibling list.

#rb Mikko.Mononen
#jira UE-198276

[CL 28852004 by juan portillo in ue5-main branch]
2023-10-17 16:15:53 -04:00
juan portillo
8e6093cead [StateTreeDebugger]
- Fixed crash when closing and reopening State Tree Debugger
- Exported FStateTreeTraceActiveStatesEvent constructor

#rb Yoan.StAmant
#rnx

[CL 28669926 by juan portillo in ue5-main branch]
2023-10-11 12:52:48 -04:00
juan portillo
aa0f4756ed [StateTreeDebugger]
Changed Tree Path from being just the package name to the actual object path

#rb Yoan.StAmant
#rnx

[CL 28669083 by juan portillo in ue5-main branch]
2023-10-11 12:38:41 -04:00
yoan stamant
4124dceb00 [StateTreeDebugger] Fixed condition trace events.
Now sent before reseting the bindings
#jira UE-196687
#rb mikko.mononen

[CL 28494509 by yoan stamant in ue5-main branch]
2023-10-05 08:21:08 -04:00
yoan stamant
2dbcbee1ae [StateTreeDebugger] Fixed task breakpoints by using OnEntered/OnExited events instead of OnEntering/OnExiting since Tasks only traced the former.
#rb mikko.mononen

[CL 28468259 by yoan stamant in ue5-main branch]
2023-10-04 14:50:21 -04:00
steve robb
a84e22104b Replaced GET_VARARGS* macros with GET_TYPED_VARARGS*.
#rb james.hopkin
#jira UE-194628

[CL 28346416 by steve robb in ue5-main branch]
2023-09-29 13:00:07 -04:00
yoan stamant
8638187e4a [StateTreeDebugger] removed ensure that was for local debugging only
#rb trivial
#rnx

[CL 28137306 by yoan stamant in ue5-main branch]
2023-09-22 11:13:54 -04:00
yoan stamant
1e3df2603b [StateTree] Added deferred stop and validation for reentrant calls to Start/Stop/Tick.
#rb mikko.mononen

[CL 28133788 by yoan stamant in ue5-main branch]
2023-09-22 09:53:34 -04:00
yoan stamant
37c44c23e6 [StateTreeDebugger] can now auto start analysis of traces started from console command
#jira UE-195659
#rb mikko.mononen

[CL 28034432 by yoan stamant in ue5-main branch]
2023-09-20 10:01:01 -04:00
mikko mononen
92098af438 Adding additional error printout to UpdateSegmentsFromValue
UpdateSegmentsFromValue contains an optional field to print out additional info regarding failures. This change populates this field and the corresponding error log to print out the additional information.

#rb mikko.mononen

[CL 27988981 by mikko mononen in ue5-main branch]
2023-09-19 04:22:12 -04:00
yoan stamant
1e2e1923ec [StateTreeDebugger] added trace when transition tasks get evaluated
[CL 27601475 by yoan stamant in ue5-main branch]
2023-09-05 13:01:06 -04:00
louisphilippe seguin
36c722f3c4 Fix wrong printf parameters in checkf & ensuremsgf found in engine code
#rb Fabian.Giesen, Kirill.Zorin
#rnx

[CL 27519547 by louisphilippe seguin in ue5-main branch]
2023-08-31 08:56:30 -04:00
mikko mononen
391e15d1d9 StateTree: Changed bindings to not derefernce soft objects during copy
[CL 27518455 by mikko mononen in ue5-main branch]
2023-08-31 08:03:46 -04:00
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
5339b57aaa [StateTree]
Updated compiler to ignore disabled states when getting next sibling states.
Fixed transition to enabled states inside a disabled parent state.
#rnx
#rb mikko.mononen

[CL 27112355 by yoan stamant in ue5-main branch]
2023-08-15 14:21:54 -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
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