Commit Graph

248 Commits

Author SHA1 Message Date
mikko mononen
a841531c2b StateTree: moved evaluators global to tree
- Deprecated per state evaluators and moved them to global to the tree
- Tick evals once per Tick()
- Updated editor node customizations to work on UStateTreeEditorData
- Added separate detail customization for UStateTreeEditorData

#jira UE-147508
#rb Yoan.StAmant
#preflight 62820e55046b81bf93911605

[CL 20221385 by mikko mononen in ue5-main branch]
2022-05-16 05:13:27 -04:00
mikko mononen
3077ab6616 StateTree: Commandlet to compile all StateTree assets
- Added StateTreeCompileAllCommandlet
- Fixed StateTree editor compile button indication

#jira UE-151007 UE-150881 UE-150883 UE-149897
#rb Yoan.StAmant
#preflight 627e31b9d445061f2a881a4f

[CL 20179071 by mikko mononen in ue5-main branch]
2022-05-13 06:32:28 -04:00
mikko mononen
97d82b0cb0 StateTree: shared instance data
- Separated condition instance data into a shared instance data (mutable but no persistent state)
- Made BP TestCondition() const, conditions should not hold state
- Added macro to define runtime data POD for faster init
- Added custom serialization version for UStateTree, older assets need recompile
- Updated memory reporting to be a bit more accurate, separated shared and unique data

#jira UE-147508
#rb Mieszko.Zielinski
#preflight 627b657d2d608c533b5cde15

[CL 20134929 by mikko mononen in ue5-main branch]
2022-05-11 04:04:58 -04:00
Yoan StAmant
5875739cb2 [StateTree] added StateTreeReference type customization
- StateTree asset allowed by a StateTreeReference can be filtered by using "meta=(schema="SomeSchema")" on the UPROPERTY of type StateTreeReference.
#rnx
#rb mikko.mononen
#preflight 627a6fd7e713fc6e2c4cddae

[CL 20122645 by Yoan StAmant in ue5-main branch]
2022-05-10 10:15:17 -04:00
lauren barnes
4b82e918fa Replacing legacy EditorStyle calls with AppStyle
#rb header and class name replacement

#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20078276 via CL 20078825
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20106316 by lauren barnes in ue5-main branch]
2022-05-09 13:51:26 -04:00
lauren barnes
5055406ba5 Fixing EditorStyle->AppStyle merge errors
#rb trivial

#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20073158 via CL 20073163
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20105762 by lauren barnes in ue5-main branch]
2022-05-09 13:32:48 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Yoan StAmant
35cf1ec0cb [StateTree] NamedExternalDataDescs are now copied from schema to the StateTree at compilation. Schema derived classes need to override only one method to provide their descriptors.
#rnx
#rb mikko.mononen
#preflight 6274282203269096abd41d8f

[CL 20063572 by Yoan StAmant in ue5-main branch]
2022-05-05 15:58:09 -04:00
Yoan StAmant
af7394cf27 [StateTree] replaced StateTreeParameters by InstancedPropertyBag
#rnx
#rb mikko.mononen
#preflight 6273ec0f03269096abc99574

[CL 20059078 by Yoan StAmant in ue5-main branch]
2022-05-05 12:02:47 -04:00
Matt Peters
d64cf41728 AssetRegistry includes (Engine Plugins): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270563191629533ec2b6f6e

[CL 20017756 by Matt Peters in ue5-main branch]
2022-05-02 18:59:38 -04:00
mikko mononen
12f7e6cc86 StateTree: Fix warning about FStateTreeStateParameters::ID is not initialized properly
#jira UE-150501
#rb Mieszko.Zielinski
#preflight 626a9804464ae4f520f336a0

[CL 19960859 by mikko mononen in ue5-main branch]
2022-04-28 09:47:16 -04:00
mikko mononen
f6770cf154 StateTree: Parametrized states
- Added specific "subtree" states which can be linked to via a "linked" state
- Subtrees can only bind data back to the their root state (or tree "global" data)
- Added property bag based parameters to subtree and linked states
- Update (transient) property bag structs before resolving property paths
- Linked states reflect their parameters from the state they link to
- Added property binding to and from parameters
- Relaxed the property binding to fail if the source data is not available
- Allow enter conditions to bind to tasks, and fail the expression if trying to access unaccessible data
- Added icon for linked and subtree states
- Added source type for all binding source structs
- Added UStateTreeEditorData::VisitHierarchy to simplify iterating over all states

#jira UE-147507
#rb Yoan.StAmant
#preflight 626a47182d28b9d0f77223f5

[CL 19954567 by mikko mononen in ue5-main branch]
2022-04-28 03:54:07 -04:00
mikko mononen
6240fdbf4a StateTree Editor: Corrected earlier fix.
#rb trivial
#preflight 6262536ed2644b9ff7d318dc

