Commit Graph

26 Commits

Author SHA1 Message Date
marc audy
cd7919c4e7 Correct some inconsistencies with Dev-EngineMerge
#rnx

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 19531108 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532836 by marc audy in ue5-main branch]
2022-03-28 16:31:36 -04:00
yoan stamant
7641c72060 [SmartObject] updated API to remove all ensure and allow caller to provide unset handle or handle to object/slots that may not longer be registered in the simulation.
#rnx
#rb mikko.mononen
#rb josselin.francois
#preflight 623385990820efd0945e69d2

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19425613 via CL 19431559 via CL 19435646 via CL 19436095
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19437148 by yoan stamant in ue5-main branch]
2022-03-18 12:31:49 -04:00
yoan stamant
478d81a61b [SmartObject] handles for SmartObject and SmartObjectSlot passed by value
#rnx
#rb trivial
#preflight 62322b8c6e25767a218d46b0

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19410090 via CL 19412659 via CL 19426193 via CL 19426309
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19429514 by yoan stamant in ue5-main branch]
2022-03-17 19:07:54 -04:00
yoan stamant
4b56d97931 [SmartObject] added support for GameplayTags on runtime instance
+ SmartObjectComponent acts a bridge to sync tags from the RuntimeInstance and the AbilitySystemComponent (if present on the owning actor)
+ Component streamed out and back it will be bound with their persistent counterpart from the simulation and will synchronize their tags
+ RuntimeInstance and Slot now have a dedicated state when they are disabled when the instance tags don't pass the restrictions defined in the SmartObjectDefinition (ObjectTagFilter)
+ Made a pass to improve consistency in error reporting and methods descriptions
+ Added methods to validate if the object/slot associated to a FSmartObjectClaimHandle and FSmartObjectSlotHandle is still valid when those are stored and not used immediately after a call to any of the 'Find' or 'Claim' methods
#rnx
#rb mikko.mononen
#preflight 6230a0b4e65a7e65d68741e4

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19386803 via CL 19389419 via CL 19398538 via CL 19398590
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403765 by yoan stamant in ue5-main branch]
2022-03-16 03:47:02 -04:00
Mieszko Zielinski
3b7899bd86 Mass batching-focused API changes. "Old" mass commands completely removed and reimplemented as batched commands using the new batched API.
Also renamed:
FMassArchetypeSubChunks -> FMassArchetypeEntityCollection
FSubChunkInfo -> FArchetypeEntityRange
FArchetypeChunkCollectionWithPayload -> FMassArchetypeEntityCollectionWithPayload

One noteworthy CitySample's mass traffic code change:
FMassTrafficSimpleVehiclePhysicsTemplate.SimpleVehiclePhysicsFragmentTemplate changed from FInstancedStruct to FMassTrafficVehiclePhysicsFragmen since that's the only type ever used.

#review-19288149
#review-19268063
#review-19268048
#review-19268070
#review-19268239
#review-19267967
#preflight 6227720331133a23da452d70

[CL 19302836 by Mieszko Zielinski in ue5-main branch]
2022-03-08 10:30:07 -05:00
yoan stamant
9116dc7413 [SmartObject] access to activity tags should go through SmartObjectSlotView
+ Tags Filtering Policy now only affect TagQueries from the definitions and applied to UserTags provided by requests
+ Tags Merging Policy added for Activity Tags
#rnx
#rb josselin.francois
#preflight 621fab91257fd6e0996de3b2

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19225863 via CL 19236663 via CL 19236832 via CL 19236900
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19237559 by yoan stamant in ue5-main branch]
2022-03-02 22:33:53 -05:00
yoan stamant
05a440dcfb [SmartObject] added some Tags filtering policy
+ added activityTags in slot
+ added unit test for tag filtering and fixed unit tests messages
+ preview mesh and actor class are no longer exposed to the user in the definition asset (they should only be used by the editor for preview)
+ misc API cleanup and simplifications
#rnx
#rb mikko.mononen
#preflight 621e6a9dca28c5563431e601

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19204358 via CL 19212259 via CL 19212264 via CL 19212779
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19224407 by yoan stamant in ue5-main branch]
2022-03-02 13:25:37 -05:00
yoan stamant
7a006b2a96 [SmartObject]
- Maintain SmartObjectAnnotations up-to-date when dirtying collection
- Converted ensure to error log for null definition found while validating Definition from the SmartObjectCollection. Some data manipulations might create this scenario so warning the user with a proposed solution is more appropriate.
#rnx
#rb stephen.holmes
#preflight 621785d71a114ad50437ac82

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19113063 via CL 19113085 via CL 19113092 via CL 19113474
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19152856 by yoan stamant in ue5-main branch]
2022-02-25 14:18:42 -05:00
yoan stamant
722ecdcae0 [Smart object] Space partition structure is now configurable
* Created Default SmartObjectOctree
* Created Default SmartObjectHashGrid
* Type of space partition to use can be set in the smartobject config file: [/Script/SmartObjectsModule.SmartObjectSubsystem] SpacePartitionClassName=<ClassPath>
* Created DebugSceneProxy and RenderingComponent to share functionalities between susbystem and testing actor rendering components
#rnx
#rb mieszko.zielinski
#preflight 620fb51dec6f84cdfa3b2772

