Commit Graph

91 Commits

Author SHA1 Message Date
Esteban Papp 68ffdd6714 SPEC-2513 Fixes to enable w4324 (#1197)
* Fix warning 4324

* warning that doesnt trigger anything

* missed warning
2021-06-09 11:33:13 -07:00
Benjamin Jillich eac0e42dc6 [LYN-3481] EMotionFX crashes when reloading an Actor (#1184)
* [LYN-3481] Added new actor instance request and notification buses

* [LYN-3481] Actor instance notifies bus about it being created or destroyed

* [LYN-3481] Selection lists are now automatically removing destroyed actor instances

* [LYN-3481] Morph targets window plugin reinitializing when used actor instance got destroyed

* [LYN-3481] Removing the OnDeleteActorInstance() from the emfx event handler/manager and porting the recorder to the new actor instance bus

* [LYN-3481] Removed the create actor instance calls from the event handler/manager

* [LYN-3481] Fixing automated tests
2021-06-09 19:25:05 +02:00
Benjamin Jillich 863aac2cb9 [LYN-3727] Actor Draw Bounds Draw Bounds & [LYN-3725] Actor Draw Skeleton Doesn't Draw Skeleton (#1168)
* [LYN-3727] Actor Draw Bounds Draw Bounds & [LYN-3725] Actor Draw Skeleton Doesn't Draw Skeleton

* Added skeleton, aabb and emfx debug drawing to the actor component.
* Aux geom rendering is flickering as also reported in the Discord channels. Trick with using the scene notification bus did not work as the actor instance is not bound to a given scene as far as I am aware.
2021-06-08 08:41:58 +02:00
Benjamin Jillich 4e79e6004c [LYN-3845] On the Actor component, click on the Animation Editor button, EMFX isn't opening (#1169)
We're opening the Animation Editor now also in case no actor has been chosen yet. In this case the Animation Editor will also just be started without loading any assets.
2021-06-08 07:39:35 +02:00
Esteban Papp 36cb0f6d40 SPEC-7178 Removal of precompiled cpp files (#1171)
* SPEC-7178  Removal of precompiled cpp files

* Missing files...
2021-06-07 15:59:58 -07:00
Chris Burel c751cda73d Fix for variable that is only used in the debug config (#1166) 2021-06-07 15:07:17 +02:00
Esteban Papp 76a6df341b SPEC-2513 Fixes to enable w4457 2021-06-04 10:51:47 -07:00
rhongAMZ fe98c34f50 EMFX - Refactor the emfx actor asset loading. (#1101)
Refactor emfx asset loading. The mesh asset, skinMetaAsset and morphTargetMeta asset are part of the dependency.
2021-06-03 19:59:29 -07:00
Esteban Papp 29c71b4e53 SPEC-2513 Fixes to enable w4701 (#1105)
* Some fixes

* more fixes

* fixes for debug
2021-06-03 09:30:33 -07:00
Benjamin Jillich 0f699cfd47 [LYN-4157] EMotionFX: Adding/removing colliders to/from ragdoll and saving the actor crashes the Editor (#1055)
The actor dirty flag was set to true even after saving the asset info which resulted in the save dirty files dialog to appear providing the user to save the actor another time, just after saving it which is confusing. This might have led to rendering an already deleted actor and the crash. Though, I was not able to stably reproduce the issue and can't reproduce it anymore after this fix.
2021-06-02 08:35:59 +02:00
Chris Burel 71013c3835 Rename tests that reference issue numbers to have descriptive names (#913)
This also enables one such test that was named after an issue tracker
id, that was disabled because of an already resolved issue.
2021-06-01 10:51:06 -07:00
Aaron Ruiz Mora 00e860f326 Physics material system for spectra launch
- Invalidate 'Physics Materials From Mesh' boolean from collider component
- Removed material library from material selector. Default material library will always be used instead.
- Marking failing automated test as xfail
- Added default material to physics configuration.
- Moved material library asset from physx configuration to physics configuration, as it doesn't need to be physx specific.
- Refactor physics material system having into account that there is only one material library in the project.
- Renaming code from DefaultMaterialLibrary to MaterialLibrary.
- All queries about physics materials unified under PhysicsMaterialRequests bus.
- PhysXSystem only manages the material library asset.
- Saving and reloading the same physics material asset with different content didn't trigger a events that the material library has changed.
- Changing Physics Material Request interface to use shared_ptr instead of weak_ptr to be simpler to handle the returned materials and having a more consistent code.
- Refactored Material Manager to improve its implementation. Still following the same approach of "creating materials on the fly as they are requested", but now it's doing it consistently across the interface, with private helpers functions FindOrCreateMaterial that simplify vastly the implementation.
- Material Manager now listens to change event of material library asset and default material configuration so it updates its materials accordingly.
- Complete Material move constructor and operator.
2021-05-28 20:16:25 +01:00
pappeste 01933f45b1 Merge branch 'main' into ly-as-sdk/LYN-2948
# Conflicts:
#	Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json
2021-05-27 10:39:37 -07:00
pappeste 0dd8fce2b0 Pass on fixing LmbrCentral.Static dependencies 2021-05-27 10:30:11 -07:00
pappeste f1b688f435 Merge branch 'main' into ly-as-sdk/LYN-2948
# Conflicts:
#	CMakeLists.txt
#	Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h
#	Gems/AtomLyIntegration/AtomViewportDisplayInfo/gem.json
#	cmake/LYWrappers.cmake
#	cmake/SettingsRegistry.cmake
#	scripts/o3de/tests/unit_test_current_project.py
2021-05-27 10:29:19 -07:00
greerdv f4c017e813 Merge pull request #968 from aws-lumberyard-dev/animation-transform-scale
update usages of vector scale on Transform to use uniform scale
2021-05-27 16:44:26 +01:00
amzn-sean 529e29071c update Ragdoll component to only uses Handles (#981) 2021-05-27 16:42:17 +01:00
greerdv e0ed535771 remove unused render cube function 2021-05-27 14:29:54 +01:00
greerdv 4b16d34af8 update usages of vector scale on Transform to use uniform scale 2021-05-26 23:00:01 +01:00
SJ 8ca3b078a2 Remove bootstrap.cfg and some references to it.
Merge pull request #836 from aws-lumberyard-dev/LYN-2461
2021-05-26 09:32:57 -07:00
lumberyard-employee-dm 4652d47fb3 Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 2021-05-26 00:38:51 -05:00
lumberyard-employee-dm 76fe7f3666 Merge branch 'main' of https://github.com/aws-lumberyard/o3de into ly-as-sdk/LYN-2948-phistere 2021-05-25 23:48:55 -05:00
lumberyard-employee-dm 58bd72c429 Setting project path to AutomatedTesting to fix the EMotionFX CanUseFileMenu and CanOpenWorkspace test from failing when resolving a relative path 2021-05-25 22:53:56 -05:00
Chris Burel dacffc8f07 Remove the "(PREVIEW)" label from the Animation Editor (#926) 2021-05-25 16:05:09 -07:00
pappeste db0db5c1c0 Proper dependencies to LmbrCentral/LmbrCentral.Editor, mixing those two can cause Editor modules to load non-Editor modules 2021-05-24 18:57:48 -07:00
Nicholas Lawson c9d5d7fb77 The new gem registration and usage system
Merge from mainline (Rebase)
2021-05-20 10:47:03 -07:00
greerdv 7def4741cd merge from main 2021-05-19 12:14:25 +01:00
amzn-sean 672dad7fea combined the 2 physics shape collider config pair types into 1(#778) 2021-05-18 12:39:07 +01:00
amzn-sean 7f79cc8796 RemoveSimulatedBody automatically updates the requested handle to be invalid once removed. (#740) 2021-05-13 15:04:00 +01:00
greerdv ce3842ac84 Merge branch 'main' into non-uniform-scale-compatibility 2021-05-12 22:19:33 +01:00
greerdv 059f69e5e6 tidy up NonUniformScaleService compatibility 2021-05-12 21:20:23 +01:00
karlberg 74385a575f Merge remote-tracking branch 'origin' into MultiplayerComponents 2021-05-11 13:43:17 -07:00
karlberg 5440d0926d Fixing some dependencies in script canvas and emfx 2021-05-11 13:42:44 -07:00
Terry Michaels 8ddfcabae7 Removed unneeded comments (#673) 2021-05-10 22:02:30 -05:00
kberg-amzn bdaa7eb3c1 Merge pull request #544 from aws-lumberyard-dev/MultiplayerComponents
Multiplayer components, visibility fixes for gameplay runtime and localprediction player controller component.
2021-05-10 10:23:15 -07:00
bosnichd 440c40e490 Remove (almost) all references to pRenderer (#651)
Remove all references to pRenderer, except from the DebugDraw and LyShine Gems that are still being updated.
2021-05-10 10:05:15 -06:00
karlberg 751d13dd7b Merge remote-tracking branch 'origin' into MultiplayerComponents 2021-05-05 20:07:49 -07:00
bosnichd d7b796fd73 Remove I3DEngine CryCommon Interface (#567)
Delete:

- I3DEngine
- Missions
- Time of day
- GameEffectsSystem Gem
- ImageProcessing Gem
- SVOGI Gem
- Various other things that don't do anything now that the legacy renderer has been removed.
2021-05-05 09:07:28 -06:00
Aristo7 4c47d7b587 Merged main in 2021-05-04 10:13:50 -05:00
karlberg d0a561fa01 merging latest origin 2021-05-03 21:27:27 -07:00
Gene Walters 0c3e0f18cc Merge pull request #187 from aws-lumberyard-dev/LY123349_Emfx_MotionInstancePoolReduceFragmentation
Change reservation strategy in MotionInstancePool to reduce fragmentation.
2021-05-03 16:27:55 -07:00
karlberg 822368ef01 Changes to get visibility system working again in-game 2021-05-03 16:26:11 -07:00
Terry Michaels 55f2b24302 Legacy Mesh component removal
* Removed legacy components

* More legacy render component removal

* Starting removal of legacy mesh component dependencies

* Removed old light components that were allowing Atom test to succeed

* Testing increasing the timeout to see if it lets it pass in Jenkins

* put original timeout back

* reordered components to test if it is component specific or not

* Testing disabiling the test to see if we get a green

* Fixed the removal of the test to sandbox

* Removed Legacy Mesh Component and associated tendrils

* Removed some missed references

* Fixed some issues with unity builds and ambiguous naming

* Addressed review feedback
2021-05-03 17:17:18 -05:00
Chris Burel 13c7b06308 Handle EMotionFX hotkeys with QActions instead of in keyPressEvent (#514)
EMotionFX has user-customizable hotkeys. These hotkeys are registered by
individual plugins, and then the user can set what they want the hotkey to
be. The way this was implemented was by reimplementing `keyPressEvent` and
`keyReleaseEvent` for each widget that used customizable hotkeys, and in
there call `KeyboardShortcutManager::Check` to see if key press matched any
existing hotkey mapping.

However, the main Editor has behavior that prevents events from reaching
EMotionFX's `keyPressEvent` method, if a keypress matches a hotkey that is
also used by the main Editor. This is due to the global event filter
defined in `ShortcutDispatcher::eventFilter`. This event filter takes a Qt
`Shortcut` event, and will re-dispatch that event to all parent widgets of
a given receiver. So if a parent widget, like the main Editor, *does* have
a QAction that matches a given key sequence, that widget will receive the
event, the event is marked as processed, and no `KeyPress` event is ever
sent to the original widget where the event occurred.

All this means that processing hotkeys in a `keyPressEvent` won't work
reliably. The main editor defines a hotkey for the `delete` key, so that
can never be received in a `keyPressEvent` by any child widget of the
Editor.

This change removes all the hotkey logic from the `keyPressEvent` methods,
and replaces them with `QAction` instances. Hotkeys are defined with
`QAction::setShortcut`, and added to each widget that they apply to.

In addition, the `KeyboardShortcutManager` class had to be adjusted to suit
this new way of defining the hotkeys. It now has a pointer to each
`QAction*` that can have a customizable hotkey. It has also been greatly
simplified, since it can use a `QKeySequence` instead of separate variables
for `int key; bool hasCtrlModifier; bool hasAltModifier`.

Applying user-defined hotkeys now has to be done after the hotkeys are
registered from a plugin. It is the plugin's responsibility to reload the
user-defined hotkeys after registering all of its actions.
2021-05-03 15:00:40 -07:00
Gene Walters 284c34a1af Merge branch 'main' into LY123349_Emfx_MotionInstancePoolReduceFragmentation 2021-05-03 14:06:26 -07:00
Aristo7 64d980bc03 Deleted AzFramework::AtomActiveInterface 2021-05-03 15:40:32 -05:00
Benjamin Jillich 893d4208c0 [LYN-3312] EMotionFX: Multi-threading dual quaternion software skinning / Moving the mouse while having many characters on screen makes the editor unusably slow (#506)
Multi-threaded software skinning by splitting the mesh up into batches of 10,000 vertices, which results in 27 jobs being spawned and executed using a character asset from a customer having 262,676 vertices and a speed improvement of 12x on a 32-core machine.

Single-threaded: 11,61 ms
Multi-threaded (27 jobs): 0,96 ms

* Created a SkinRange() function that can skin a part of the vertices.
* The actual skinning is now using the job system to split up the skinning into several pieces and executes them in parallel.
* Ported the bone info array to AzCore.
* Fixed some issues with the mesh based bounds update in the actor instance.
2021-05-03 18:48:30 +02:00
Benjamin Jillich 3c7ca72693 [LYN-3269] EMotionFX Editor save changed files prompts users to save files to the cache (#469)
* The asset source filename is now displayed instead of the product filename.
* Fixed a stylesheet issue with screen scaling on 4K monitors for the saved changed files window.
* Cleaned up surrounding code.
2021-05-03 18:45:35 +02:00
bosnichd 1d4c483e73 Red code legacy renderer (#383)
- Remove some references to gEnv->pRenderer/GetIEditor()->GetRenderer() that is now always null.
- Restore the debug console to existence.
- Stop building the following in preparation for their removal:

Code/CryEngine/Cry3DEngine/*
Code/CryEngine/RenderDll/*
Code/Tools/CryFXC/*
Code/Tools/HLSLCrossCompiler/*
Code/Tools/HLSLCrossCompilerMETAL/*
Code/Tools/RC/*
Code/Tools/ShaderCacheGen/*
Tools/CrySCompileServer/*
2021-04-30 07:31:42 -06:00
Benjamin Jillich aa5ddbf532 [LYN-3344] EMotionFX: Data integrity error, missing keyframe at the end of the animation (#418)
Animation tracks in the DCC tool formats are often stored individually, each having its own duration. For EMotion FX motion data, it is required to have tracks with the same duration and e.g. a position track has to match the duration of a morph track. This will be automatically fixed by adding missing keyframes at the end of the tracks to match the animation's global duration. The value of these are the same as the last one of the given track so that they freeze at that value.

* Added function that adds missing keyframes to match the individual tracks' duration for the non-uniform motion data in emfx.
* Added data integrity checks for various stages of the motion data builder / motion exporter.
* Checking for data integrity issues with an assert in the emfx importer. This is just a safety check and we don't need that for release builds as they should be captured at asset processing time already.
2021-04-30 07:21:52 +02:00