mixamo.html 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>Animating Blender Models With Mixamo</title><link rel="stylesheet" href="./asciidoctor.css">
  2. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  3. <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/mixamo.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>Animating Blender Models With Mixamo</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2017/05/25 13:04</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#using-mixamo-for-model-animation">Using Mixamo For Model Animation</a></li><li><a href="#prepare-to-export">Prepare to Export</a></li><li><a href="#blender-fbx-export">Blender FBX Export</a></li><li><a href="#mixamo-fbx-import">Mixamo FBX Import</a></li><li><a href="#mixamo-auto-rigger">Mixamo Auto-Rigger</a></li><li><a href="#mixamo-animations">Mixamo Animations</a></li><li><a href="#mixamo-download">Mixamo Download</a></li><li><a href="#creating-blender-animations">Creating Blender Animations</a></li><li><a href="#action-baking">Action Baking</a></li><li><a href="#creating-the-rigged-animation-file">Creating The Rigged Animation File</a></li><li><a href="#ogre-export">Ogre Export</a></li><li><a href="#appending-blender-animations">Appending Blender Animations</a></li><li><a href="#notes">Notes</a></li></ul></div></div><div id="content"><div class="sect1"><h2 id="using-mixamo-for-model-animation">Using Mixamo For Model Animation</h2><div class="sectionbody"><div class="paragraph"><p>With very little effort, you can use Adobes Mixamo to fully animate your Blender models. Once you understand the process that is.</p></div>
  4. <div class="paragraph"><p>This guide requires:</p></div>
  5. <div class="ulist"><ul><li><p><a href="https://www.blender.org/download/">Blender version 2.78c+</a> with its default settings. The exception being <code>Select With:</code>, under <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">User Preferences</span>&#160;&#9656; <span class="menuitem">Input</span></span></code> is set to <code>Left Click</code>.</p></li><li><p>Blender Ogre exporter 0.6.0, found <a href="../../jme3/advanced/ogrecompatibility.html">here</a>, enabled.</p></li><li><p>Blender FBX file Importing and Exporting, enabled.</p></li><li><p>A Modest amount of Blender knowledge.</p></li><li><p>A <a href="https://www.mixamo.com/#/">Mixamo</a> account.</p></li></ul></div></div></div>
  6. <div class="sect1"><h2 id="prepare-to-export">Prepare to Export</h2><div class="sectionbody"><div class="paragraph"><p>To properly animate your models there are a few rules you must follow.</p></div>
  7. <div class="ulist"><ul><li><p>Read the <a href="https://helpx.adobe.com/creative-cloud/faq/mixamo-faq.html">Common Questions</a> guide before you do anything else.</p></li><li><p>Clean up your Blender file prior to exporting. This means you have a game ready model that will become the base for all your animations. Do this in a copy of your file so you have the original as a backup. The following checklist is provided for your convenience.</p><div class="ulist checklist"><ul class="checklist"><li><p><input type="checkbox" data-item-complete="0"> You have no Animations.</p></li><li><p><input type="checkbox" data-item-complete="0"> You have applied a triangulate modifier. Some exporters other than Ogre, have an option to apply the modifier on export. This would be the preferred method. Ogre doesn&#8217;t have this feature.</p></li><li><p><input type="checkbox" data-item-complete="0"> You have UV Mapped your model. It isn&#8217;t required by Mixamo, just for loading your models into jme.</p></li><li><p><input type="checkbox" data-item-complete="0"> Your models origin is at the base of the mesh.</p></li><li><p><input type="checkbox" data-item-complete="0"> You have your materials and textures done for your model. It isn&#8217;t required by Mixamo, just for loading your model into jme.</p></li><li><p><input type="checkbox" data-item-complete="0"> You have cleared the UV, Material and Texture buffers of unused images, materials and textures. It isn&#8217;t required by Mixamo, just makes your models cleaner for jme.</p></li><li><p><input type="checkbox" data-item-complete="0"> There are no <code>Actions</code> stored in the <code>Dope Sheet Editor</code> buffer.  Open the <code>Action Editor</code> context, select the <b class="button">Browse Action to be linked</b> button to check there are no stored actions. See the links below.</p></li><li><p><input type="checkbox" data-item-complete="0"> You have applied the Location, Rotation, and Scale to your model.</p></li><li><p><input type="checkbox" data-item-complete="0"> <strong>MOST IMPORTANT OF ALL</strong>, in the <code><span class="menuseq"><span class="menu">Properties Panel</span>&#160;&#9656; <span class="submenu">Scene Tab</span>&#160;&#9656; <span class="menuitem">Units Panel</span></span></code> set the <b class="button">Unit of Measure</b> to Meters and the Length to Metric. Adobe uses centimeters for the FBX exporter and if this is not set the models scale will be unusual to say the least. JME3 uses 1 WU = whatever you determine but meters will make things easier for all aspects of your modeling. If you are doing this now, you may have to re-scale your model before proceeding.</p></li></ul></div></li></ul></div>
  8. <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>See <a href="../../jme3/advanced/3d_models.html#blender-buffer-clearing">Blender Buffer Clearing</a> if you don&#8217;t already know how to clear your buffers.</p></div>
  9. <div class="paragraph"><p>See <a href="../../jme3/external/blender.html">Creating assets in Blender3D</a> for help on creating jME3 compatible models.</p></div></td></tr></table></div></div></div>
  10. <div class="sect1"><h2 id="blender-fbx-export">Blender FBX Export</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>In the <code>3d Viewport</code>, select your model, it will be high-lighted in orange.</p></li><li><p>In the <code>Info</code> header, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">Export</span>&#160;&#9656; <span class="menuitem">FBX</span></span></code>.</p></li><li><p>Enter a file path to export to, usually the same folder as your <code>.blend</code> file for simplicity.</p></li><li><p>Enter a file name.</p></li><li><p>In the <code>Export FBX</code> panel, located in the bottom left of the export dialog:</p><div class="dlist"><dl><dt class="hdlist1">Main Tab</dt><dd><div class="ulist checklist"><ul class="checklist"><li><p><i class="fa fa-check-square-o"></i> Selected Objects</p></li><li><p>Scale = 1</p><div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>Click the button next to scale to deselect <b class="button">Scale all data</b>. Failure to do so will destroy the scale of your model. If the button is selected, it will be dark in color.</p></div></td></tr></table></div></li><li><p>Forward = -Z Forward</p></li><li><p>Up = Y Up</p></li><li><p>Which kind of object to export = Mesh</p></li></ul></div></dd><dt class="hdlist1">Geometries Tab</dt><dd><div class="ulist checklist"><ul class="checklist"><li><p><i class="fa fa-check-square-o"></i> Apply Modifiers</p></li></ul></div></dd></dl></div></li><li><p>When you are done, click the <b class="button">Export FBX</b> button to export the file.</p></li></ol></div>
  11. <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You can save these FBX export settings by clicking the <b class="button">+</b> button next to <b class="button">Operator Presets</b>.</p></div></td></tr></table></div></div></div>
  12. <div class="sect1"><h2 id="mixamo-fbx-import">Mixamo FBX Import</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>Create an <a href="https://www.mixamo.com/#/">Mixamo</a> account and login.</p></li><li><p>From the <code>Default Character</code> panel, select <code>Upload Character</code>.</p></li><li><p>Navigate to the file to be uploaded or drag and drop it onto the file up-loader.</p></li><li><p>Select <code>Open</code>.</p></li></ol></div>
  13. <div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="paragraph"><p>Generally, if at any time during the import and rigging process the model does not appear within the time specified in the dialog that is showing, something has gone wrong and you will have to restart the process over.</p></div></td></tr></table></div></div></div>
  14. <div class="sect1"><h2 id="mixamo-auto-rigger">Mixamo Auto-Rigger</h2><div class="sectionbody"><div class="paragraph"><p>If everything went well the <code>Auto-Rigger</code> will open and your model will be facing you. If not, fix your model in Blender before proceeding.</p></div>
  15. <div class="olist arabic"><ol class="arabic"><li><p>If the model is facing you, click <b class="button">Next</b>.</p></li><li><p>In this panel you will rig your model. Place the markers as shown in the Auto-Rigger dialog image.</p><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="paragraph"><p>Remember that the model is facing you so its right is on your left.</p></div></td></tr></table></div></li><li><p>Select the LOD you are after. This is based off how many bones you want the hand of the model to have. Feel free to cycle through the options to see what each one does.</p></li><li><p>When you are through click the <b class="button">Next</b> button to rig your model.</p></li><li><p>When the model appears, if satisfied with the results, click <code>Finish</code>.</p></li></ol></div></div></div>
  16. <div class="sect1"><h2 id="mixamo-animations">Mixamo Animations</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>In the far right panel select <b class="button">Find Animations</b>.</p></li><li><p>After deciding on an animation, click the animation to have it applied to your model.</p></li><li><p>After the animation is applied to your model, toggle the <b class="button">In Place</b> checkbox if it&#8217;s a moving animation.</p><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You can make small adjustments to the animation by using the sliders. The most common adjustment you will make is the <code>Character Arm-Space</code>. If you find the models hands are clipping through the model then use this slider to remedy the situation.</p></div></td></tr></table></div></li><li><p>When satisfied with the animation, select the <b class="button">Download</b> button and follow the <code>Mixamo Download</code> instructions below.</p></li></ol></div>
  17. <div class="paragraph"><p>If you wish to add more animations, after the download, remove the animation by clicking on the <b class="button">X</b> button located next to the animations name. Add your new animation and when satisfied, download the new animation. Repeat as often as is neccessary.</p></div></div></div>
  18. <div class="sect1"><h2 id="mixamo-download">Mixamo Download</h2><div class="sectionbody"><div class="paragraph"><p>When downloading <code><strong>Animations</strong></code> from Mixamo:</p></div>
  19. <div class="olist arabic"><ol class="arabic"><li><p>Make sure the <b class="button">In Place</b> checkbox is selected if it&#8217;s a moving animation.</p></li><li><p>In the <code>Download Settings</code> dialog use the default settings.</p><div class="ulist"><ul><li><p>Format = FBX</p></li><li><p>Skin = With Skin</p></li><li><p>Frames per second = 30</p></li><li><p>Keyframe Reduction = none</p></li></ul></div></li><li><p>Click <b class="button">Download</b> and save it to your computer.</p></li></ol></div>
  20. <div class="paragraph"><p>When downloading <code><strong>Characters</strong></code> from Mixamo:</p></div>
  21. <div class="olist arabic"><ol class="arabic"><li><p>In the <code>Download Settings</code> dialog the <code>Format</code> is FBX and <code>Pose</code> is TPose.</p></li><li><p>Click <b class="button">Download</b> and save it to your computer.</p></li></ol></div></div></div>
  22. <div class="sect1"><h2 id="creating-blender-animations">Creating Blender Animations</h2><div class="sectionbody"><div class="paragraph"><p>Download your TPose model using the instructions for downloading <code><strong>Characters</strong></code> given above. We will use it as our newly rigged model for Blender. To keep things organized we will create a <code>.blend</code> file for every animation and later use a separate <code>.blend</code> file to combine all animations into one jME3 compatible animation.</p></div>
  23. <div class="paragraph"><p>The following steps apply to any animation you want to add in the future.</p></div>
  24. <div class="olist arabic"><ol class="arabic"><li><p>Start Blender if it is not already open.</p></li><li><p>In the <code>Info</code> header, at the top of the program, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">New</span>&#160;&#9656; <span class="menuitem">Reload Startup</span></span></code>.</p></li><li><p>Select the default cube and delete it.</p><div class="dlist"><dl><dt class="hdlist1">Scene Tab</dt><dd><div class="ulist"><ul><li><p>In the <code>Properties</code> panel, located at the bottom right, select the <code>Scene</code> tab.</p></li><li><p>In the <code>Units</code> panel, change the <code>Units of measure</code> to <code>Meters</code> and <code>Length</code> to <code>Metric</code>. You must <strong>always</strong> have these settings when importing from or exporting to Mixamo.</p><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You should create and save a default startup file in Blender. <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Save Startup File</span></span></code>. This way you will not have to constantly redo things. Setting your <code>Units of measure</code> is the least you should do. You can always restore the default startup file by selecting <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Load Factory Settings</span></span></code> at any time.</p></div></td></tr></table></div></li></ul></div></dd></dl></div></li><li><p>In the <code>Info</code> header, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">Import</span>&#160;&#9656; <span class="menuitem">FBX</span></span></code>.</p></li><li><p>Select the FBX file you downloaded earlier.</p></li><li><p>In the <code>Import Fbx</code> panel located at the bottom left of the import dialog, leave all settings at their defaults.</p><div class="dlist"><dl><dt class="hdlist1">Main</dt><dd><div class="ulist checklist"><ul class="checklist"><li><p>Scale = 1</p></li><li><p><i class="fa fa-check-square-o"></i> Import Normals</p></li><li><p><i class="fa fa-check-square-o"></i> Import Animations</p></li><li><p>Armature offset = 1</p></li><li><p><i class="fa fa-check-square-o"></i> Image Search</p></li><li><p>Decal offset = 0</p></li><li><p><i class="fa fa-check-square-o"></i> Use pre/post rotation</p></li></ul></div></dd><dt class="hdlist1">Armatures</dt><dd><div class="ulist"><ul><li><p>Nothing checked</p></li></ul></div></dd></dl></div></li><li><p>When ready click <b class="button">Import FBX</b>.</p></li><li><p>After Blender imports the file, both the armature and model are selected, in this order, select <code><span class="menuseq"><span class="menu">Object</span>&#160;&#9656; <span class="submenu">Apply</span>&#160;&#9656; <span class="menuitem">Rotation</span></span></code>. Repeat this for the <code>Location</code> and <code>Scale</code>. Alternatively, select the armature and model individually and repeat the process.</p></li><li><p>Select the Armature.</p></li><li><p>In the <code>Timeline</code>, determine the Length of the animation by <b class="button">RMB</b> selecting the last keyframe in the timeline.<br>
  25. Set <code>End:</code> to this value.</p></li><li><p>Click the <b class="button">|&lt;&lt;</b> button to reset timeline back to the first frame.</p></li><li><p>In the <code>Info</code> header, change the <code>Default</code> screen layout to <code>Animation</code>.</p></li><li><p>In the <code>Dope Sheet Editor</code>, change the <code>Dope Sheet</code> mode/context to <code>Action Editor</code>. The <code>Linked Action</code> will now show the action name of the animation you imported.</p></li><li><p>Rename this to the name of the imported animation. In this instance it was TPose.</p></li><li><p>Select the <b class="button">F</b> button to save the action.</p></li><li><p>Save your file with the same name as the action.</p></li></ol></div>
  26. <div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="paragraph"><p>Mixamo sets the rotation mode of bones to <code>Quaternion</code> as is appropriate for preventing <a href="https://en.wikipedia.org/wiki/Gimbal_lock"><code>Gimbal Lock</code></a>. Keep this in mind if you decide to modify your animation. Blender defaults to <code>XYZ Euler</code> so you will need to change this setting prior to inserting new keyframes.</p></div></td></tr></table></div></div></div>
  27. <div class="sect1"><h2 id="action-baking">Action Baking</h2><div class="sectionbody"><div class="paragraph"><p>There are many ways to export or import files for jMonkeyEngine. If you plan to use a method other than <code>Ogre Exporter</code>, you may need to bake your actions. Baking is a destructive process so it is recommended that <strong>after</strong> completion of <a href="../../jme3/advanced/mixamo.html#creating-blender-animations">Creating Blender Animations</a>, test the animation in-game. If your animations are all messed up, try baking them or use a different exporter.</p></div>
  28. <div class="paragraph"><p>If you find yourself in need of baking, the process is as follows.</p></div>
  29. <div class="olist arabic"><ol class="arabic"><li><p>Using the animation file you created in the previous section, from the <code>Info</code> header, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Save Copy</span></span></code>.</p></li><li><p>Save the file somewhere other than the current folder. This will save you the effort of re-creating the animation file if you need it at some other time.</p></li><li><p>In the <code>Info</code> header, change the <code>Default</code> screen layout to <code>Animation</code>.</p></li><li><p>In the <code>Dope Sheet Editor</code>, change the <code>Dope Sheet</code> mode/context to <code>Action Editor</code>.</p></li><li><p>Click the <b class="button">Action to be linked</b> button and select your action.</p></li><li><p>In the <code>3d Viewport</code> header, select the armature.</p><div class="ulist"><ul><li><p>Depending on the mode selected choose:</p><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>Object Mode: <code><span class="menuseq"><span class="menu">Object</span>&#160;&#9656; <span class="submenu">Animation</span>&#160;&#9656; <span class="menuitem">Bake Action</span></span></code>.</p></li><li><p>Pose Mode: <code><span class="menuseq"><span class="menu">Pose</span>&#160;&#9656; <span class="submenu">Animation</span>&#160;&#9656; <span class="menuitem">Bake Action</span></span></code>.</p></li></ol></div></li></ul></div></li><li><p>In the <code>Bake Action</code> dialog, deselect and set the settings as follows:</p><div class="dlist"><dl><dt class="hdlist1">Bake Action</dt><dd><div class="ulist checklist"><ul class="checklist"><li><p><i class="fa fa-square-o"></i> Selected Only</p></li><li><p><i class="fa fa-check-square-o"></i> Visual Keying</p></li><li><p><i class="fa fa-check-square-o"></i> Clear Constraints</p></li><li><p><i class="fa fa-square-o"></i> Clear Parents</p></li><li><p><i class="fa fa-square-o"></i> Overwrite Current</p></li><li><p>Bake Data = Pose</p></li></ul></div></dd></dl></div></li><li><p>When ready click <b class="button">OK</b>.</p></li><li><p>The <code>Linked Action</code> in the <code>Dope Sheet Editor</code> will change to the newly baked action and is named <code>Action</code>. Rename this to the name of the imported animation.</p></li><li><p>Select the <b class="button">F</b> button to save the action.</p></li><li><p>Save your file.</p></li><li><p>Clear the old action from the <code>Linked Action</code> buffer. See <a href="../../jme3/advanced/3d_models.html#blender-buffer-clearing">Blender Buffer Clearing</a> for more information.</p></li></ol></div></div></div>
  30. <div class="sect1"><h2 id="creating-the-rigged-animation-file">Creating The Rigged Animation File</h2><div class="sectionbody"><div class="paragraph"><p>It&#8217;s good practice to have a separate file for combining animations. Things can go wrong, animations may change, and you don&#8217;t want to destroy your original model file by accident. Our plan of attack has been we create a .blend file for every animation and then use this separate rigged file to combine them into one. To keep it simple we will use a copy of the first animation we downloaded and created a <code>.blend</code> file for.</p></div>
  31. <div class="paragraph"><p>You create a rigged animation file only one time per model.</p></div>
  32. <div class="olist arabic"><ol class="arabic"><li><p>If you have closed the TPose.blend file, open it. In the <code>Info</code> header select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Save As</span></span></code> and save the file using the models name with the word <code>Rigged</code> added. This will be the only file we add animations to, for this model, from now on. It has our default TPose action which will allow us to start our animation track for <code>Ogre</code> animation exporting.</p></li><li><p>Select your <code>Armature</code>.</p><div class="dlist"><dl><dt class="hdlist1">Object Tab</dt><dd><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>In the <code>Properties</code> panel, navigate to the <code>Object</code> tab. In the <code>Display</code> panel toggle <code>X-Ray</code> on.</p></li></ol></div></dd></dl></div></li><li><p>With your mouse inside the <code>3d Viewport</code>, press <kbd>Num Pad 1</kbd> followed by <kbd>Numpad 5</kbd>.</p></li><li><p><kbd>Tab</kbd> into <code>Edit Mode</code>.</p></li><li><p>Set the <code>3d Cursor</code> to the models origin.</p></li><li><p>Select <code><span class="menuseq"><span class="menu">Add</span>&#160;&#9656; <span class="menuitem">Single Bone</span></span></code>.</p><div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>The models origin and the <code>Root</code> bone origin must be at the same location.</p></div></td></tr></table></div></li><li><p>Scale the bone down or up as needed by selecting the <code>Tip</code> (ball at the narrowest part of the bone) and dragging the <code>Z</code> arrow (blue arrow) of the manipulator up or down until you are satisfied with its scale. <strong>DO NOT CHANGE THE ANGLE OR MOVE THE BASE OF THE BONE FROM CENTER</strong>.</p></li><li><p>When satisfied with the scale, select the body of the bone to select the entire bone.</p><div class="dlist"><dl><dt class="hdlist1">Bone Tab</dt><dd><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>In the <code>Properties</code> panel, navigate to the <code>Bone</code> tab.</p></li><li><p>Rename the bone to <code>Root</code>.</p></li><li><p>Deselect the <code>Deform</code> panel checkbox.</p></li></ol></div></dd></dl></div></li><li><p>In the <code>3d Viewport</code>, select the body of the armatures <code>Hip</code> bone, the lowest bone in the center of the armature, to select the entire bone.</p></li><li><p>While holding <kbd>Shift</kbd> down, <b class="button">LMB</b> select the <code>Root</code> bone.</p></li><li><p>Press <kbd>Ctrl</kbd> + <kbd>P</kbd>.</p></li><li><p>In the <code>Make Parent</code> dialog choose <code>Keep Offset</code>.</p></li><li><p>With the mouse inside the 3d Viewport, <kbd>Tab</kbd> out of <code>Edit Mode</code>.</p></li><li><p>Select your model.</p><div class="dlist"><dl><dt class="hdlist1">Data Tab</dt><dd><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>In the <code>Properties</code> panel, navigate to the <code>Data</code> tab and make sure the <code>Mesh</code> has the same name as your model.</p></li></ol></div></dd><dt class="hdlist1">Material Tab</dt><dd><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>In the <code>Properties</code> panel, navigate to the <code>Material</code> tab and make sure there is one <code>Material</code> in the <code>Material List</code> and it is the same name as your model.</p></li><li><p>In the <code>Transparency</code> panel, move the <code>Alpha</code> slider to 1.</p><div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>There appears to be a bug where the FBX importer adds an <code>Alpha</code> map texture to your model. If the <code>Alpha</code> slider is not at one, and you use the Blender importer of the SDK, or convert a .blend file, it will be transparent. <code>Ogre</code> export is unaffected.</p></div></td></tr></table></div></li><li><p>Deselect the checkbox of the <code>Transparency</code> panel.</p></li></ol></div></dd><dt class="hdlist1">Texture Tab</dt><dd><div class="olist loweralpha"><ol class="loweralpha" type="a"><li><p>In the <code>Properties</code> panel, navigate to the <code>Texture</code> tab, you will note that your texture has duplicate names in the <code>Texture List</code>. The bottom texture is actually a transparent <code>Alpha</code> texture and appears to be a bug. Select the <strong>second</strong> texture in the <code><strong>Texture List</strong></code> to highlight it.</p></li><li><p>While holding down the <kbd>Shift</kbd> key, press the <b class="button">X</b> button next to the <code><strong>Texture Data Block</strong></code> to delete it.</p></li><li><p>Select your remaining texture in the <code>Texture List</code> to highlight it. You will note the <code>Texture Data Block</code> is now red due to no texture being assigned.</p></li><li><p>Click on the <b class="button">Browse Texture to be linked</b> button next to the <code>Texture Data Block</code> and select your texture.</p></li><li><p>In the <code>Image</code> panel, click the <b class="button">Small Box</b> button located next to your texture&#8217;s path to pack the image file.</p></li></ol></div></dd></dl></div></li><li><p>In the <code>Info</code> header, change the layout from <code>Animation</code> to <code>UV Editing</code>.</p></li><li><p>With your mouse inside the <code>3d Viewport</code> and the model still selected, <kbd>Tab</kbd> into edit mode. If your model is not completely orange press <kbd>A</kbd> untill all vertices are selected. You will see your UV Mapped mesh appear in the <code>UV Image Editor</code> window.</p></li><li><p>In the <code>UV Image Editor</code>, click the <b class="button">Browse Image to be linked</b> button and select your UV image.</p></li><li><p><kbd>Tab</kbd> out of <code>Edit Mode</code>.</p></li><li><p>In the <code>Info</code> header, change the layout from <code>UV Editing</code> to <code>Default</code> and then click the <b class="button">+</b> button to create a new layout.</p></li><li><p>Rename this new layout <code>NLA Editing</code>.</p></li><li><p>Click the <code>Current Editor Type</code> button, located at the bottom left (small box) of the <code>3d Viewport</code>, and change it from <code>3d View</code> to <code>NLA Editor</code>. Our TPose action is now visible.</p><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">If the action is not visible, navigate to the <code>Dope Sheet Editor</code> and from the <code>Action Editor</code> context, select the <code>Action</code>.</td></tr></table></div></li><li><p>Click the <b class="button">Double Down Arrow</b> button to push the action down into the stack.</p></li><li><p>Beneath the TPose strip you will see a slider. Drag this slider to the right until your strip is nested up against the left margin of the window.</p></li><li><p>Save your file.</p></li></ol></div></div></div>
  33. <div class="sect1"><h2 id="ogre-export">Ogre Export</h2><div class="sectionbody"><div class="paragraph"><p>Your rigged file is now <code>Ogre</code> export ready. Before we go any further, we will test our export to verify it&#8217;s error free.</p></div>
  34. <div class="olist arabic"><ol class="arabic"><li><p>In the <code>Info</code> header, change the layout to <code>Default</code>.</p></li><li><p><kbd>Shift</kbd> + <b class="button">LMB</b> select your armature and your model.</p></li><li><p>From the <code>Info</code> header, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">Export</span>&#160;&#9656; <span class="menuitem">Ogre3d</span></span></code>.</p></li><li><p>Select a destination path in your games <code>Assets</code> folder, usually the <code>Textures</code> folder.</p></li><li><p>Make sure <code>Selected Only</code> is checked and <code>Only Deformable Bones</code> is unchecked.</p></li><li><p>When you&#8217;re happy with your export settings click <b class="button">Export Ogre</b>.</p></li></ol></div>
  35. <div class="paragraph"><p>If your file exports clean, proceed with the next steps. If not, fix any errors before continuing.</p></div>
  36. <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>More on the <code>Ogre</code> settings can be found in <a href="../../jme3/advanced/3d_models.html#creating-models-and-scenes">creating models and scenes</a>.</p></div></td></tr></table></div></div></div>
  37. <div class="sect1"><h2 id="appending-blender-animations">Appending Blender Animations</h2><div class="sectionbody"><div class="paragraph"><p>Follow the directions for <a href="../../jme3/advanced/mixamo.html#mixamo-animations">Mixamo Animations</a>, <a href="../../jme3/advanced/mixamo.html#mixamo-download">Mixamo Download</a>, <a href="../../jme3/advanced/mixamo.html#creating-blender-animations">Creating Blender Animations</a> and <a href="../../jme3/advanced/3d_models.html#blender-buffer-clearing">Clearing The Linked Action Buffer</a> for all animations you wish to append to your <strong>rigged</strong> animation file.</p></div>
  38. <div class="olist arabic"><ol class="arabic"><li><p>If your <code>Rigged</code> file is closed, open it.</p></li><li><p>From the <code>Info</code> header, change the Layout to <code>Default</code>.</p></li><li><p>In the <code>3d Viewport</code>, select the armature of the model.</p></li><li><p>From the <code>Info</code> header, select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Append</span></span></code>.</p></li><li><p>Navigate to, and select the <code>.blend</code> animation file you want to append.</p></li><li><p>From the folders list select the <code>Action</code> folder, followed by your action.</p></li><li><p>When ready, select the <b class="button">Append From Library</b> button to finalize your selection.</p></li><li><p>From the <code>Info</code> header, change your layout to <code>Animation</code>.</p></li><li><p>In the <code>Dope Sheet Editor</code>, change the context to <code>Action Editor</code> if not already selected.</p></li><li><p>Click the <b class="button">Action to be linked</b> button and select your append action from the list.</p></li><li><p>Select the <b class="button">F</b> button to save the action.</p></li><li><p>From the <code>Info</code> header, change the layout from <code>Animation</code> to the <code>NLA Editing</code> layout we created in the <a href="../../jme3/advanced/mixamo.html#creating-the-rigged-animation-file">Creating The Rigged Animation File</a> section of this tutorial. You will see your append <code>Action</code> at the top of the list.</p></li><li><p>From the <code>NLA Editor</code> header, select <code><span class="menuseq"><span class="menu">Add</span>&#160;&#9656; <span class="menuitem">Add Tracks</span></span></code>. A new track has now been added to the top of the list.</p></li><li><p>Click the <b class="button">Double Down Arrow</b> button next to the <code>Action</code> to push it down into the stack.</p></li><li><p><b class="button">LMB</b> select the strip to make it the only strip selected.</p></li><li><p><b class="button">LMB</b> drag the selected strip to the right until there is at least a 4 keyframe gap between the furthest strip to the right in the list and the append strip you are dragging.</p><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>When the strip is in drag mode it will be purple. While in drag mode you do not need to keep the <b class="button">LMB</b> pressed.</p></div></td></tr></table></div></li><li><p>When you are satisfied with the position, <b class="button">LMB</b> click the strip to finalize your selection. Your append strip should now be the furthest strip to the right in the list.</p><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You can use the mouse scroll wheel to shrink or expand the strip window to bring all strips into the view.</p></div>
  39. <div class="paragraph"><p>You can drag the slider, at the bottom of the strip window, to the right or left to position the strips against the side of the window.</p></div></td></tr></table></div></li><li><p>With the mouse inside the strip window, press the <kbd>N</kbd> key to open the properties window.</p></li><li><p>In the <code>Active Strip</code> panel, under <code>Strip Extents</code>, you will see the <code>End Frame</code> number. In the <code>Timeline</code>, set <code>End:</code> to this number. Every time you append an <code>Action</code> you must increase this number to equal the total length off all strips combined, including the gaps between strips.</p></li><li><p>Save your file.</p></li></ol></div>
  40. <div class="paragraph"><p>Your file is now ready to <a href="../../jme3/advanced/mixamo.html#ogre-export">export</a>.</p></div>
  41. <div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>Prior to export:</p></div>
  42. <div class="paragraph"><p>In the <code>NLA Editor</code> make sure no <code>Actions</code> are waiting to be pushed down into the stack. If there are, it must be removed or made into a strip prior to export.</p></div>
  43. <div class="paragraph"><p>In the <code>Dope Sheet Editor</code> make sure no <code>Actions</code> are selected in the <code>Action Editor</code> context. If one is selected, it will be sitting at the top of the <code>NLA Editor</code> stack.</p></div>
  44. <div class="paragraph"><p>An <code>Action</code> that has not been pushed down into the <code>NLA Stack</code> will block your <code>NLA Strip</code> from playing.</p></div></td></tr></table></div>
  45. <div class="paragraph"><p>Your NLA strip should look something like this:</p></div>
  46. <div class="imageblock"><div class="content"><img src="../../jme3/advanced/MixamoNLA.png" alt="MixamoNLA.png" width="" height=""></div></div></div></div>
  47. <div class="sect1"><h2 id="notes">Notes</h2><div class="sectionbody"><div class="ulist"><ul><li><p>You can see a similar video demonstration of this entire process in <a href="../../jme3.html#animations-and-scenes">Animations And Scenes</a> under the CadNav → Mixamo → JME Workflow heading.</p></li><li><p>See <a href="../../jme3/beginner/hello_animation.html">Hello Animation</a> and <a href="../../jme3/advanced/animation.html">Animation in JME3</a> to learn how to use your animated model.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2019-12-20 23:30:51 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
  48. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  49. indexName: 'jmonkeyengine',
  50. inputSelector: '#doc-search',
  51. debug: false // Set debug to true if you want to inspect the dropdown
  52. });</script></body></html>