#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19050433 via CL 19050556 via CL 19050564 via CL 19057424
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19066037 by yoan stamant in ue5-main branch]
2022-02-21 01:10:34 -05:00
yoan stamant
aac2926da9 CIS issue #144192: [SmartObject] replaced call to ReplayBufferAgainstSystem by FlushCommands
#rnx

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19014621 via CL 19031914
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589)

[CL 19032141 by yoan stamant in ue5-main branch]
2022-02-17 03:40:54 -05:00
marc audy
6e38e5bb8b [SmartObject] added SmartObjectTestingActor
* added simple test to run a query and visualize the results
* added debug methods to force initialize/cleanup the simulation from the Editor world
* definition class is no longer mandatory (like other filtering options)
* parent object definition now accessible from SlotView
#rnx
#preflight 620c077d483ff0ae5ec4c544
#rb mieszko.zielinski, mikko.mononen

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 19014188 via CL 19014236 via CL 19014251 via CL 19031906
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589)

[CL 19032135 by marc audy in ue5-main branch]
2022-02-17 03:40:43 -05:00
josselin francois
8361eeb8b3 SmartObject : improvements
- Change the way to communicate between SO Evaluator, Service and BTTask,
- Manage Activities Cooldowns,
- Manage SmartObject Slot cooldown by user,
- Add GetActivityTags in SmartObjectSubsystem.
[REVIEW] [at]loic.devaux, [at]raphael.lapierre, [at]yoan.stamant
[FYI] philippe.painchaud, patrick.carroll, guillaume.morreel, loic.devaux, felix.laplante, youssef.trad
#tests PIE
#rnx

#ROBOMERGE-AUTHOR: josselin.francois
#ROBOMERGE-SOURCE: CL 18979507 via CL 18979533 via CL 18979562 via CL 18979623 via CL 18992705 via CL 18993044
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18997335 by josselin francois in ue5-main branch]
2022-02-15 11:34:26 -05:00
mieszko zielinski
47a27eada7 Added support for pushing commands while a command buffer is already being flushed.
Put the new logic in MassEntitySubsystem and refactored FMassCommandBuffer::ReplayBufferAgainstSystem's use and name.
This change resulted in `CheckIfEntityActive` failing on a regular basis so modified how it's being used. The function itself will undergo further changes soon.

#jira UE-141787
#preflight 6206226ab84973a2bb823161
#rb Yoan.StAmant
#lockdown Julien.Marchand

