Commit Graph

32 Commits

Author SHA1 Message Date
mikko mononen
a82ca89e98 StateTree: Added support for event payload in transitions and event capture for states. (contributed) [take 2]
- Transitions can now be set up to require a specific payload type and/or a gameplay tag
- Required transition event payload is visible to property bindind for transition conditions
- States can require an event type as enter condition, the event is captured when state is selected
- Required state event payload is visible to binding for state enter conditions, tasks and transistions

[CL 32150454 by mikko mononen in ue5-main branch]
2024-03-11 04:54:44 -04:00
bob tellez
0189872e84 [Backout] - CL32082262
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
StateTree: Added support for event payload in transitions and event capture for states. (contributed)
- Transitions can now be set up to require a specific payload type and/or a gameplay tag
- Required transition event payload is visible to property bindind for transition conditions
- States can require an event type as enter condition, the event is captured when state is selected
- Required state event payload is visible to binding for state enter conditions, tasks and transistions

[CL 32113027 by bob tellez in ue5-main branch]
2024-03-07 23:49:50 -05:00
mikko mononen
cec24c894d StateTree: Added support for event payload in transitions and event capture for states. (contributed)
- Transitions can now be set up to require a specific payload type and/or a gameplay tag
- Required transition event payload is visible to property bindind for transition conditions
- States can require an event type as enter condition, the event is captured when state is selected
- Required state event payload is visible to binding for state enter conditions, tasks and transistions

[CL 32082269 by mikko mononen in ue5-main branch]
2024-03-07 06:53:02 -05:00
mikko mononen
e329242707 StateTree: Blueprint Property Ref.
- State Tree property ref which can be used in BP tasks

[CL 31470182 by mikko mononen in ue5-main branch]
2024-02-14 09:04:52 -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
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
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
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
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
Steve Robb
17cdae8d53 Fixed mismatched copy constructor/assignment operator in FStateTreeEditorPropertyPath.
#rb none
#jira none
#preflight none

[CL 25197646 by Steve Robb in ue5-main branch]
2023-04-26 10:20:08 -04:00
mikko mononen
546d4df750 StateTree: Link state tree when a BP recompiled
- Fixes a crash in property bindings which tried to access data based on the old BP class layout

#preflight 64394feb9566b61450e4c856

[CL 25049335 by mikko mononen in ue5-main branch]
2023-04-14 16:36:43 -04:00
mikko mononen
34a1e22051 StateTree: Allow to bind to deep property paths (including arrays and instanced struct/object)
- refactored the property binding representation, editor binding shave now more structure, and removed intermediate representation
- added functionality to resolve property paths agains a known value
- added instanced struct and object indirection types
- added editor functionality to allow to bind to further than first level of properties
- refactored editor tree traversal, allow to access values too
- simplified statetree node ui
- requires to recompile trees, bumped version

#rb Mieszko.Zielinski
#preflight 63e6204ff15c83b79312aca5

[CL 24117094 by mikko mononen in ue5-main branch]
2023-02-10 07:22:48 -05:00
henrik karlsson
9a1d5b1ad4 [Engine/Plugins]
* Ran IWYU on ~170 plugins to remove includes not needed. Public api still keep old includes inside #if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_2

#preflight 63d09351574ab9cae4670216
#rb none

[CL 23844750 by henrik karlsson in ue5-main branch]
2023-01-25 02:42:36 -05:00
mikko mononen
ab3816dd30 StateTree: Added global tasks
- Added global tasks which are run at tree level similar to evals (will replace evals)
	- allows initial state selection to rely in calculated data (e.g. world conditions)
	- allows better reuse of existing logic
- Call evaluator stop in reverse order
- Use some uses of mutable instanced structs
- Copy bindings along with ST nodes
- Remove bindings when removing a ST node, so that undo can restore them

#rb Yoan.StAmant
#preflight 63bd2c7968068a8bd6395d2c

[CL 23632408 by mikko mononen in ue5-main branch]
2023-01-10 15:44:28 -05:00
mikko mononen
1cc286a596 StateTree: Add indirection to FStateTreeInstanceData so that it can be bitwise relocated.
#rb Mieszko.Zielinski
#preflight 63872b0d3377450900b579a6

[CL 23325782 by mikko mononen in ue5-main branch]
2022-11-30 07:17:26 -05:00
mikko mononen
1c69b826cc StateTree: Added node validation during compilation
- Added a pass during compilation when node and instance data can be checked and adjusted by the node
- Changed blueprint based task to copy flags to the node in Compile()
- Changed relevant gameplay interaction tasks to check tags during Compile()

#rb Mieszko.Zielinski
#preflight 6377724cf514e1ded9a5ff44

[CL 23193668 by mikko mononen in ue5-main branch]
2022-11-18 08:38:31 -05:00
mikko mononen
0d47d49765 StateTree: Context Objects
- Cleaned up Blueprint nodes from deprecated functions
- Added call guards for BP implemented events on BP nodes
- Renamed Named External Data to Context (Object/Data)
- Added automatic binding for Context objects
- Added UI visualization for Context properties and cleaned up the Input/Ouput visualization
- Added compiler errors for missing Input and Context properties

#jira UE-156544 UE-147509
#rb Stephen.Holmes

[CL 22084585 by mikko mononen in ue5-main branch]
2022-09-19 19:47:11 -04:00
mikko mononen
cb133991e1 StateTree: include mode double conversion for the type promotions
#rb Mieszko.Zielinski Stephen.Holmes
#preflight 631b016a304480f8f893dc7a

[CL 21918321 by mikko mononen in ue5-main branch]
2022-09-09 07:14:47 -04:00
Zousar Shaker
3f4252aa56 ObjectPtr upgrade for engine plugins used from UnrealEditor -allmodules. Automated upgrade process.
#rb none
#preflight 62fe7f270601ad0504910c30

[CL 21447894 by Zousar Shaker in ue5-main branch]
2022-08-18 15:08:49 -04:00
mikko mononen
841f7320c9 StateTree struct reference
- added functionality to allow to use property binding to get pointer to another struct property
- converted mass smart object and movement tasks to use struct ref

#jira none
#robomerge EngineMerge
#rb Yoan.StAmant
#preflight 62bc0d51e353c20ac23fbf39

[CL 20871790 by mikko mononen in ue5-main branch]
2022-06-29 04:52:18 -04:00
mikko mononen
abc2561ecf StateTree: Fix property binding for direct struct access
#jira none
#rb Yoan.StAmant
#preflight 6299c84c1941378d7c97e7aa

[CL 20484161 by mikko mononen in ue5-main branch]
2022-06-03 04:55:42 -04:00
mikko mononen
cd197fcb3e StateTree: refactored index types
- Changed FStateTreeHandle to FStateTreeStateHandle, used only for indexing states
- Added uint16 and uin8 index types, which can represent invalid index (aka INDEX_NONE)
- Changed indices that can be optional to the index types above
- Added validation and error loggic when index types overflow during compile
- Removed 2 indirections (in common case) and halved the memory usage of property copies

#jira none
#rb Mieszko.Zielinski
#preflight 6295d26e91004dd61ced370b

[CL 20434838 by mikko mononen in ue5-main branch]
2022-05-31 04:51:18 -04:00