[CL 19861914 by mikko mononen in ue5-main branch]
2022-04-22 03:10:20 -04:00
marc audy
2ce43c7aff Fix invalid operands to binary expression ('const FStateTreeViewModelInsert' and 'int')
[CODEREVIEW] mikko.mononen
#rnx

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 19851557 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19853475 by marc audy in ue5-main branch]
2022-04-21 14:49:31 -04:00
mikko mononen
0a37a4d3a9 StateTree: Fix for crash when moving states
#jira UE-149306
#preflight 62615ac9080c66006375519e
#rb julien.marchand

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 19848705 in //UE5/Release-5.0/... via CL 19849612
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19853233 by mikko mononen in ue5-main branch]
2022-04-21 14:39:34 -04:00
mikko mononen
e38a996c3d StateTree: Fix crash in undo
- Fix crash when undoing a move or delete
- Cleaned up the logic for move and delete

#jira UE-149306
#review
#preflight 62614403360b45c32a8b2494

[CL 19847123 by mikko mononen in ue5-main branch]
2022-04-21 08:02:21 -04:00
mikko mononen
6ed68b3b02 StateTree: Allow to bind StateTree source structs directly.
#jira UE-147507
#review
#preflight 6257f5e9d606fd159eb7f743

[CL 19753012 by mikko mononen in ue5-main branch]
2022-04-14 06:28:13 -04:00
Yoan StAmant
c135ebcd95 [StateTree]
+ Added StateTree parameters usable for data bindings and that could be overriden on context initialization by a StateTreeReference
+ Added StateTreeReference struct to hold a reference to a StateTree asset along with a list of values to parameterized the tree.
+ Added named external data items that are defined bt the Schema and for which values must be provided at runtime through the execution context.
+ Added delegate OnPostCompile after successful compilation. The StateTreeReference listens to it to validate its parameters
+ EditorData now contains its own version of the schema and parameters. On successful compilation they are copied over the StateTree own properties.
#rnx
#rb mikko.mononen
#preflight 6255d281647ad886b3593cb0

[CL 19727363 by Yoan StAmant in ue5-main branch]
2022-04-12 15:55:39 -04:00
Yoan StAmant
8c9e8dfd54 [StateTree] allow transition to "Tree Succeeded" or "Tree Failed" from StateLink combo box
#rnx
#rb mikko.mononen
#preflight 6255648b3b3936170e3e0795

[CL 19718909 by Yoan StAmant in ue5-main branch]
2022-04-12 07:54:29 -04:00
Yoan StAmant
7512cab31d [StateTree] updated GetPropertyCompatibility for property to ObjectPtr to restrict to the class hierarchy
#rb mikko.mononen
#rnx
#preflight 625428a2955c31948d1d0f56

[CL 19705380 by Yoan StAmant in ue5-main branch]
2022-04-11 09:13:30 -04:00
Yoan StAmant
b4f64a59e0 [StateTree] external data validation from schema supported types
- fixed external requirements set by StateTreeBrainComponent to find more specific actor classes first before defaulting on AActor
- added missing supported type FMassSharedFragment for MassStateTreeSchema
- moved StateTreeLinker to it own file and handle its potential failures
#rb mikko.mononen
#rnx
#preflight 624d98fd8e5ae00f0aca3123

[CL 19646871 by Yoan StAmant in ue5-main branch]
2022-04-06 10:04:05 -04:00
mikko mononen
b156e83342 StateTree: Renamed baker to compiler
#jira none
#rb Yoan.StAmant
#preflight 624c465da64871f1a10a2ee6

[CL 19624175 by mikko mononen in ue5-main branch]
2022-04-05 09:44:28 -04:00
mikko mononen
ef8889a1c4 StateTree: Added functionality to call and reuse a subtree
- Removed unnecessary checks for specific transition (handled in enter state logic)
- Added state type to StateTreeState, State, Group, or Linked
- StateTreeState property customization hides properties based on type
- Allow a state to link to another state
- Changed baker binding validation to handle linked states
- Added linked state handling in execution context
- Updated UI deal with linked states
- Updated gameplay debugger to deal with linked states
- Moved automatic Root state adding from Editor data to editor open (tests were broken due to extra root state)
- Fixed tests and added simple test for linked state
- Added meta to tag to state link to allow to select only direct states (no next, etc)
- Added counter to track state changes (mainly for debugging)

#jira UE-147509
#review
#preflight 624beb69637925b5d306d8e7

[CL 19621621 by mikko mononen in ue5-main branch]
2022-04-05 03:20:57 -04:00
mikko mononen
f820c24012 StateTree: fix for nonunity build
#jira UE-147399
#rb trivial
#preflight 6243ff06e434babd8ae00d3b

[CL 19554341 by mikko mononen in ue5-main branch]
2022-03-30 03:15:13 -04:00
mikko mononen
1e28b99891 StateTree: Condition expressions
#jira UE-146925
#review-19478890
- Added ability to combine conditions into expressions
- Added editor UI for the expressions
- Replaced condition description with a name (makes the expressions faster to skim)
#preflight 62417309361866e20ffa6320

[CL 19524558 by mikko mononen in ue5-main branch]
2022-03-28 04:48:50 -04:00