Commit Graph

68 Commits

Author SHA1 Message Date
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
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
Yoan StAmant
55e9970a99 [StateTree] misc trivial changes
- removed dependencies on someplugins (GameplayBehaviors, GameplayAbilities and SmartObjects)
#rnx
#rb none
#preflight 624b28c03a5a4c1622fb45ca

[CL 19612244 by Yoan StAmant in ue5-main branch]
2022-04-04 13:53:17 -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
mikko mononen
49de6cb549 StateTree: Fix for instance data when compiling BP classes
- Moved instance object directly on FStateTreeInstanceData to make easier to access
- Internal instance data on FStateTreeExecutionContext is not property to simplify handling
- Link & resolve properties on UStateTree when objects are replaced (to refresh cached property pointers)
- Moved instance data initialization out from FStateTreeExecutionContext
#preflight 623b0bff10251d53d5823f3e

[CL 19477789 by mikko mononen in ue5-main branch]
2022-03-23 08:06:00 -04:00
julien marchand
f07cb02ce7 StateTree: Fix StateTree asset getting dirtied after PIE
- Mark the StateTree instance data standalone and transient
- Mark references to StateTree instance data struct transient

#jira UE-144758
#rb mieszko.zielinski
#preflight 6228846e0d5a90e98eb5fb0e
#lockdown nick.whiting

#ROBOMERGE-OWNER: julien.marchand
#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 19320692 in //UE5/Release-5.0/... via CL 19323985
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19348060 by julien marchand in ue5-main branch]
2022-03-10 21:51:53 -05:00
mikko mononen
95cec28098 StateTree: Moved instance data out from framents
- Added new struct to hold instance data
- Removed on the fly created customs struct for storing the instance data
- The Mass StateTree instance data is not a fragment anymore
- Fixes crash when using StateTreeBrainComponent directly on actor
- Moved StateTree activation processor settings to Mass Behavior settings

#jira UE-133870
#rb Yoan.StAmant
#preflight 62178318db60b6b592190db8

[CL 19112506 by mikko mononen in ue5-main branch]
2022-02-24 08:19:23 -05:00
jamie dale
cfdad64946 Added context to PostCDOCompiled and also call it for skeleton-only compiles
#jira
#preflight 6210112553204823ae8bcf4f
#rb Michael.Noland

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 19058032 via CL 19058041 via CL 19058078 via CL 19058094 via CL 19059619
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19066317 by jamie dale in ue5-main branch]
2022-02-21 02:04:58 -05:00
marc audy
0ea36d760e Post merge fixes
#rnx
#jira

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 18973179 via CL 18973181 via CL 18992565 via CL 18992932
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18997164 by marc audy in ue5-main branch]
2022-02-15 11:27:51 -05:00
yoan stamant
2941cd8742 Fix LOCTEXT conflicts
#rnx
#jira UE-141418
#rb mieszko.zielinski
#preflight 6202675074604bc6b17aa819
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18902462 in //UE5/Release-5.0/... via CL 18902516 via CL 18902599
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v912-18901109)

[CL 18902602 by yoan stamant in ue5-main branch]
2022-02-08 10:48:31 -05:00
Yoan StAmant
9b86735803 Fixed some uninitialized struct members
#rnx
#rb maxime.mercier
#preflight 61fc330d0a50c2606f266708

[CL 18848377 by Yoan StAmant in ue5-main branch]
2022-02-03 15:08:43 -05:00
mikko mononen
841dd874f1 StateTree: Renamed item to node
- Renamed uses of item to node
- Added base class for Conditions, Evals & Tasks

#jira UE-140363
#rb mieszko.zielinski
#preflight 61fa4083db42673a6020f1fb
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18841581 in //UE5/Release-5.0/... via CL 18841871 via CL 18842048
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18842354 by mikko mononen in ue5-main branch]
2022-02-03 09:13:49 -05:00
mikko mononen
4c4df21caf StateTree Editor compile improvements
- Added Compile button and compilation state indication
- Removed compile-on-save
- Prevent compiling during PIE

