UE3 Animation Compression Technical Guide
2016-03-02 16:30
309 查看
Animation
Compression Technical Guide
Overview
Important
Terms
Compression
Data Structure
Key
Compression Formats
Key
Reduction Schemes
Adding
Key Reduction Schemes
Properties
Functions
Compression
during load
Compressing
in code
Default
compression scheme
Decompression
at runtime
Making use of animation compression is a straightforward
process in Unreal Engine 3. This document covers the main classes and data structures involved and provides an overview of how to go about using animation
compression.
For details about the various compression algorithms, please see the Animation
Compression Algorithms page.
For information on the editor controls for previewing and modifying animation compression, please see the Animation
Compression page.
Below are some important terms used throughout this document that need to be understood:
Key - A set of data points defining the position and rotation of an individual bone at a specific time.
Track - A set of keys describing the motion an individual bone over time.
AnimSequence - A set of Tracks defining the motion of all the bones making up an entire skeleton.
AnimSet - A set of related AnimSequences which all play on the same skeleton.
What follows is a description of each of the compression formats, represented internally as the enum AnimationCompressionFormat. These enums are assigned
to UAnimSequence's TranslationCompressionFormat and RotationCompressionFormat members, and, in conjunction with an AnimSequence::CompressionScheme member, denote what type of compression and key reduction has been applied to the animation sequence. At full
precision, translations are stored as three-vectors (3x32bit floats), while rotations are stored as quaternions (4x32bit floats). Note that the current set of compression algorithms only compress rotation information and do not compress translation.
Except for ACF_None, the following formats apply only to rotation data only. For all formats, the w coordinate of the normalized quaternion is derived from the imaginary coordinates, which are stored as follows:
ACF_None - Translation/rotation data is stored at full precision (3x32bit for translation, 4x32bit for rotation).
ACF_Float96NoW - Imaginary coordinates of rotation keys are stored as 3x32bit floats.
ACF_Fixed48NoW - Imaginary coordinates of rotation keys are stored as 3x16bit quantized floats.
ACF_IntervalFixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z, but with the range of quantization remapped to the interval spanned by the coordinate values for that track.
ACF_Fixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z.
ACF_Float32NoW - Imaginary coordinates of rotation keys are stored as reduced-precision floats; 7e3 for x, 7e3 for y, 6e3 z.
In Gears of War, animations were imported to the engine at 30Hz and key-reduced to 15Hz using the Remove
Every Second Key technique. Gears used the ACF_Fixed48NoW compression as an across-the-board solution (where imaginary quaternion components are stored as 16-bit fixed point values). A large number of motions used the ACF_IntervalFixed32NoW format (where
imaginary quaternion components are stored at 11-11-10bit fixed point). Also, a few select motions in cinematic close-ups were stored with the preceptually-lossless ACF_Float96NoW format (imaginary quaternion compnents are stored as 32-bit floating point values).
In summary:
ACF_Float96NoW - Perceptually loss-less, poor compression
ACF_Fixed48NoW - Mid-high quality, decent compression
ACF_IntervalFixed32NoW - Mid quality, good compression
Key reduction schemes are the algorithms that are used to eliminate key frames in Unreal Engine 3. The key reduction schemes transform the raw animation
data stored in the RawAnimData member into the separated TranslationData and RotationData streams. These new streams can contain completely different keys from what exists in the raw data. Typical schemes might remove unneeded keys, resample existing keys,
and so on. These keys are then compressed according to the requested translation and rotation formats desribed in the Compression
Formats section.
Currently, the following key reduction schemes are supplied with Unreal Engine 3:
Bitwise Compress Only - No key reduction is performed -- in other words, compression comes only from the specified bitwise compression format.
Remove Trivial Keys - Reduces tracks where all keys are the same value down to a single key.
Remove Every Second Key - Every second key is eliminated.
Revert To Raw - Restores the raw animation data by outputing no translation/rotation keys for bitwise compression.
Animation
Compression Technical Guide
Overview
Important
Terms
Compression
Data Structure
Key
Compression Formats
Key
Reduction Schemes
Adding
Key Reduction Schemes
Properties
Functions
Compression
during load
Compressing
in code
Default
compression scheme
Decompression
at runtime
Making use of animation compression is a straightforward
process in Unreal Engine 3. This document covers the main classes and data structures involved and provides an overview of how to go about using animation
compression.
For details about the various compression algorithms, please see the Animation
Compression Algorithms page.
For information on the editor controls for previewing and modifying animation compression, please see the Animation
Compression page.
Below are some important terms used throughout this document that need to be understood:
Key - A set of data points defining the position and rotation of an individual bone at a specific time.
Track - A set of keys describing the motion an individual bone over time.
AnimSequence - A set of Tracks defining the motion of all the bones making up an entire skeleton.
AnimSet - A set of related AnimSequences which all play on the same skeleton.
What follows is a description of each of the compression formats, represented internally as the enum AnimationCompressionFormat. These enums are assigned
to UAnimSequence's TranslationCompressionFormat and RotationCompressionFormat members, and, in conjunction with an AnimSequence::CompressionScheme member, denote what type of compression and key reduction has been applied to the animation sequence. At full
precision, translations are stored as three-vectors (3x32bit floats), while rotations are stored as quaternions (4x32bit floats). Note that the current set of compression algorithms only compress rotation information and do not compress translation.
Except for ACF_None, the following formats apply only to rotation data only. For all formats, the w coordinate of the normalized quaternion is derived from the imaginary coordinates, which are stored as follows:
ACF_None - Translation/rotation data is stored at full precision (3x32bit for translation, 4x32bit for rotation).
ACF_Float96NoW - Imaginary coordinates of rotation keys are stored as 3x32bit floats.
ACF_Fixed48NoW - Imaginary coordinates of rotation keys are stored as 3x16bit quantized floats.
ACF_IntervalFixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z, but with the range of quantization remapped to the interval spanned by the coordinate values for that track.
ACF_Fixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z.
ACF_Float32NoW - Imaginary coordinates of rotation keys are stored as reduced-precision floats; 7e3 for x, 7e3 for y, 6e3 z.
In Gears of War, animations were imported to the engine at 30Hz and key-reduced to 15Hz using the Remove
Every Second Key technique. Gears used the ACF_Fixed48NoW compression as an across-the-board solution (where imaginary quaternion components are stored as 16-bit fixed point values). A large number of motions used the ACF_IntervalFixed32NoW format (where
imaginary quaternion components are stored at 11-11-10bit fixed point). Also, a few select motions in cinematic close-ups were stored with the preceptually-lossless ACF_Float96NoW format (imaginary quaternion compnents are stored as 32-bit floating point values).
In summary:
ACF_Float96NoW - Perceptually loss-less, poor compression
ACF_Fixed48NoW - Mid-high quality, decent compression
ACF_IntervalFixed32NoW - Mid quality, good compression
Key reduction schemes are the algorithms that are used to eliminate key frames in Unreal Engine 3. The key reduction schemes transform the raw animation
data stored in the RawAnimData member into the separated TranslationData and RotationData streams. These new streams can contain completely different keys from what exists in the raw data. Typical schemes might remove unneeded keys, resample existing keys,
and so on. These keys are then compressed according to the requested translation and rotation formats desribed in the Compression
Formats section.
Currently, the following key reduction schemes are supplied with Unreal Engine 3:
Bitwise Compress Only - No key reduction is performed -- in other words, compression comes only from the specified bitwise compression format.
Remove Trivial Keys - Reduces tracks where all keys are the same value down to a single key.
Remove Every Second Key - Every second key is eliminated.
Revert To Raw - Restores the raw animation data by outputing no translation/rotation keys for bitwise compression.
Compression Technical Guide
Overview
Important
Terms
Compression
Data Structure
Key
Compression Formats
Key
Reduction Schemes
Adding
Key Reduction Schemes
Properties
Functions
Compression
during load
Compressing
in code
Default
compression scheme
Decompression
at runtime
Overview
Making use of animation compression is a straightforwardprocess in Unreal Engine 3. This document covers the main classes and data structures involved and provides an overview of how to go about using animation
compression.
For details about the various compression algorithms, please see the Animation
Compression Algorithms page.
For information on the editor controls for previewing and modifying animation compression, please see the Animation
Compression page.
Important Terms
Below are some important terms used throughout this document that need to be understood:Key - A set of data points defining the position and rotation of an individual bone at a specific time.
Track - A set of keys describing the motion an individual bone over time.
AnimSequence - A set of Tracks defining the motion of all the bones making up an entire skeleton.
AnimSet - A set of related AnimSequences which all play on the same skeleton.
Key Compression Formats
What follows is a description of each of the compression formats, represented internally as the enum AnimationCompressionFormat. These enums are assignedto UAnimSequence's TranslationCompressionFormat and RotationCompressionFormat members, and, in conjunction with an AnimSequence::CompressionScheme member, denote what type of compression and key reduction has been applied to the animation sequence. At full
precision, translations are stored as three-vectors (3x32bit floats), while rotations are stored as quaternions (4x32bit floats). Note that the current set of compression algorithms only compress rotation information and do not compress translation.
Except for ACF_None, the following formats apply only to rotation data only. For all formats, the w coordinate of the normalized quaternion is derived from the imaginary coordinates, which are stored as follows:
ACF_None - Translation/rotation data is stored at full precision (3x32bit for translation, 4x32bit for rotation).
ACF_Float96NoW - Imaginary coordinates of rotation keys are stored as 3x32bit floats.
ACF_Fixed48NoW - Imaginary coordinates of rotation keys are stored as 3x16bit quantized floats.
ACF_IntervalFixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z, but with the range of quantization remapped to the interval spanned by the coordinate values for that track.
ACF_Fixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z.
ACF_Float32NoW - Imaginary coordinates of rotation keys are stored as reduced-precision floats; 7e3 for x, 7e3 for y, 6e3 z.
In Gears of War, animations were imported to the engine at 30Hz and key-reduced to 15Hz using the Remove
Every Second Key technique. Gears used the ACF_Fixed48NoW compression as an across-the-board solution (where imaginary quaternion components are stored as 16-bit fixed point values). A large number of motions used the ACF_IntervalFixed32NoW format (where
imaginary quaternion components are stored at 11-11-10bit fixed point). Also, a few select motions in cinematic close-ups were stored with the preceptually-lossless ACF_Float96NoW format (imaginary quaternion compnents are stored as 32-bit floating point values).
In summary:
ACF_Float96NoW - Perceptually loss-less, poor compression
ACF_Fixed48NoW - Mid-high quality, decent compression
ACF_IntervalFixed32NoW - Mid quality, good compression
Key Reduction Schemes
Key reduction schemes are the algorithms that are used to eliminate key frames in Unreal Engine 3. The key reduction schemes transform the raw animationdata stored in the RawAnimData member into the separated TranslationData and RotationData streams. These new streams can contain completely different keys from what exists in the raw data. Typical schemes might remove unneeded keys, resample existing keys,
and so on. These keys are then compressed according to the requested translation and rotation formats desribed in the Compression
Formats section.
Currently, the following key reduction schemes are supplied with Unreal Engine 3:
Bitwise Compress Only - No key reduction is performed -- in other words, compression comes only from the specified bitwise compression format.
Remove Trivial Keys - Reduces tracks where all keys are the same value down to a single key.
Remove Every Second Key - Every second key is eliminated.
Revert To Raw - Restores the raw animation data by outputing no translation/rotation keys for bitwise compression.
Animation
Compression Technical Guide
Overview
Important
Terms
Compression
Data Structure
Key
Compression Formats
Key
Reduction Schemes
Adding
Key Reduction Schemes
Properties
Functions
Compression
during load
Compressing
in code
Default
compression scheme
Decompression
at runtime
Overview
Making use of animation compression is a straightforwardprocess in Unreal Engine 3. This document covers the main classes and data structures involved and provides an overview of how to go about using animation
compression.
For details about the various compression algorithms, please see the Animation
Compression Algorithms page.
For information on the editor controls for previewing and modifying animation compression, please see the Animation
Compression page.
Important Terms
Below are some important terms used throughout this document that need to be understood:Key - A set of data points defining the position and rotation of an individual bone at a specific time.
Track - A set of keys describing the motion an individual bone over time.
AnimSequence - A set of Tracks defining the motion of all the bones making up an entire skeleton.
AnimSet - A set of related AnimSequences which all play on the same skeleton.
Key Compression Formats
What follows is a description of each of the compression formats, represented internally as the enum AnimationCompressionFormat. These enums are assignedto UAnimSequence's TranslationCompressionFormat and RotationCompressionFormat members, and, in conjunction with an AnimSequence::CompressionScheme member, denote what type of compression and key reduction has been applied to the animation sequence. At full
precision, translations are stored as three-vectors (3x32bit floats), while rotations are stored as quaternions (4x32bit floats). Note that the current set of compression algorithms only compress rotation information and do not compress translation.
Except for ACF_None, the following formats apply only to rotation data only. For all formats, the w coordinate of the normalized quaternion is derived from the imaginary coordinates, which are stored as follows:
ACF_None - Translation/rotation data is stored at full precision (3x32bit for translation, 4x32bit for rotation).
ACF_Float96NoW - Imaginary coordinates of rotation keys are stored as 3x32bit floats.
ACF_Fixed48NoW - Imaginary coordinates of rotation keys are stored as 3x16bit quantized floats.
ACF_IntervalFixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z, but with the range of quantization remapped to the interval spanned by the coordinate values for that track.
ACF_Fixed32NoW - Imaginary coordinates of rotation keys are stored quantized to 11 bits for X, 11 bits for y, 10 bits for z.
ACF_Float32NoW - Imaginary coordinates of rotation keys are stored as reduced-precision floats; 7e3 for x, 7e3 for y, 6e3 z.
In Gears of War, animations were imported to the engine at 30Hz and key-reduced to 15Hz using the Remove
Every Second Key technique. Gears used the ACF_Fixed48NoW compression as an across-the-board solution (where imaginary quaternion components are stored as 16-bit fixed point values). A large number of motions used the ACF_IntervalFixed32NoW format (where
imaginary quaternion components are stored at 11-11-10bit fixed point). Also, a few select motions in cinematic close-ups were stored with the preceptually-lossless ACF_Float96NoW format (imaginary quaternion compnents are stored as 32-bit floating point values).
In summary:
ACF_Float96NoW - Perceptually loss-less, poor compression
ACF_Fixed48NoW - Mid-high quality, decent compression
ACF_IntervalFixed32NoW - Mid quality, good compression
Key Reduction Schemes
Key reduction schemes are the algorithms that are used to eliminate key frames in Unreal Engine 3. The key reduction schemes transform the raw animationdata stored in the RawAnimData member into the separated TranslationData and RotationData streams. These new streams can contain completely different keys from what exists in the raw data. Typical schemes might remove unneeded keys, resample existing keys,
and so on. These keys are then compressed according to the requested translation and rotation formats desribed in the Compression
Formats section.
Currently, the following key reduction schemes are supplied with Unreal Engine 3:
Bitwise Compress Only - No key reduction is performed -- in other words, compression comes only from the specified bitwise compression format.
Remove Trivial Keys - Reduces tracks where all keys are the same value down to a single key.
Remove Every Second Key - Every second key is eliminated.
Revert To Raw - Restores the raw animation data by outputing no translation/rotation keys for bitwise compression.
相关文章推荐
- UE3 Animation Compression List
- UE3 Animation Compression Algorithms
- UE3 Animation Compression
- request对象的方法
- missing ios distribution signing identity xxx, xcode can request one for you
- iOS开发小记:iOS富文本框架DTCoreText在UITableView上的使用
- 使用 UICollectionView 实现日历签到功能
- Failed to find the required library mclmcrrt8_5.dll on java.library.path 解决方法
- iOS之UILabel的基本用法
- iPhone/iPad/Android UI尺寸规范
- ZOJ-3601-Unrequited Love【9th浙江省赛】【模拟】【STL】
- BIT2014级软件学院程序设计-15 Ultra-QuickSort
- 71.Which arithmetic operations can be performed on a column by using a SQL function that is built in
- UITableable代理执行的顺序
- 给系统的UITabbarViewController 的tabBarItem 添加图片的问题
- iOS(学习) UITableView
- SAP BW提供的一些记录Query/process chain/DTP/IP运行及加载情况的InfoCube
- question_009-JAVA之对List的子类特点???
- UVA10199- Tourist Guide(割点)
- duilib制作窗体动画效果