Release Notes for Build 130

From C4 Engine Wiki
Revision as of 09:40, 15 July 2023 by Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 10, 2006 * Finished the animation blending system based on a new design. There are three built-in animator subclasses that provide general functionality, and applications can define custom animators for more specific purposes (see next note). Each animator in the tree assigned to an entity targets a range of nodes rooted at a given target node (which is often the entity itself). * The <code>FrameAnimator</code> class is used to pl...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Release date: November 10, 2006

  • Finished the animation blending system based on a new design. There are three built-in animator subclasses that provide general functionality, and applications can define custom animators for more specific purposes (see next note). Each animator in the tree assigned to an entity targets a range of nodes rooted at a given target node (which is often the entity itself).
  • The FrameAnimator class is used to play an animation stored in an animation resource. This replaces the functionality that was previously part of the Entity class. The frame animator is based on time instead of frame number, and its rate can be changed arbitrarily. Control over the playback is accessed through the Interpolator object returned by the FrameAnimator::GetFrameInterpolator() function.
  • The MergeAnimator class can be used to combine the outputs of multiple animators. It takes the outputs of all of its subnodes and combines them into a single output. Later subnodes can override the outputs of earlier nodes.
  • The BlendAnimator class blends the outputs of at most two sub-animators. The weight of each animator is controlled through another Interpolator object that can be retrieved with the Animator::GetWeightInterpolator() function. Weights are always renormalized by the blend animator, so they don't need to sum to one.
  • Removed the bone modifier mechanism that was being used to twist the spine of the player as he looked around. This is now handled by a custom animator called SpineTwistAnimator in the game code.
  • Fixed a bug that could cause a crash on exit when using microfacet shading together with fog.
  • Fixed a crash that would occur if you combined dual textures, refraction, and environment mapping in a single material.