Commit Graph

388 Commits

Author SHA1 Message Date
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
grant medine
74338326da [Backout] - CL29805076
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
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 29810071 by grant medine in ue5-main branch]
2023-11-17 11:42:17 -05:00
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
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
957a754981 StateTree: Patch transition IDs on older assets deterministically.
#jira UE-196729
#rb Yoan.StAmant

[CL 29356067 by mikko mononen in ue5-main branch]
2023-11-02 02:24:06 -04:00
mikko mononen
f8f4294d8f StateTree: Fixed crash when trying to add binding in a tree with no parameters
- Remove check(SourceStruct) from ArePropertyAndContextStructCompatible, which was triggering when adding a binding for a tree that has no parameters (SourceStruct is nullptr for empty params)

#rb Mieszko.Zielinski

[CL 29267857 by mikko mononen in ue5-main branch]
2023-10-31 03:38:41 -04:00
mikko mononen
bf88a3cfbd StateTree: Fixed binding validation for any enums
- Combined common binding validation methods
- Moved all property binding callbacks to the shared binding data

#jira UE-197482
#rb Yoan.StAmant

[CL 29124924 by mikko mononen in ue5-main branch]
2023-10-26 02:49:53 -04: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
aeeca0af96 State Tree:
- Fix crash when on item selected passes in nullptr

#rb Mikko.Mononen
#rnx

[CL 28320705 by juan portillo in ue5-main branch]
2023-09-28 12:21:10 -04:00
juan portillo
7b64d540dc State Tree:
- Added Themes, which change the coloring of both States and Tasks (tasks showing up a bit darker)

#rb Mikko.Mononen
#jira UE-196534

[CL 28231539 by juan portillo in ue5-main branch]
2023-09-26 11:50:26 -04:00