#jira UE-140363
[REVIEW]
#preflight 61f91266c54b18c42dcefc21

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18806713 in //UE5/Release-5.0/... via CL 18808593 via CL 18822193
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18822498 by mikko mononen in ue5-main branch]
2022-02-02 02:46:49 -05:00
mikko mononen
371377a22c StateTree: small editor improvements
- Removed State Succeeded/Failed from transitions as it currently does not make sense
- Change "Add Routine" button to "Add State"
-Rrenamed routines to SubTrees, generally support just one
- Add a root node by default

#jira UE-140363
#rb Yoan.StAmant
#preflight 61f3a6bf801201ab387c9b99

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18769095 in //UE5/Release-5.0/... via CL 18769102 via CL 18769116
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18769117 by mikko mononen in ue5-main branch]
2022-01-28 03:38:15 -05:00
maxime mercier
c0ec2b7948 Flatten instanced struct hierarchy
#jira none
#rnx
#preflight 61b39f0d180f781e43397899

#ROBOMERGE-AUTHOR: maxime.mercier
#ROBOMERGE-SOURCE: CL 18432399 in //UE5/Release-5.0/... via CL 18435405
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435896 by maxime mercier in ue5-release-engine-test branch]
2021-12-10 18:06:46 -05:00
mikko mononen
defa3321a1 StateTree CIS fix
#jira none
trivial

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18418163 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v897-18405271)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18418191 by mikko mononen in ue5-release-engine-test branch]
2021-12-09 08:32:07 -05:00
mikko mononen
cfabe1b4e1 StateTree: control flow evaluators
- added base class for common evaluators
- added cooldown guard
- added selection guard

#jira none
#preflight 61b1d4b6764790bee6ade85a

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18417343 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v897-18405271)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18417348 by mikko mononen in ue5-release-engine-test branch]
2021-12-09 05:40:14 -05:00
mikko mononen
472bd7dfc8 StateTree improvements:
- EnterState() stops on failure, ExitState() handled symmetrically up to the last failed task
- Allow to run evaluators when reselecting a state after failed EnterState()

#jira none
#preflight 61b1d3e2274068529fddcafe

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18417260 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v897-18405271)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18417297 by mikko mononen in ue5-release-engine-test branch]
2021-12-09 05:27:27 -05:00
mikko mononen
c866e28ab8 StateTree: allow schema to configure editor
- allow to disable enter conditions and evaluators
- allow to configure state to have just one task

#jira UE-135723
#preflight 61b067d35c61dba07bef0718

#ROBOMERGE-AUTHOR: mikko.mononen
#ROBOMERGE-SOURCE: CL 18403954 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v896-18170469)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18403964 by mikko mononen in ue5-release-engine-test branch]
2021-12-08 03:32:02 -05:00
mark lintott
4718cadfa5 Fix for Static Analisys Warnings
#rb trivial
#jira none
#preflight 61acb115832ebaf948859b99

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18378206 in //UE5/Release-5.0/... via CL 18378220
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18378225 by mark lintott in ue5-release-engine-test branch]
2021-12-05 07:40:47 -05:00
jon nabozny
0d5fc99c2a Prevent MassAI and StateTree from crashing when invalid StateTree assets are used.
Added a check to make usre StateTrees have valid instances, and prevented adding Mass Behavior subsystems when an ExecutionContext fails to initialize.

[FYI] [at]Julien.Marchand, [at]Mikko.Mononen
#jira UE-134972, UE-134977

#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 18192097 via CL 18372150 via CL 18372271
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18372327 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 15:35:57 -05:00
mark lintott
2e931a7335 More Non-Unity fixes..
#rb none
#jira none
#preflight 61a796441d2787d839607373

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18339559 in //UE5/Release-5.0/... via CL 18339565
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18339570 by mark lintott in ue5-release-engine-test branch]
2021-12-01 10:50:36 -05:00