We’ve added multi-platform soundbanks support! With this you can choose different audio settings for each platform (using Wwise) and Lumberyard can package/load the appropriate banks for each target platform.
Cinematics
Supporting platform-specific soundbanks is critical to the launch of any multi-platform game. It allows for developers to specify different audio settings targeted to each platform, which helps to alleviate issues from hardware limitations or even to improve performance on some platforms by providing encoded media ready for hardware decoders. There may even be use cases for swapping out source sounds depending on the platform, and platform-specific banks help to achieve that too without having to duplicate media not intended for the target hardware.
The goal of this feature is to provide sound designers with more "one-time" setup tools in order to reduce and eliminate manual tasks in their workflow, especially those of the sort that slow down iteration speed.
Important
Setting up for platform-specific soundbanks requires the full version of Wwise.
Wwise LTX does not offer any bank or platform management features since there is only one 'Content' soundbank and one 'Generic' platform.
If you need to upgrade an existing Wwise LTX project to the full version, please see https://
docs.aws.amazon.com/lumberyard/latest/userguide/audio-wwise-upgrade.html.
The basic setup of the Wwise project is done in two steps:
1. Edit platforms in Platform Manager. NOTE: If the project was upgraded from Wwise LTX, there will be a single platform named 'Generic'. Select the 'Generic' platform and click Rename… to rename it to 'Windows'. If the Wwise project was not previously upgraded from Wwise LTX, there should already be a 'Windows' platform.
Click Add… to add any new target platforms needed. When finished making changes, click OK. It will ask for confirmation once more and automatically save and reload the project.
2. Edit paths in Project Settings. Click the SoundBanks tab. In the SoundBank Paths section, edit the paths for each platform to be of the form ..\wwise\<PlatformName>\. (For example, for Windows it should be ..\wwise\Windows\.)
Optional: If you are using External Sources in Wwise, you will need to edit external sources output paths as well.
• In the Project Settings dialog, click on the External Sources tab.
• In the Output Path section, edit the paths for each platform to be of the form ..\wwise
\<PlatformName>\external\. (For example, for Windows it should be ..\wwise\Windows
\external\.)
Cinematics
• Time of day settings can now be animated in the TrackView cinematic tool.
Cloud Canvas
• The Dynamic Content Gem now has the option to invalidate the (old) file when using AWS CloudFront and uploading the same named file.
• To improve security for Cloud Canvas API calls, read our updated documentation on creating a custom domain name and establishing TLS handshakes.
EBus
• Removed the"Not disconnected prior to destructor" assert from the EBus IdHandler copy operator.
EMFX
EMFX
• Ragdolls require continuous joint chains between any joint in the ragdoll and the root joint of the Actor. Previously, the UI did not enforce this, and it was easy to create ragdolls that did not conform to this requirement. Now, when adding a joint to a ragdoll, all parent joints are added as well automatically.
• Ragdoll joint limits can now be copied and then pasted to other joints in the ragdoll.
Mobile (Android)
• Added 'strip-all' to Android release builds to reduce size of Android Packages (APKs).
MultiplayerSample
• Updated Multiplayer sample to generate a separate log per server process to prevent instability and reduce developer log file space.
Physics / PhysX
We’ve made a number of changes to replace CryPhysics with PhysX support.
Changes in v1.26:
• In version 1.26, CryPhysics features remain but can be disabled by compiling by setting the macro ENABLE_CRY_PHYSICS (found in the file dev/code/wscript) set to False. A re-compilation is required after changing this macro.
• When ENABLE_CRY_PHYSICS is set to True, all of the code modifications we’ve made to remove CryPhysics become inactive, and the CryPhysics code (pre-modifications) is used for compilation.
(This has been verified by Lumberyard with pre-processor checker scripts.) CryPhysics functionality remains the same in Lumberyard; we have not changed its internal behaviors in this release (1.26). To accomplish this, we have wrapped the deprecated CryPhysics code with the macro ENABLE_CRY_PHYSICS. CryPhysics will be enabled by default maintaining all previous behavior; at this time, you must disable CryPhysics if you want your project to use the new PhysX-based Physics system replacements.
• Several features are made to function with PhysX instead of CryPhysics:
• CryParticles. Functionality with PhysX can be independently enabled or disabled with the macro PARTICLES_USE_CRY_PHYSICS.
• Audio occlusion. Functionality with PhysX can be independently enabled or disabled with the macro AUDIO_USE_CRY_PHYSICS. Wind. Tag an entity with a PhysX Force Region component to use it as a wind source.
• Viewport render geometry intersections are modified to operate without CryPhysics.
• Picking and selecting in the Lumberyard Editor no longer relies on CryPhysics operations.
• CryVehicles, which utilizes CryPhysics, has been removed.
• PhysX joints are introduced as a replacement for CryPhysics joint constraints.
• The Trigger Area Component is removed when CryPhysics is disabled. This component is not compatible with PhysX.
• Touch-bending vegetation dependencies on CryPhysics have been removed.
Other updates include:
Physics / PhysX
• Wind system to replace CryPhysics-based wind. This feature allows to use PhysX Force Region components as a source of wind data for other features like particles, cloth, snow post processing effect. This was done as replacement for one of the deprecated CryPhysics features: Wind areas.
• Make it possible for cloth to use WindBus. This feature change allows cloth to use the wind bus, so wind settings set in the common wind bus is shared with other features such as particles. WindBus was added to provide a replacement for CryPhysics (deprecated) wind areas and has implementation that uses PhysX gem Force Region components.
• Make CryParticles Work with PhysX. This feature change, made as part of CryPhysics deprecation, allows CryParticles to work with the PhysX gem. To enable this feature, open the following file:
dev\Code\CryEngine\CryCommon\IParticles.h and set the following define: define PARTICLES_USE_CRY_PHYSICS 0
• Add support for Physics EBus to the AudioSystem Gem. Part of CryPhysics deprecation. This feature change allows the AudioSystem gem to work with the PhysX gem.
• Picking in the Lumberyard Editor works with CryPhysics disabled.
To enable this behavior, disable CryPhysics by setting the macro ENABLE_CRY_PHYSICS to False in dev/Code/wscript.
• We replaced Lumberyard Editor CryPhysics scene queries with AzFramework Physics ones.
A new API has been created for render geometry raycasts instead of using CryPhysics:
AzFramework::RenderGeometry::IntersectionRequestBus
To enable scene queries using this new API, disable CryPhysics by setting the macro ENABLE_CRY_PHYSICS to False in dev/Code/wscript.
• We replaced CryPhysics-based touch bending with a generic Physics API. Touch bending now works without CryPhysics, such as when CryPhysics is switched off. There should be no difference in the functionality from the user’s perspective. Specifically, this change is made to keep the touch bending feature available after the impending removal of CryPhysics.
• We improved the cloth editing experience by running the simulation in the editor. This feature enhancement allows users to simulate cloth directly in the Lumberyard Editor, and enables them to iterate quickly between visualizing the simulation and modifying cloth simulation parameters.
• We exposed PhysX simulation stats to AZ_PROFILE_DATAPOINT. PhysX simulation step statistics are now exposed so users can get insight into the number of instances of various types, memory, processes, and other performance characteristics. You can use this to fine tune game play, especially in terms of frame rate optimization.
• We exposed the Simulated and InSceneQuery shape flags to Colliders. In this case, setting the Simulated flag means the shape will partake in collision pass during the simulation. If not set, it will not collide with anything. By default, only Simulated shapes contribute to mass-related properties such as mass, inertia tensor, and center-of-mass.
Setting the SceneQuery flag means the shape will be included in scene queries (such as shapecast, raycast, and overlap scene queries). If it is not set, the associated Collider will not be included in scene query results (regardless of collision layers).
By default, both the Simulated and SceneQuery flags are set to true.
Expected changes in future versions:
• LyShine’s dependencies on CryPhysics are deprecated and will be removed.
• The code for a for navigation mesh’s functionality will be refactored to use PhysX. Our goal is to avoid changes to any interfaces for this functionality, or require customer code refactoring.
• CryPhysics code removal. At some point, the CryPhysics enable/disable macro (ENABLE_CRY_PHYSICS) will no longer be available to enable or disable CryPhysics.