In WaveEngine 2.5.0, the model pipeline has been improved, and as a result, there are a lot of new features that makes easier to work with model assets:
- glTF support. Now you can use glTF models in addition to FBX, DAE, OBJ, etc.
- New Animation pipeline. A redesigned Animation3D component with blend animation trees.
- Skinning & Morphing. Deform meshes using bones or morph targets.
In WaveEngine 2.5.0 we have included glTF to the list of supported 3D model file formats. glTF (GL Transmission Format) is a file format for 3D scenes and models using the JSON standard. This format is beginning to gain momentum, and It’s being widely adopted by the community.
To use a glTF model in WaveEngine, yo only need to drop the glTF folder (that contains .gltf file and binary files and texture resources) to your Asset folder in WaveEditor, or just add the .glb file (glTF binary file).
New Animation workflow
We have reimplemented the Animation3D component, which contains the following properties:
- ModelPath. Set the asset model that contains the animations.
- CurrentAnimation. The animation that is currently played.
- PlaybackRate. The speed of the animation that is being played.
- PlayAutomatically. It indicates if the animation will be played automatically without the need to invoke the Play() method.
When you instantiate a model in your scene, an Animation3D component is added automatically if the model has at least one animation track.
Starting in WaveEngine 2.4.0, the model node hierarchy is mapped into an equivalent Entity hierarchy. And now, when an animation is being played, Animation3D changes the properties for entities in its hierarchy.
These are the properties that can be modified by animation tracks:
- SkinnedMeshRenderer.MorphTargetWeights. Allows the animation of Morph Targets (we’ll explain this in next sections).
Animation blend trees
A common task in a graphic application is to blend between two or more similar animations. A good example is the blend between walk and run cycle in a character. Now, in the Animation3D component, when you want to play an animation, you can specify a blend tree.
A blend tree is composed by Animation Blend Clips. In this version we provide the following blend clips:
- The simplest blend clip. It reproduces the specified animation track.
- Allow a transition between two clips at a given time.
- With this blend clip you can interpolate between two animations with a specified factor. For example, if you have a run and a walk animation cycles, you can mix (50% walk and 50% run for example).
- You can add a clip to another clip. This is useful for example to add “filters” to an animated characer. For example, to your walk-run cycle, you can add animations for aiming, instead of having separate animations for aim-run and aim-walk.
New Skinning system
We have improved the Skinning meshes. In WaveEngine 2.5.0 all skeleton bones are mapped directly in the entity hierarchy of the model. This add more possibilities in that area. For example, to attach a weapon to a character hand you only need to add the weapon model as a child of the hand’s bone entity.
In a morph target animation, a “deformed” version of a mesh is stored as a series of vertex positions. In each key frame of an animation, the vertices are then interpolated between these stored positions.
In WaveEngine 2.5.0, you an add morph target animations to your 3D model.
Removed previously deprecated components
In WaveEngine 2.4.0, we deprecated several components, and in this version, we have finally removed them. This is the removed component list: