Commit Graph

34 Commits

Author SHA1 Message Date
yoan stamant
47369fe7a4 [SmartObject] Validate definition asset on post load
- Enabled GameplayDebuggerCategory in Test builds
- Added debug labels when UE_DEBUG_DRAWING is not defined so at least we can have text at smartobject/slot locations
#jira UE-211487
#rb Mieszko.Zielinski, mikko.mononen

[CL 32853860 by yoan stamant in ue5-main branch]
2024-04-10 08:22:36 -04:00
matt peters
cbc73af6cc SmartObjects: CookDeterminism: Replace GetTypeHash(FName) with GetTypeHash(FString) so that it uses persistent data for the hash rather than the ephemeral ComparisonId of the FName.
#rnx
#rb mikko.mononen

[CL 32082903 by matt peters in ue5-main branch]
2024-03-07 08:03:24 -05:00
mikko mononen
2394d7bbd1 Smart Object: Added parameters for Smart Object Definition (take 2)
- Added ability to parameterize the SOD using parameters and property copy
- Each Asset stores and shares a variations based parameter hash

#rb Yoan.StAmant

[CL 30965071 by mikko mononen in ue5-main branch]
2024-01-29 06:26:17 -05:00
edwin maynard
483765d326 [Backout] - CL30836941 (backed out due to potential content errors)
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
Smart Object: Added parameters for Smart Object Definition
- Added ability to parameterize the SOD using parameters and property copy
- Each Asset stores and shares a variations based parameter hash

#rb Yoan.StAmant

[CL 30842479 by edwin maynard in ue5-main branch]
2024-01-24 09:54:41 -05:00
mikko mononen
a4f8b85727 Smart Object: Added parameters for Smart Object Definition
- Added ability to parameterize the SOD using parameters and property copy
- Each Asset stores and shares a variations based parameter hash

#rb Yoan.StAmant

[CL 30836942 by mikko mononen in ue5-main branch]
2024-01-24 03:53:02 -05:00
yoan stamant
67c4a8f7ac [SmartObject] added config to clear world preconditions for client builds
#rb mikko.mononen
#rb francis.hurteau

[CL 30410807 by yoan stamant in ue5-main branch]
2023-12-20 08:17:55 -05:00
justin peterson
fe10e8a1ec [Backout] - CL30398852 - CIS Stage Warning
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
[SmartObject] added config to clear world preconditions for client builds
#rb mikko.mononen, francis.hurteau

#virtualized

[CL 30406910 by justin peterson in ue5-main branch]
2023-12-19 19:47:10 -05:00
yoan stamant
649766d866 [SmartObject] added config to clear world preconditions for client builds
#rb mikko.mononen, francis.hurteau

#virtualized

[CL 30398918 by yoan stamant in ue5-main branch]
2023-12-19 12:59:33 -05:00
mikko mononen
e4b5036e07 SmartObject: Added per object definition data
- added definition data for the whole object
- added GetDefinitionData() & GetDefinitionDataPtr() for the SO definition and slot definition
- Renamed FSmartObjectSlotDefinitionDataProxy -> FSmartObjectDefinitionDataProxy (removed slot)
- Renamed FSmartObjectSlotDefinitionData -> FSmartObjectDefinitionData (removed slot)

[CL 30077219 by mikko mononen in ue5-main branch]
2023-12-04 07:36:52 -05:00
mikko mononen
6c2279e57d SmartObject: Added outliner to asset editor
- Changed Smart Object definition slot data to contain GUI per data (allows to identify the data using ID)
- Added outliner to the editor, displays slots and definition data
- Made slots and definition data selectable in the details view
- Sync selection across details, outliner and 3D view for faster navigation

[CL 27440600 by mikko mononen in ue5-main branch]
2023-08-29 07:48:32 -04:00
yoan stamant
71625258d0 [SmartObject] empty definition is considered a valid asset so a newly created definition will not report error on save.
- Fixed internal flag not properly set to false when using error reporting flow.
- Fixed combined validation results that was always using EDataValidationResult::Valid even when errors were reported.
#jira UE-192738
#rb mieszko.zielinski
#lockdown julien.marchand

[CL 27147839 by yoan stamant in ue5-main branch]
2023-08-16 14:15:36 -04:00
yoan stamant
d05f8826ea [SmartObject] Removed dependency on MassEntity to store slots
#rb mikko.mononen

[CL 26431776 by yoan stamant in ue5-main branch]
2023-07-18 08:42:51 -04:00
jodon karlik
472b38353a Properly deprecate old IsDataValid for a new, const version with FDataValidationContext.
This allows your assets to warn on top of erroring out.

#jira UE-183475
#preflight 644ae7701c2846595cbe0e21

[CL 25224515 by jodon karlik in ue5-main branch]
2023-04-27 17:53:18 -04:00
mikko mononen
9841195afe SmartObject: Improved validation settings
- Added SmartObjectUserComponent which allows to define validation settings per user actor
- Added option to SO defintion to have preview validation settings or preview user actor (settings pulled from SO user component)
- Move parameters passed to SO annotation CollectDataForGameplayDebugger() into a struct
- Changed USmartObjectSlotValidationFilter to have 2 sets of validation parameters to allow exits to have looser validation
- Changed the API for setting params from Actor in FSmartObjectSlotEntranceLocationRequest (still meh)

