Release Notes for Version 4.1
Jump to navigation Jump to search
Release date: December 25, 2014
- The format of animation resources has changed in this release in order to accommodate morph weight animation. Existing animation resources need to be updated before they can be used in version 4.1. A conversion utility has been included, and it can be run by typing "updateanims" in the command console. This utility will update all
.anmfiles in the
Datadirectory hierarchy. Be sure to make a backup of your
Datafolder before running this utility in case something goes wrong.
Constructorclasses have been renamed to
Creatorin order to eliminate the dual usage of the term "construct". A
Construct()function is now used only in places where it pertains to an initialization function for an existing object, and not where it previously would create a new object and return it. In all cases when a new object is being created, the term "create" is now used. This will necessitate that each application or tool be modified at least as much as changing the
- Engine support for the Open Data Description Language (OpenDDL) has been upgraded to version 1.1. This adds support for underscore separators in numerical literals, support for 16-bit floating-point values, and support for octal literals.
- Due to numerous bugs in Mac OS X that violate the C++ standard's requirement that memory allocated with operator new be deallocated with operator delete, the debug check in the engine for operator consistency has been disabled on the Mac.
- The engine now supports morph geometries (also known as blend shapes). Weighted blends of multiple morph targets are calculated by a new morph controller. The skin controller is a subclass of the morph controller so that the result of the morph can be used as the bind pose mesh for skinning.
Animatorclasses have been updated to support morph weight animation in addition to transform animation.
- If a subzone does not have a fog space, shadow space, acoustics space, or radiosity space connector, then it will now inherit the corresponding space from the nearest parent zone that has a matching space connector.
- The Move Connector modifier has been renamed to Move Connector Inside, and a new modifier named Move Connector Outside has been added. Both modifiers redirect an incoming connector that's hooked up to the instance node. The Move Connector Inside modifier redirects the connector to a named node inside the instanced world. The Move Connector Outside modifier redirects the connector to a node that the instance node is connected to in the main world. Since connectors in the instanced world that are connected to the root zone of the instanced world end up being connected to the instance node, the Move Connector Outside modifier can be used to connect a node inside an instanced world to a node outside, in the instancing world.
- Controller IDs are no longer reused after controllers are deleted, so it's no longer possible for messages to accidentally be sent to the wrong controller on client machines in a network game.
InterfaceMgr::SetInputManagementMode()function now updates the input mode immediately if the management mode is set to
kInputManagementManual. It previously did not update the input mode until some change was made to the set of open windows.
- Options applied when importing a scene are now displayed at the bottom of the standard Import Scene dialog instead of in a separate window shown by the whichever import plugin (e.g., OpenGEX or Collada) is used to actually do the importing. These options are importing textures, merging materials, reusing named materials, and the overall scene scale.
- Support has been added for OpenGEX version 1.1.2. In particular, the OpenGEX Importer can now import geometries that have multiple morph targets, and it can import morph weight animation tracks.