Commit Graph

214 Commits

Author SHA1 Message Date
mikko mononen
dd16540a54 StateTree: Storing global parameters data in instance storage.
- Implies that parameters are only set once at start
- Allows parameters to be safely mutated if needed, e.g. via property references

[CL 30765232 by mikko mononen in ue5-main branch]
2024-01-22 05:38:03 -05:00
mikko mononen
d6c828e080 StateTree: Introduced TStateTreePropertyRef - type-safe FStateTreePropertyRef wrapper
#rb mikko.mononen tim.smith

[CL 30764929 by mikko mononen in ue5-main branch]
2024-01-22 05:01:31 -05:00
evgenii babinets
690bc2cbc4 Fixed unreachable code warnings/errors.
#rb simon.orr

[CL 30620936 by evgenii babinets in ue5-main branch]
2024-01-15 12:29:05 -05:00
steve robb
6f623bfddb Fixed pass-by-value archive in SerializeDataViewToArchive.
#rb yoan.stamant

[CL 30568948 by steve robb in ue5-main branch]
2024-01-11 10:41:12 -05:00
mikko mononen
e669bb6cd9 StateTree: Added property references (get pointer to a property based on binding)
- Added FStateTreePropertyRef which allows to get pointer to bindable output properties in the StateTree
- This will eventually supercede FStateTreeStructRef

[CL 30563615 by mikko mononen in ue5-main branch]
2024-01-11 04:24:45 -05:00
mikko mononen
e174346757 StateTree: Fixed crash in FStateTreeReference when no parameters are present
[CL 30526901 by mikko mononen in ue5-main branch]
2024-01-10 04:37:25 -05:00
mikko mononen
a0742e30e1 StateTree: Added option for State Tree parameters to be overridden.
- Added property override logic into FPropertyBagInstanceDataDetails
- Added hooks to allow to customize the peoperty override logic by deriving from FPropertyBagInstanceDataDetails
- Added array of overridden property IDs in FStateTreeReference

#rb Mieszko.Zielinski

[CL 30502099 by mikko mononen in ue5-main branch]
2024-01-09 07:30:16 -05:00
yoan stamant
8033d0dd79 [StateTreeDebugger] added trace event for conditions forced to a given result, either from an internal failure to access source data or from the evaluation mode set.
#jira UE-200473
#rb mikko.mononen

[CL 30480397 by yoan stamant in ue5-main branch]
2024-01-08 09:52:36 -05:00
yoan stamant
58e697959b [StateTreeDebugger] added trace event to make it more obvious that global task completion completes the tree
#jira UE-202523
#rb mikko.mononen

[CL 30480155 by yoan stamant in ue5-main branch]
2024-01-08 09:33:45 -05:00
mikko mononen
2e1d54f00c StateTree: Update state details after adding a globa task/eval so that bindings will pick up the new task
#jira UE-188114
#rb Yoan.StAmant

[CL 30389231 by mikko mononen in ue5-main branch]
2023-12-19 02:40:28 -05:00
mikko mononen
1503c2d68c StateTree: Clear struct references on FStateTreePropertyBindings::PerformResetObjects()
#jira UE-189896
#rb Yoan.StAmant

[CL 30388928 by mikko mononen in ue5-main branch]
2023-12-19 02:16:58 -05:00
yoan stamant
4f9060345b Fix CIS issue 408392 (seems to not be an issue with clang 17)
[CL 30299113 by yoan stamant in ue5-main branch]
2023-12-13 14:01:08 -05:00
yoan stamant
0fd9125ce9 Other fix for CIS issue 408344
[CL 30295174 by yoan stamant in ue5-main branch]
2023-12-13 11:37:30 -05:00
yoan stamant
291f8bc9e0 [StateTreeDebugger] support for linked tree assets
- added new dedicated section for completed states
#rb mikko.mononen

[CL 30293000 by yoan stamant in ue5-main branch]
2023-12-13 10:21:13 -05:00
mikko mononen
6f402b9027 StateTree: Added support for external data for nested tree.
#rb Mieszko.Zielinski