#jira UE-174418
#preflight 642173f8a86ae7cbcc25ab0b

[CL 24801238 by mikko mononen in ue5-main branch]
2023-03-27 08:22:19 -04:00
mikko mononen
62b5ef846e World Conditions: Fixed shared definition getting empty during editing.
#rb Stephen.Holmes
#preflight 6400a2fcf43e53f681b3694b

[CL 24484229 by mikko mononen in ue5-main branch]
2023-03-02 12:12:47 -05:00
yoan stamant
e13fc1232d [SmartObject] reverted slot added by default in native constructor. This should be handled by the asset factory if needed.
#rb mikko.mononen
#rnx
#preflight skip

[CL 23867045 by yoan stamant in ue5-main branch]
2023-01-26 09:20:44 -05:00
mikko mononen
fe63db295a World Condition: change shared defintions to structs
- use struct with shared ptr instead of uboject for shared definition
- allows the definition struct to be copied without worrying about outers (e.g. state tree vs editor data)

#rb Mieszko.Zielinski
#preflight 63d24870a2003ee58adfbfcf

[CL 23865882 by mikko mononen in ue5-main branch]
2023-01-26 06:15:02 -05:00
yoan stamant
750a22ea49 [SmartObject] refactored validation using IsDataValid() to report errors on asset save.
Added one slot per default for new definitions to reduce chances of creating an invalid asset.
#jira UE-174665
#rb maxime.mercier
#rb mieszko.zielinski
#preflight 63cefdecb84de45a0c023b31

[CL 23824469 by yoan stamant in ue5-main branch]
2023-01-23 18:48:38 -05:00
henrik karlsson
9183978e29 [Engine/Plugins]
* Removed includes (using IWYU) in private files

#preflight 63c79978ac35a0e9dabbe408
#rb none

[CL 23770038 by henrik karlsson in ue5-main branch]
2023-01-19 00:48:07 -05:00
yoan stamant
1f6c7d722f [SmartObjects]
- Removed synchronization logic between ability system component and smartobject instance tags.
- Added SmartObject subsystem to the SmartObjectWorldConditionSchema to help fixing unit tests where we use a derived subsystem. Updated existing SmartObject world conditions to use it.
- Added support for world conditions to the main smart object instance (in addition to those in each slot). Slots could be also disabled by their parent conditions.
- Removed object tags filter from the definition and replaced it by the newly added condition (FWorldCondition_SmartObjectActorTagQuery)
#rb mikko.mononen
#preflight 63c6c3530b358b97d198a121

[CL 23756420 by yoan stamant in ue5-main branch]
2023-01-18 10:52:51 -05:00
bob tellez
09e68111e3 [Backout] - CL23741166
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
[SmartObjects]
- Removed synchronization logic between ability system component and smartobject instance tags.
- Added SmartObject subsystem to the SmartObjectWorldConditionSchema to help fixing unit tests where we use a derived subsystem. Updated existing SmartObject world conditions to use it.
- Added support for world conditions to the main smart object instance (in addition to those in each slot). Slots could be also disabled by their parent conditions.
- Removed object tags filter from the definition and replaced it by the newly added condition (FWorldCondition_SmartObjectActorTagQuery)
#rb mikko.mononen
#preflight 63c6c3530b358b97d198a121

[CL 23752170 by bob tellez in ue5-main branch]
2023-01-18 01:06:45 -05:00
bob tellez
3688402f79 #SmartObjects Add asset name to warning about struct conversion
[FYI] Yoan.StAmant
#preflight skip

[CL 23749903 by bob tellez in ue5-main branch]
2023-01-17 19:47:51 -05:00
yoan stamant
853ad94e66 [SmartObjects]
- Removed synchronization logic between ability system component and smartobject instance tags.
- Added SmartObject subsystem to the SmartObjectWorldConditionSchema to help fixing unit tests where we use a derived subsystem. Updated existing SmartObject world conditions to use it.
- Added support for world conditions to the main smart object instance (in addition to those in each slot). Slots could be also disabled by their parent conditions.
- Removed object tags filter from the definition and replaced it by the newly added condition (FWorldCondition_SmartObjectActorTagQuery)
#rb mikko.mononen
#preflight 63c6c3530b358b97d198a121

[CL 23747892 by yoan stamant in ue5-main branch]
2023-01-17 18:37:13 -05:00
mikko mononen
2f2f301d65 WorldCondition: Allow query state to be bitwise relocatable, make tie to definition safer
- stored the whole condition cached state into the allocated memory to allow state to be bitwise relocated
- made definition UObject, and store reference to the definition directly into the state
- keep instantiated definitions alive (create new object)
- added query invalidation handle which is used to invalidate the query

#rb Mieszko.Zielinski
#preflight 63872b143377450900b57a46

[CL 23325777 by mikko mononen in ue5-main branch]
2022-11-30 07:17:21 -05:00
mikko mononen
924b989973 SmartObject: World conditions for SmartObject slot precondition
#rb Mieszko.Zielinski Luciano.Ferraro
#preflight 6375ef0b1c114bec053ccbe7
#preflight 6375fe028f4cb2e4dc8c4e4c

[CL 23174492 by mikko mononen in ue5-main branch]
2022-11-17 07:44:24 -05:00