{"id":387,"date":"2026-06-01T20:13:52","date_gmt":"2026-06-01T20:13:52","guid":{"rendered":"https:\/\/rivals2.com\/workshop-dev\/?post_type=knowledgebase&#038;p=387"},"modified":"2026-08-05T19:37:15","modified_gmt":"2026-08-05T19:37:15","slug":"exporting-character-mesh-to-unreal","status":"publish","type":"knowledgebase","link":"https:\/\/rivals2.com\/workshop\/knowledge-base\/character-creation\/exporting-character-mesh-to-unreal\/","title":{"rendered":"Export Model and Animation From Blender"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Mesh and animation files are transferred from Blender into Unreal via the .FBX file format. Only geometry, armature bones, materials and textures can be transferred this way. Animation Control rig and other nodes are not meant to be imported into unreal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unreal only supports <strong>Armature (Joint) Deformers<\/strong> and <strong>Shape Key (Morph Target) Deformers<\/strong>. Other types of animation Deformers available in blender must be somehow represented by bones or morph targets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unreal supports non-destructive updating of your content, after a file is imported into Unreal it can be re imported as many times as you wish and Unreal will attempt to preserve connections. It is recommended to export your FBX files in a consistent location with consistent naming to make re-importing assets in Unreal easier.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Export Skeletal Mesh From Blender<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before exporting any animation we want an FBX file that contains only mesh and bones in the bind pose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Export preparation checklist<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<ul class=\"wp-block-list\">\n<li>Set all mesh to shade smooth to ensure Outline continuity in game.<br>(If shade smooth does not initially work, you may need to clear sharp edges and custom normal data from your geometry as well.)<\/li>\n\n\n\n<li>Ensure all mesh is bound to at least one joint in the armature <\/li>\n\n\n\n<li>Apply modifiers to your geometry.<\/li>\n\n\n\n<li>Ensure that your scene scale is set to Metric and units are 0.01 (Centimeters)<\/li>\n\n\n\n<li>Make sure the character is scaled correctly and facing forward (-Y in Blender).<\/li>\n\n\n\n<li>Apply transforms to your armature (Scale values should be 1 on all joints, Rotation values should be 0).<\/li>\n\n\n\n<li>Make sure that the character is in it&#8217;s bind pose on frame 0 (the same pose that it was in when bound to the skeleton, you don&#8217;t want any rig controls offset moved during export of the character mesh)<\/li>\n\n\n\n<li>Assign all materials needed.<\/li>\n\n\n\n<li>Verify that the armature, mesh and materials have sensible names. <br><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f30404\" class=\"has-inline-color\">WARNING: If the Armature Root node is named :&#8221;Armature&#8221;, unreal may discard this node causing potential issues. Be sure to rename it.<\/mark><\/strong><\/li>\n<\/ul>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Select the mesh and armature then click <strong>File \u2192 Export \u2192 FBX (.fbx)<\/strong>. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"766\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-02-120414.png\" alt=\"\" class=\"wp-image-408\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-02-120414.png 714w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Screenshot-2026-06-02-120414-280x300.png 280w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">At the top of the export settings <strong>create an export operator preset<\/strong> using the following recommended export settings. you will be using this preset to export all skeletal mesh into Unreal:<\/p>\n\n\n\n<div class=\"wp-block-media-text\" style=\"grid-template-columns:35% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/BlenderExportSettings-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"349\" height=\"1024\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/BlenderExportSettings-1-349x1024.png\" alt=\"\" class=\"wp-image-1729 size-full\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/BlenderExportSettings-1-349x1024.png 349w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/BlenderExportSettings-1-102x300.png 102w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/BlenderExportSettings-1.png 475w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<ol class=\"wp-block-list\">\n<li>Limit to: Selected Objects<br>(Or setup your own method for controlling which objects are included)<\/li>\n\n\n\n<li>Object Types: Armature and Mesh<\/li>\n\n\n\n<li>Scale: 1<br>Forward: X Forward<br>Up: Z Up<br>Apply Unit: True<br>Use Space Transform: True<\/li>\n\n\n\n<li>Smoothing: Smoothing Groups<\/li>\n\n\n\n<li>Primary Bone Axis: X Axis<br>Secondary Bone Axis: -Y Axis<\/li>\n\n\n\n<li>Only Deform Bones: False<\/li>\n\n\n\n<li>Add Leaf Bones: False<\/li>\n\n\n\n<li>Animation: False &#8211; We will set these options when it comes time to export animations<br><\/li>\n<\/ol>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The resulting FBX file should include only mesh, and armature joints along with shape keys, assigned materials and textures, NO animation rig controls or keyframes should be present in this file. You can open an empty scene in Blender and import the .FBX file to review it&#8217;s contents if needed for troubleshooting purposes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Export Animation From Blender<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Importing Animations From Blender To Unreal - Unreal Engine Tutorial\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/YMBsA2EgSMI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Animation should be exported into an FBX file that is separate from the character mesh. <\/li>\n\n\n\n<li>Each animation should be created as a separate action in Blender. <\/li>\n\n\n\n<li>Multiple animation actions can be exported to the same FBX file. <\/li>\n\n\n\n<li>Unreal will import animations based on your Animation action names or NLA strip names in blender so be sure to name them sensibly before exporting. You can review the various states required along with their names in the Animation States Page.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">There are effectively 3 options to export animation sequences from Blender to Unreal. The option you are using will determine the export settings you should use.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Export all animation Actions<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">This method exports all actions present in the scene into an FBX file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a copy of your character export Operator preset and edit the following settings then click export:<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"467\" height=\"276\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportAllActions.png\" alt=\"\" class=\"wp-image-425 size-full\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportAllActions.png 467w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportAllActions-300x177.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<ul class=\"wp-block-list\">\n<li>Animation: True<\/li>\n\n\n\n<li>Key All Bones: True<\/li>\n\n\n\n<li>NLA Strips: False<\/li>\n\n\n\n<li>All Actions: True<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Export a single animation Action<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">This option exports only your current active action into an FBX file. Use this if you want to focus on exporting a single action for quick iteration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select your animated armature node and then<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"107\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps-1024x107.png\" alt=\"\" class=\"wp-image-426\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps-1024x107.png 1024w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps-300x31.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps-768x81.png 768w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps-1536x161.png 1536w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ActionEditorSteps.png 1592w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the action editor window <\/li>\n\n\n\n<li>Click the action dropdown and set your active action to the one you would like to export<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Then create a copy of your character operator preset and edit the following settings and click export:<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"278\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-22.png\" alt=\"\" class=\"wp-image-423 size-full\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-22.png 461w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-22-300x181.png 300w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<ul class=\"wp-block-list\">\n<li>Animation: True<\/li>\n\n\n\n<li>Key All Bones: True<\/li>\n\n\n\n<li>NLA Strips: False<\/li>\n\n\n\n<li>All Actions: False<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Export a selection of animation Actions<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">If you want more control over which actions are exported, you will need to use the Nonlinear Animation Editor (Sometimes referred to as NLA strips). This editor is often used for animation sequencing and blending but for our purposes we will mainly be using it as an export management tool.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"391\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-24.png\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-24.png 598w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-24-300x196.png 300w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><figcaption class=\"wp-element-caption\">Open a nonlinear animation window to begin listing animation actions for export.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"441\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25-1024x441.png\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25-1024x441.png 1024w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25-300x129.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25-768x331.png 768w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25-1536x661.png 1536w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-25.png 1686w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Open a Nonlinear Animation editor window and you should see a list of all animated actors in the scene along with their currently active animation actions. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"242\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-26.png\" alt=\"\" class=\"wp-image-429\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-26.png 558w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-26-300x130.png 300w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Click the Push Down button while an action is active to assign it to an NLA strip.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"201\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-27.png\" alt=\"\" class=\"wp-image-430\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-27.png 886w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-27-300x68.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-27-768x174.png 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once you have assigned all of your actions to separate NLA strips you can use the checkbox beside each one to determine which actions to export.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next create a copy of your character operator preset and edit the following settings and click export: <\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"467\" height=\"276\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportSomeActions.png\" alt=\"\" class=\"wp-image-431 size-full\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportSomeActions.png 467w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/ExportSomeActions-300x177.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<ul class=\"wp-block-list\">\n<li>Animation: True<\/li>\n\n\n\n<li>Key All Bones: True<\/li>\n\n\n\n<li>NLA Strips: True<\/li>\n\n\n\n<li>All Actions: False<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Blender will export all of your selected animation actions to a single FBX file which can then be imported into Unreal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mesh and animation files are transferred from Blender into Unreal via the .FBX file format. Only geometry, armature bones, materials and textures can be transferred this way. Animation Control rig and other nodes are not meant to be imported into unreal. Unreal only supports Armature (Joint) Deformers and Shape Key (Morph Target) Deformers. Other types [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","knowledgebase_cat":[4],"knowledgebase_tag":[],"class_list":["post-387","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-character-creation"],"_links":{"self":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase"}],"about":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/types\/knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/comments?post=387"}],"version-history":[{"count":40,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/387\/revisions"}],"predecessor-version":[{"id":1730,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/387\/revisions\/1730"}],"wp:attachment":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/media?parent=387"}],"wp:term":[{"taxonomy":"knowledgebase_cat","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_cat?post=387"},{"taxonomy":"knowledgebase_tag","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_tag?post=387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}