[CL 30289195 by mikko mononen in ue5-main branch]
2023-12-13 06:34:27 -05:00
matt peters
64658cf6ae GetAssetRegistryTags deprecation: Make the old GetAssetRegistryTags and related functions deprecated.
Upgrade the overrides and callsites in all of Epic's code.
Every class that can be subclassed by licensees that has its override change needs to keep the old version of the function as deprecated. Otherwise subclasses that call Super::GetAssetRegistryTags will have a compile error instead of a deprecation warning.
Several classes had their own extension method for GetAssetRegistryTags being passed on to user data classes. Updated all of those to take FAssetRegistryTagsContext just like GetAssetRegistryTags does.
#rnx
#rb Francis.Hurteau

[CL 30224166 by matt peters in ue5-main branch]
2023-12-08 21:45:21 -05:00
mikko mononen
400112a177 StateTree: Enabled parameters for all state types
- Allow each state to have parameters (not super useful yet)
- Made property bindings for parameters to retain binding when a param is renamed (keeps track of the property bag ID)
- Fixed access of temporary instance data with EStateTreeDataSourceType::StateParameterData
- Added comments for UStateTreeState properties
- Changed property order of UStateTreeState so that display data comes first, then state settings, and finally parameters
- Fixed FStateTreeStateParametersInstanceDataDetails to allow property editing and value binding at the same time

#rb Mieszko.Zielinski

[CL 30112368 by mikko mononen in ue5-main branch]
2023-12-05 06:59:39 -05:00
mikko mononen
9106379fa3 StateTree: Fix crash trying to access invalid instance data
- During state selection keep track if the current state we're expanding is part of the active states, if not prevent access to instance data

#jira UE-201217
#rb Mieszko.Zielinski

[CL 30036182 by mikko mononen in ue5-main branch]
2023-12-01 06:43:27 -05:00
mikko mononen
16962d6a2f StateTree: Added Linked Asset state type, which allows to link another asset as subtree.
- Added LinkedAsset State Tree State Type
- Allow to pick nested tree asset on LinkedAsset states
- Changed how linked state params are accessed using ParentFrame
- Added temporary instance data
- Temporaries are kept around until state selection
- Create temp instance data during state selection for state parameters (allows to create enter conditions based on subtree state params)
- Instantiate and Start linked State Trees global tasks and evaluators during state selection
- Matching temporary instances created during state selection are moved to instance data on state change (rest are discarded)
- Per node instance data is looked up just once, and FStateTreeExecutionContext::GetInstanceData() only serves the specific instance data.

#rb Mieszko.Zielinski, Yoan.StAmant

[CL 30012308 by mikko mononen in ue5-main branch]
2023-11-30 07:03:20 -05:00
mikko mononen
514c109ea2 StateTree: Fixed crash caused by GetDataView() with SharedInstanceDataObject returning the wrapper struct and not the actual object.
[CL 29916888 by mikko mononen in ue5-main branch]
2023-11-24 04:04:27 -05:00
mikko mononen
19a1c42998 StateTree: remove redundand check for running state when stopping the StateTree.
[CL 29916525 by mikko mononen in ue5-main branch]
2023-11-24 02:48:28 -05:00
yoan stamant
ce114b5c09 [StateTreeDebugger] minor changes to improve timeline visualization and to properly handle unbound delegates.
#rb Mieszko.Zielinski, mikko.mononen
#rb mieszko.zielinski

[CL 29888621 by yoan stamant in ue5-main branch]
2023-11-22 10:29:04 -05:00
mikko mononen
a500b14b6a 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 29884503 by mikko mononen in ue5-main branch]
2023-11-22 04:08:33 -05:00
mikko mononen
1c8d84c76c StateTree: Automatic recovery from older that with duplicate node IDs
#rb Yoan.StAmant

[CL 29883952 by mikko mononen in ue5-main branch]
2023-11-22 02:40:49 -05:00
marc audy
763a611985 Fix C4072 warnings
#rnx

[CL 29852844 by marc audy in ue5-main branch]
2023-11-20 17:26:53 -05:00