{"id":13997,"date":"2024-10-20T13:48:58","date_gmt":"2024-10-20T17:48:58","guid":{"rendered":"https:\/\/www.sceneri.com\/?post_type=sceneri-pro-docs&p=13997"},"modified":"2024-11-01T19:20:12","modified_gmt":"2024-11-01T23:20:12","slug":"animation","status":"publish","type":"sceneri-pro-docs","link":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/","title":{"rendered":"Animation"},"content":{"rendered":"

Overview<\/h3>\n

Animation assets (.anim.nasset) contain a timeline of positions, rotations and scales of bones contained inside skeletons, and allow us to animate skinned meshes at runtime.<\/p>\n

See Animation Components for more information on how animations can be played back in a scene.<\/p>\n

Formats<\/h3>\n

.cga<\/strong> (Crytek Geometry Animation)
\nThe .cga file contains pivot-based animated hard body geometry data. That means we don’t use a skinned geometry for this asset type and still use animated rigid parts of an Entity in the Engine. This is the asset type to use for Vehicles since it allows animations like opening a door or any animation which doesn’t use parts bending like skinned geometries for characters. The .cga file is created in a 3D application. The parts will be linked to each other in a hierarchy and will have a main root base. It only supports directly linked objects and does not support skeleton based animation (bone animation) with weighted vertices. Works together with .anm files.<\/p>\n

.anm<\/strong> (Animation)
\nThe .anm file is created in a 3D application and contains animation data for .cga objects. Each CGA file with more then one animation uses .anm files to move the individual parts of the CGA object. If there is only one animation for the object, it will be stored within the CGA file as the default animation in the Character Editor. .anm files are used to group different rigid body animations. For example, you can group landing gear coming down separately from the hatch to the cockpit opening.<\/p>\n

.cdf<\/strong> (Character Definition File)
\nThe character definition file is created in the Character Editor in Sandbox. It contains the reference to a .chr file and its attachments (can be .chr or .cgf).<\/p>\n

.chrparams<\/strong> (Character Parameters File)
\nFor a (skeletal) character in the game, there are certain definitions that have to be made in a single unified XML file-structure called a .chrparams file. The .chrparams file has the same name as the character file to which it refers. Please see The AnimEvents and Tracks Database Files<\/a> document for more information.<\/p>\n

.i_caf<\/strong> (Intermediate Character Animation File)
\nThe intermediate character animation file contains the animated bone data for a specific character. The .i_caf files can be exchanged between characters with similar bone structures. The intermediate character animation file stores animation in uncompressed format and is used in production. Such files are created with DCC plugins, see
Exporting Animations<\/a> for details.<\/p>\n

.animsettings<\/strong> (Animation Settings)
\nThe animation settings file contains per-animation compression settings. This is a sidecar file that is stored next to an .i_caf file and describes how it should be compiled by the Resource Compiler. Animation Settings are created by the Animation Import tool in Sandbox, see
Exporting Animations<\/a>.<\/p>\n

.caf<\/strong> (Character Animation File)
\nCompressed representation of the i_caf format. This format uses lossy compression and such files are created either by Sandbox or during the asset build build. Such files are loaded by the engine at runtime.<\/p>\n

.bspace<\/strong> (Blend-Space)
\nBlend space defines how multiple animation assets are blended together. Blend spaces are parameterized at runtime with locomotion parameters such as movement speed, movement direction, turning angle or slope. See
Blend Spaces<\/a>.<\/p>\n

.comb<\/strong> (Blend-Space combination)
\nThis allows combining multiple simpler blend-spaces into one, usually of a higher order.<\/p>\n

.animevents<\/strong> (Animation Events Database)
\nThis file stores a list of assets with timed event markups. A common usage is for footstep sounds. The event database can be created and modified in the Character Editor and gets mapped in the .chrparams file.<\/p>\n

SkeletonList.xml<\/strong> (Skeleton Alias Table)
\nA table that maps skeleton aliases (used within .animsettings) to skeleton filenames. Skeleton structure information is needed during animation compression.<\/p>\n

\n
\n
\n

From engine version 5.6 onwards, the skeleton list is not used anymore.<\/p>\n<\/div>\n<\/div>\n<\/div>\n

DbaTable.xml<\/strong> (DBA Table)
\nContains a list of .dba files (Animation Databases). For each Animation Database there is a list of .caf files that gets included.<\/p>\n

.dba<\/strong> (Animation Database)
\nSuch files are created by the Resource Compiler according to DbaTable.xml. They store multiple animation files and eliminate redundancy, providing additional lossless compression. Single .caf files are no longer needed unless they are on-demand assets. The database file must be set in the .chrparams file.<\/p>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":251212454,"featured_media":0,"parent":13983,"menu_order":0,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"sceneri-docs-tag":[],"class_list":["post-13997","sceneri-pro-docs","type-sceneri-pro-docs","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"\nAnimation - Sceneri<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Animation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/\" \/>\n<meta property=\"og:site_name\" content=\"Sceneri\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sceneriapp\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T23:20:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@sceneriapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/\",\"url\":\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/\",\"name\":\"Animation - Sceneri\",\"isPartOf\":{\"@id\":\"https:\/\/www.sceneri.com\/#website\"},\"datePublished\":\"2024-10-20T17:48:58+00:00\",\"dateModified\":\"2024-11-01T23:20:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sceneri.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Asset Types\",\"item\":\"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Animation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sceneri.com\/#website\",\"url\":\"https:\/\/www.sceneri.com\/\",\"name\":\"Sceneri\",\"description\":\"Collaborate in 3D.\",\"publisher\":{\"@id\":\"https:\/\/www.sceneri.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sceneri.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sceneri.com\/#organization\",\"name\":\"Sceneri\",\"url\":\"https:\/\/www.sceneri.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sceneri.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.sceneri.com\/wp-content\/uploads\/2024\/06\/sceneri-logo-inverted.png\",\"contentUrl\":\"https:\/\/www.sceneri.com\/wp-content\/uploads\/2024\/06\/sceneri-logo-inverted.png\",\"width\":1630,\"height\":512,\"caption\":\"Sceneri\"},\"image\":{\"@id\":\"https:\/\/www.sceneri.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/sceneriapp\",\"https:\/\/x.com\/sceneriapp\",\"https:\/\/www.reddit.com\/r\/sceneriapp\/\",\"https:\/\/www.twitch.tv\/sceneriapp\",\"https:\/\/www.youtube.com\/@sceneriapp\",\"https:\/\/www.linkedin.com\/company\/sceneri\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Animation - Sceneri","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/","og_locale":"en_US","og_type":"article","og_title":"Animation","og_url":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/","og_site_name":"Sceneri","article_publisher":"https:\/\/www.facebook.com\/sceneriapp","article_modified_time":"2024-11-01T23:20:12+00:00","twitter_card":"summary_large_image","twitter_site":"@sceneriapp","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/","url":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/","name":"Animation - Sceneri","isPartOf":{"@id":"https:\/\/www.sceneri.com\/#website"},"datePublished":"2024-10-20T17:48:58+00:00","dateModified":"2024-11-01T23:20:12+00:00","breadcrumb":{"@id":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/animation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sceneri.com\/"},{"@type":"ListItem","position":2,"name":"Asset Types","item":"https:\/\/www.sceneri.com\/sceneri-pro-docs\/asset-types\/"},{"@type":"ListItem","position":3,"name":"Animation"}]},{"@type":"WebSite","@id":"https:\/\/www.sceneri.com\/#website","url":"https:\/\/www.sceneri.com\/","name":"Sceneri","description":"Collaborate in 3D.","publisher":{"@id":"https:\/\/www.sceneri.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sceneri.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.sceneri.com\/#organization","name":"Sceneri","url":"https:\/\/www.sceneri.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sceneri.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.sceneri.com\/wp-content\/uploads\/2024\/06\/sceneri-logo-inverted.png","contentUrl":"https:\/\/www.sceneri.com\/wp-content\/uploads\/2024\/06\/sceneri-logo-inverted.png","width":1630,"height":512,"caption":"Sceneri"},"image":{"@id":"https:\/\/www.sceneri.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/sceneriapp","https:\/\/x.com\/sceneriapp","https:\/\/www.reddit.com\/r\/sceneriapp\/","https:\/\/www.twitch.tv\/sceneriapp","https:\/\/www.youtube.com\/@sceneriapp","https:\/\/www.linkedin.com\/company\/sceneri\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/sceneri-pro-docs\/13997"}],"collection":[{"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/sceneri-pro-docs"}],"about":[{"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/types\/sceneri-pro-docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/users\/251212454"}],"version-history":[{"count":0,"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/sceneri-pro-docs\/13997\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/sceneri-pro-docs\/13983"}],"wp:attachment":[{"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/media?parent=13997"}],"wp:term":[{"taxonomy":"sceneri-docs-tag","embeddable":true,"href":"https:\/\/www.sceneri.com\/wp-json\/wp\/v2\/sceneri-docs-tag?post=13997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}