Commit Graph

235 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
juan portillo
756afecf52 State Tree Details:
- Disable Category Row Buttons if Property Editing is disabled

#rb mikko.mononen
#jira UE-204437

[CL 30764358 by juan portillo in ue5-main branch]
2024-01-22 03:26:23 -05:00
steve robb
6d5b974842 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30735396 by steve robb in ue5-main branch]
2024-01-19 19:41:56 -05:00
mikko mononen
b80c371c77 StateTree: Added parameter overrides for StateTree states
#rb Yoan.StAmant

[CL 30589270 by mikko mononen in ue5-main branch]
2024-01-12 05:08:35 -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
f6cedab062 PropertyAccess: Added a version of the OnCanAcceptProperty which gets the property chain passed in.
#rb thomas.sarkanen

[CL 30526373 by mikko mononen in ue5-main branch]
2024-01-10 03:38:34 -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
robomerge
1ac3b5078a StateTree: Changed guid fixup to be more deterministic.
#jira UE-202608
#rb Matt.Peters, Mieszko.Zielinski

[CL 30426680 by robomerge in ue5-main branch]
2023-12-21 07:27:54 -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
yoan stamant
ee861bd116 [StatetreeDebugger] fixed empty lines in some node details
#rb mikko.mononen

[CL 30383791 by yoan stamant in ue5-main branch]
2023-12-18 17:28:38 -05:00
mikko mononen
00ae9d4fac StateTree: Change StateTree editor transition display to reflect the execution logic
- The execution logic will transition to Root if no state is found, change editor to reflet that
- Change viewmodel from ref to ptr to make it optional (allows to reuse the row for non-editing purposes)

[CL 30315165 by mikko mononen in ue5-main branch]
2023-12-14 02:55:56 -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
b9896e5779 StateTree: FIx type on error message.
[CL 30289516 by mikko mononen in ue5-main branch]
2023-12-13 07:06:24 -05:00
mikko mononen
60a5dffa2d StateTree/SmartObjects: fix incorrect use of EFieldIterationFlags::None which prevents inherited struct's properties to be visited.
#rb Mieszko.Zielinski

[CL 30208750 by mikko mononen in ue5-main branch]
2023-12-08 07:31:01 -05:00
christopher waters
86af3ce99d Fixing various header only compile errors.
[CL 30138626 by christopher waters in ue5-main branch]
2023-12-05 17:55:30 -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
fc52c04579 StateTree: Fixed crash when removing a task from state
[CL 30073585 by mikko mononen in ue5-main branch]
2023-12-04 04:05:29 -05:00
mikko mononen
965459a538 StateTree: Fix Mac compiler not being able to figure out implicit cast from TObjectPtr<> to UObject
[CL 30073495 by mikko mononen in ue5-main branch]
2023-12-04 03:46:59 -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
1d6f7bf84f StateTree: Post edit change events for nodes and their instance data
[CL 29982274 by mikko mononen in ue5-main branch]
2023-11-29 02:52:24 -05:00
ben hoffman
9eb8a6c346 [State Tree] Add an option to retain property values when the class of a node changes
#rb Mikko.Mononen
#jira none

#ushell-cherrypick of 29774367 by kristof.morva1

[CL 29889580 by ben hoffman in ue5-main branch]
2023-11-22 11:37:49 -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