Released 28th April, 2015
If you're receiving AI errors on startup, make sure you delete or update the 3.6 AI scripts which you may have extracted.
If you're using Area Lights, make sure you set r_deferredShadingAreaLights=1 to enable them.
CRYENGINE 3.7.0 is here and it is BIG. There is a new Cross Platform build system, a new Character tool with unified toolset and a new UI. There are advanced lighting features including tiled-shading support for glass and SSDO color bleeding for better ambient occlusion. The new Audio Translation Layer provides the industry's first abstraction layer to support audio middleware solutions. Sandbox has a slew of new features including Flowgraph and various editor improvements. The Sample Content includes the new "Woodland" level with high quality assets and PBR lighting. All of this and much more, including tons of minor improvements, bug fixes, and optimizations. See the Release Highlights below for more information and scroll down for all the details.
CRYENGINE 3.7 features a new cross-platform build system based on WAF. For detailed information see WAF Build System.
The new build system is fully replacing the build configurations from Code/Solutions. Complete removal of the old build system is planned for CRYENGINE 3.7.2.
When tiled forward shading is enabled, glass will now receive direct lighting (including shadows) and probe-based ambient, making it look a lot more consistent with standard opaque objects.
SSDO color bleeding is a simple and very efficient light scattering approximation which solves the problem of having overly dark ambient occlusion on bright surfaces.
The feature can be toggled with r_ssdoColorBleeding 0/1 and requires tiled deferred shading to be enabled.
The LOD system now takes into account the average triangle size for deciding when to switch between LOD meshes. This gives greatly improved results (less polygons while having less LOD popping) when just using the default view distance ratio.
Use e_lodFaceArea 0/1 to switch between the previous and the new system.
Shown above is e_debugdraw -3, the minus value still color codes assets but removes the text information overlay
Our improved Temporal AA technique that shipped with Ryse PC is available now in CRYENGINE 3.7. With just a minimal performance overhead, it provides a greatly more stable image by applying projection matrix jittering.
Set r_AntialiasingMode 3 to enable.
The new Clip Volumes greatly simplify the workflow for setting up interior lighting by solving previous light leaking problems.
The volumes provide pixel-accurate clipping of light sources and probes and work with tiled deferred shading and forward-shaded objects like hair. Clip volumes can be setup in Sandbox using Designer or imported from a static mesh.
Arbitrary clip volume shape containing 3 colored point lights and 1 additional blue light which only affects outside.
Due to the introduction of ClipVolumes, LightBoxes will soon be deprecated in a future version of CRYENGINE.
This new tool unifies the Character Editor, the Animation Importer, the Animation Compression Editor and the DBA Editor in one tool with a completely reworked UI (for more information see Character Tool).
This brand new and industry's first system servers as an abstraction layer between CRYENGINE and an audio middle-ware. Due to full audio source code availability and detailed interface documentation it is possible to hook any audio middle-ware into CRYENGINE's ATL.
Current implementations include Wwise for a professional and SDL_mixer for a simple and cost free audio solution. It has never been easier implementing audio into CRYENGINE using its as well brand new Audio Controls Browser.
This release fully substitutes and replaces the former FMOD based audio solution. For more details see ATL Docs.
For CRYENGINE 3.7 we introduce a new sample level called "Woodland". This level is roughly twice the size of Forest and features a proper PBR lighting setup and high quality assets to better showcase the rendering capabilities of CRYENGINE.
Other features include several trackview examples, geomcache, a showcase area where we show some of our face rendering/animation tech. We will be adding more content to this level as we go as well as more sample showcases.
We've retired the old faithful Forest level so we can fully concentrate on the new showcase content of much higher quality.
The latest CRYENGINE 3.7 Sandbox interface
Designer object using new Subdivision technique.
Subdivision Tool With Semi Sharp Creases.
Cube Editor
If you want see more pictures click this link Gallery [Zen Garden]
Tiled-Shading for Glass brings physically accurate point-light interaction, ambient lighting and shadows to glass objects.
ClipVolumes support arbitrary shape creation with the power of Designer to give full control over light clipping.
ACB UI when running with the Wwise implementation
ACB UI when running with the SDL Mixer implementation
Secondary Animation showing Lozenges in action for character attachments.
Streamlined animation event editing with user defined presets.
ChrParams editing; here for example we add a prefix to the animation names of all .comb files
Rule-based compression presets; for example apply settings based on animation tags as in this example
Scripts/Mannequin/ProcClipConversion.xml
file.IAction::ComparePriority (see Mannequin Actions) )is now also called during CActionController::PushOntoQueue() to make it consistent with CActionController::TryInstalling(). If you override IAction::ComparePriority() in an action, make sure the order is well defined (a.ComparePriority(b) should return the opposite of b.ComparePriority(a)). If you previously simply returned "Higher", and you push multiple equal priority actions within the same frame, you can use something like the following to make sure the queue still behaves as a FIFO:
virtual EPriorityComparison ComparePriority(const IAction& actionCurrent) const
{
return (IAction::Installed == actionCurrent.GetStatus() && IAction::Installing & ~actionCurrent.GetFlags()) ? Higher : IAction::ComparePriority(actionCurrent);
}
See below to read information on how to transition the DBATable file from XML to the new JSON format.
Initially DbaTable.xml file contained a list of CAF-files that are grouped per DBA.
This proved itself to be error-prone and requiring regular intervention of a technical person to update it with newly added animations.
To reduce maintenance overhead a new way to define DBA was introduced in SDK 3.7. It differs in following:
As previous format didn't contain any high-level information, conversion should be performed manually.
An example of such conversion is provided below based on SDK assets.
<DBAs>
<DBA Path="Animations\human\male\hits_1p.dba">
<Animation Path="Animations\human\male\hits\1p\stand_tac_hit_generic_add_1p_01.caf"/>
<Animation Path="Animations\human\male\hits\1p\stand_tac_hit_knockDown_1p_01.caf"/>
<Animation Path="Animations\human\male\hits\1p\stand_tac_idle_reactExplosion_3p_01.caf"/>
</DBA>
<DBA Path="Animations\human\male\hits_3p.dba">
<Animation Path="Animations\human\male\hits\3p\coverHigh_idleBasic_com_lft_hit_back_01.caf"/>
<Animation Path="Animations\human\male\hits\3p\coverHigh_idleBasic_com_lft_hit_front_01.caf"/>
<Animation Path="Animations\human\male\hits\3p\coverHigh_idleBasic_com_rgt_hit_back_01.caf"/>
<!-- ... -->
</DBA>
<DBA Path="Animations\human\male\locomotion.dba">
<Animation Path="Animations\human\male\locomotion\kneel\kneel_tac_AimPoses_idle_01.caf"/>
<Animation Path="Animations\human\male\locomotion\kneel\kneel_tac_death_01.caf"/>
<Animation Path="Animations\human\male\locomotion\kneel\kneel_tac_idle_01.caf"/>
<!-- ... -->
</DBA>
<!-- ... -->
</DBA>
Similar setup with a new system will look as following:
You may refer to Character Tool documentation to see how to define animation filter in details.
In case you would like to perform automated conversion yourself, files saved by the Character Tool will look as follows:
{
"entries": [
{
"path": "Animations/human/male/hits_1p.dba",
"condition": { "inFolder": { "path": "Animations/human/male/hits/1p/" } }
},
{
"path": "Animations/human/male/hits_3p.dba",
"condition": { "inFolder": { "path": "Animations/human/male/hits/3p/" } }
},
{
"path": "Animations/human/male/locomotion.dba",
"condition": { "inFolder": { "path": "Animations/human/male/locomotion/" } }
}
}
Due to ResourceCompiler limitation, incremental builds can not be performed after removing old DBATable.xml. Make sure to delete previous build state (specifically rc_createdfiles.txt, by default created in the folder of RC executable Bin64/rc/), otherwise CAF files may not be produced as expected.
What if you need some more complex logic in animation selection?
For example, here we are excluding /poses/ folder from locomotion.dba, as well as all animations that have word "kick" in their name:
Multi-threaded NavMesh processing can significantly speed up time to process MNM areas.