#ROBOMERGE-AUTHOR: mieszko.zielinski
#ROBOMERGE-SOURCE: CL 18951228 in //UE5/Release-5.0/... via CL 18951271 via CL 18951346
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18951348 by mieszko zielinski in ue5-main branch]
2022-02-11 08:53:05 -05:00
yoan stamant
db29723293 [SmartObject] refresh gizmos when slot offset or rotation is modified from the Details panel
#rnx
#rb maxime.mercier
#preflight 6202a023e85c7a08bbed6efa

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18906839 via CL 18907043 via CL 18907093 via CL 18918945 via CL 18919861
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18919910 by yoan stamant in ue5-main branch]
2022-02-09 12:15:14 -05:00
yoan stamant
3d91f96ca0 [SmartObject] flush MassEntity commands manually
This is the temporary way to force our commands to be processed until MassEntitySubsystem offers a threadsafe solution to push and flush commands in our own execution context.
#rb maxime.mercier
#rnx
#preflight 61faf0c49a71b11fd38ffe88

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18843246 via CL 18843254 via CL 18843257 via CL 18846202 via CL 18846670
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18846698 by yoan stamant in ue5-main branch]
2022-02-03 14:03:16 -05:00
yoan stamant
703cbb4169 [SmartObject] return all possible slots for matching object instead of only the first one
#rb aris.theophanidis

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18794203 via CL 18794609 via CL 18795800 via CL 18801442 via CL 18801643
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18801658 by yoan stamant in ue5-main branch]
2022-01-31 18:52:49 -05:00
yoan stamant
7e5986bb33 [MassSmartObject] improved interaction flow
+ added distinctive status values for Behavior completion (Processor) and Task completion (StateTree)
+ added deinitializer for MassSmartObjectUserFragment to unregister slot invalidation callback
+ moved MassSmartObjectTimedBehaviorProcessor update to SyncWorldToMass so it will update remaining use time the frame after the behavior got started and that also allow the fragments to be removed before the next update when the StateTreeTask completes/aborts the interaction.
+ replaced obsolete reference to LW Entity by MassEntity
+ sent signal when interaction gets aborted from an invalidated slot so behavior (StateTree) can react accordingly
#rb maxime.mercier
#preflight 61f2995d52396dbfeeebe420

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18752685 in //UE5/Release-5.0/... via CL 18752695 via CL 18756810
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18757097 by yoan stamant in ue5-main branch]
2022-01-27 14:06:19 -05:00
yoan stamant
99489ef091 [SmartObject]
+ added GetBehaviorDefinition to SmartObjectSubsystem to fetch behavior definition associated to a valid claim handle
+ fixed case where runtime data was removed before aborting active interaction
#rb maxime.mercier
#preflight 61f1c21e73238441cb6c92b0

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18745810 in //UE5/Release-5.0/... via CL 18745988 via CL 18746316
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18746543 by yoan stamant in ue5-main branch]
2022-01-26 17:33:02 -05:00
yoan stamant
04214fbc78 [SmartObject] allow custom definitions (FSmartObjectSlotDefinitionData) and transient state data (FSmartObjectSlotStateData) per slot using MassEntity
+ replaced all methods Describe by LexToString
+ unified naming from "*ID" to *Handle
#preflight 61e85d121000e8c59a78c886
#rb mikko.mononen

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18662203 in //UE5/Release-5.0/... via CL 18662234 via CL 18662264
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18662291 by yoan stamant in ue5-main branch]
2022-01-19 14:16:16 -05:00
yoan stamant
75119e5dda [SmartObject] minor log improvements
#rb aris.theophanidis
#preflight 61df41daa63213484e0c6db0

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18589499 in //UE5/Release-5.0/... via CL 18589524 via CL 18589547
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18589566 by yoan stamant in ue5-main branch]
2022-01-12 16:15:32 -05:00
yoan stamant
416fcaaf5c [SmartObject] removed bounds from runtime data
#rb trivial
#preflight 61d895e0c65e66487b38121d

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18549497 in //UE5/Release-5.0/... via CL 18549525
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18549574 by yoan stamant in ue5-release-engine-test branch]
2022-01-07 14:47:39 -05:00
yoan stamant
73f02f5af9 [SmartObjects] integration of (18039396, 18230600, 18263205, 18300133, 18301080) from UE5
#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18301426 via CL 18301593 via CL 18301595 via CL 18301822 via CL 18301845
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18301862 by yoan stamant in ue5-release-engine-test branch]
2021-11-26 15:48:13 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
yoan stamant
507c621be5 [SmartObjectAnnotations] delegate to rebuild annotations once MainCollection is set
#rb maxime.mercier
#preflight 6182cbeb61c92700017ae842

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 18039396 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18039425 by yoan stamant in ue5-release-engine-test branch]
2021-11-03 15:47:51 -04:00
yoan stamant
1cbe440fe2 [SmartObjects]
* Collection entry holds the Transform, Bounds and Index to the shared configuration. This removes the dependency on components being loaded to create runtime data for partitioned worlds.
* Removed commented references to SparseClassData since that approach won't be used (actor component not supported)
* Runtime data now points to a shared configuration from the collection instead of holding a copy
* Subsystem tracks components registered at runtime so the collection can be updated accordingly since those entries won't persist outside of loading range
* Moved most initialization code for the subsystem to the OnWorldComponentsUpdated callback since active level collection is set and actors from the persistent level registered.

[WorldPartitionBuilder]
* Added OnPartitionBuildStarted/OnPartitionBuildCompleted virtual methods
* New UWorldPartitionSmartObjectCollectionBuilder to build SmartObjectCollection in partitioned worlds

#preflight 61814a46fc786a0001447995
#jira UE-105113
#rb maxime.mercier

#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-COMMAND: FnMain
#ROBOMERGE-SOURCE: CL 18019580 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0
#ROBOMERGE[bot1]: Main

[CL 18019655 by yoan stamant in ue5-release-engine-test branch]
2021-11-02 11:12:43 -04:00