{"id":517,"date":"2015-10-13T08:34:05","date_gmt":"2015-10-13T08:34:05","guid":{"rendered":"http:\/\/avastar.online\/?page_id=517"},"modified":"2022-02-03T21:08:27","modified_gmt":"2022-02-03T21:08:27","slug":"motion-transfer","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/300\/help\/n-panel\/retarget\/motion-transfer\/","title":{"rendered":"Motion Transfer"},"content":{"rendered":"<div class=\"row-fluid\">\n<div class=\"rhcol span10\">\n<h2><image src=\"\/avastar\/300\/wp-content\/uploads\/2022\/03\/approve_logo_300.png\" style=\"width:120px;vertical-align:middle;margin-left:0px;margin-right:10px;\"><\/image> Motion Transfer Tools<\/h2>\n<\/div>\n<div class=\"rhcol span2\">\n<a class=\"mamap\" href=\"\/wp-content\/uploads\/2021\/01\/map-animation-retarget.png\" target=\"_blank\"><img decoding=\"async\" alt=\"\" src=\"\/wp-content\/uploads\/2021\/01\/map-animation-retarget.png\" \/><\/a>\n<\/div>\n<\/div>\n<p><iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/XrFW9zkmbQE\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \"><strong>keywords<\/strong><\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<ul>\n<li>retarget tool<\/li>\n<li>rig transfer, motion transfer<\/li>\n<li>animation transfer, animation copy<\/li>\n<li>fbx, dae, bvh<\/li>\n<\/ul>\n<\/div><\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span12\">The Motion Transfer Tools are designed to transfer the Animation of an imported animation file (BVH, FBX, ollada, &#8230;)\u00a0 to an Avastar rig. So you will typically first create an Avastar character (the Target), then import the Animation, map it to Avastar, and finally transfer the Motion to the Avastar Timeline.<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span9\">\n<h4>In a Nutshell<\/h4>\n<\/div>\n<div class=\"rhcol span3\"><a class=\"mamap\" href=\"\/wp-content\/uploads\/2021\/01\/map-animation-retarget.png\" target=\"_blank\"><img decoding=\"async\" alt=\"\" src=\"\/wp-content\/uploads\/2021\/01\/map-animation-retarget.png\" \/><\/a><\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<ul>\n<li>Create a new Avastar Character (or use an existing one).<\/li>\n<li>Import your animation file.<\/li>\n<li>Map the corresponding Bones.<\/li>\n<li>Transfer the Animation.<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">You find the entire import functionality in the Properties Sidebar, Retarget Tab, in the <em>Retarget Transfer panel<\/em> and the <em>Retarget Mapping panel<\/em>.<\/div>\n<\/div>\n<h4>Loading an animation file<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Blender supports the import of some animation formats out of the Box.<br \/>\nYou find the importers in the Top menu at:<\/p>\n<pre>File -&gt; Import -&gt; Motion Capture (.bvh)\r\nFile -&gt; Import -&gt; FBX (.fbx)\r\nFile -&gt; Import -&gt; Collada(Default) (.dae)\r\n<\/pre>\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span><\/strong> The SL default animations are all available as BVH files from the SL-Wiki:<\/p>\n<a href=\"http:\/\/static-secondlife-com.s3.amazonaws.com\/downloads\/avatar\/bvh_files.zip\" class=\"symple-button default teal   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">Download SL internal Animations<\/span><\/a>\n<p>We use the avatar_dance8.bvh for this document<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_6952\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1208.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6952\" class=\"wp-image-6952 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1208.png\" alt=\"\" width=\"360\" height=\"427\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1208.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1208-253x300.png 253w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/a><p id=\"caption-attachment-6952\" class=\"wp-caption-text\">The BVH Import options are at the upper right corner of the Import File Browser<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><span style=\"color: #3366ff;\"><strong>Note for BVH:<\/strong><\/span> You can set &#8211; but you do not strictly have to set &#8211; the Scale factor to match the imported Armature and the Avastar armature. However if you do not fix the scaling during import then you can easily end up in a situation like in the image above.<\/p>\n<p><span style=\"color: #3366ff;\"><strong>Tip: <\/strong><\/span>If you import an animation that was made for Secondlife then its unit of measurement is Inches. In that case you can use the factor 0.0254 to rescale the figure to Blender units when you import the BVH file.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_6953\" style=\"width: 370px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1209.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6953\" class=\"wp-image-6953 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1209.png\" alt=\"\" width=\"360\" height=\"436\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1209.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1209-248x300.png 248w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/a><p id=\"caption-attachment-6953\" class=\"wp-caption-text\">BVH File imported with wrong scaling<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><strong><span style=\"color: #3366ff;\">Note for FBX:<\/span> <\/strong>Unfortunately there are a few different versions of FBX\u00a0 and Blender does not support all of them equally well. We found that animation files in FBX 7.4 format work best.<\/p>\n<p><strong>Tip<\/strong>: Always enable the import option <em>Automatic Bone Orientation<\/em><\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_43610\" style=\"width: 370px\" class=\"wp-caption alignleft\"><img decoding=\"async\" aria-describedby=\"caption-attachment-43610\" class=\"wp-image-43610 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-001.png\" alt=\"\" width=\"360\" height=\"436\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-001.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-001-248x300.png 248w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><p id=\"caption-attachment-43610\" class=\"wp-caption-text\">FBX: Automatic Bone orientation must be enabled<\/p><\/div>\n<\/div>\n<\/div>\n<h4>Quick fix for Scaling mismatch<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">Even if the imported Scaling matches roughly to the Avastar size, in most cases the match is not perfect. We have added the <em><span style=\"color: #ff6600;\">Match Scales<\/span> <\/em>function at the bottom of the Motion Transfer Panel (see image) The tool is displayed after you have imported the animation file.<\/div>\n<div class=\"rhcol span5\"><img decoding=\"async\" class=\"alignleft wp-image-43611 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-002.png\" alt=\"\" width=\"360\" height=\"436\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-002.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-002-248x300.png 248w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The <em>Match Scales<\/em> function rescales the imported Animation rig in Object space to match the Avastar rig&#8217;s Skeleton. However, we get the scaling value only from the Z-Axis and apply the same scale to the X- and Y- axes as well. In most cases the result is good enough to work with. But you always can manually adjust the armature scale in Object mode.<\/p>\n<p><strong><span style=\"color: #3366ff;\">Tip:<\/span><\/strong> Most animations use translation components only for the Root bone (typically the Pelvis) All other bones are typically only rotated relative to each other and never moved. In this case when your imported animation only uses Rotation components, then a strict bone to bone match is less important.<\/p>\n<p><strong><span style=\"color: #993300;\">Important:<\/span><\/strong> If you need to edit the rigs to get better results, then always(!) edit only the Avastar Rig. Do your editing before you do the motion transfer! Editing the imported rig will destroy your animation.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1211.png\"><img decoding=\"async\" class=\"alignleft wp-image-6956 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1211.png\" alt=\"\" width=\"360\" height=\"474\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1211.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1211-228x300.png 228w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span><\/strong> If you take a closer look then you sometimes see the Avastar and the imported animation look in opposite directions. This is nothing to worry about. For some reason many of the internal SL animations have a starting pose that is rotated to look backwards. We have no clue why that is, but it is not of any harm.<\/p>\n<p>Note: The retarget tools are not fully fail proof and your retarget results depend on the comparability of the Avastar rig with the imported rig. You always need to inspect your results carefully for bad movement and sometimes you need to do manual corrections. Please experiment to see what works best for you.<\/p>\n<h4 id=\"guess_bone_map\">Mapping bones<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When you import an animation file, then the used Bones can have arbitrary names. Also your animation Rig can have different bones than the target Rig. This issue can be solved by using a Bone Map.<\/p>\n<p>The Bone map is in the Retarget Mapping Panel and by default it is collapsed. You can expand the Map by clicking on the small white arrow left to the Mapping Table button.<\/p>\n<p>Note: When the button is shown in red, then you have no mapping defined yet.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><img decoding=\"async\" class=\"alignleft wp-image-43612 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-003.png\" alt=\"\" width=\"360\" height=\"436\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-003.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-003-248x300.png 248w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Once you open the Mapping table section, you will see 4 parts:<\/p>\n<ul>\n<li>A Panel for the most important Retarget Bone groups: This is a subset of the Rig Display Panel in the Avastar Main Tab and there is no substantial difference when you do your settings here or in the Avastar Rig Display Panel. It is just added for ease of use.<\/li>\n<li>The Interactive Bone Mapper (by default collapsed): Here you can map bones directly in the 3D Viewport. For Details, see further down<\/li>\n<li>The Automatic Mapping tool (Guess): Avastar has some built in knowledge about a few Rigs. If it recognizes a rig type, then it fills corresponding bone names into the bone map (see below). When the button is red then no bone has been mapped yet.<\/li>\n<li>The Mapping table: Contains pairs of bones that are connected.\n<ul>\n<li>Target Rig (left side of the list) refers to Avastar Bones<\/li>\n<li>Source Rig (Right side of the List) refers to bones in the imported animation rig<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43614 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-004.png\" alt=\"\" width=\"360\" height=\"506\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-004.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-004-213x300.png 213w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>In general you can type Bone names of the Source rig directly as text. This is a tedious task and you may need to do this only for fixing mapping errors. The automatic mapping tool an be of some help when your imported rig is an SL rig or a Carnegie Mellon Rig. Other rig types are currently not recognized.<\/p>\n<p>In our case Avastar can figure out that indeed we have an SL Rig in place. As soon as we hit the Automatic Mapping button, all formerly Red buttons in the Retarget Tab now turn into their default color.<\/p>\n<p>Now you can inspect the Mapping table and see which source bones are mapped to which Avastar bones. Now it is also time to verify that your mapping is correct and fix bones when the mapping is wrong.<\/p>\n<p>Tip: For the Extended Rig the map has 151 entries. You can control which of the entries are displayed by enabling\/disabling the Retarget Bone Groups (see above)<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43615 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-005.png\" alt=\"\" width=\"360\" height=\"506\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-005.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-005-213x300.png 213w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>In our case the guessing tool has identified the Animation Rig to be an SL\/OpenSim compatible rig, thus all available Bones are automatically assigned and we do not need to bother with that.<\/p>\n<p>Note: Some mappings are not filled, for example Tinker, FootLeft and FootRight (see image) are not assigned to any bone in the imported animation. We do not need to bother with that for now.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43616 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-006.png\" alt=\"\" width=\"360\" height=\"558\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-006.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-006-194x300.png 194w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h4>The Bone Picker<\/h4>\n<p>ok, you are not happy with what the guessing tool has fabricated for you? Maybe it did not recognize the Rig, or it made mistakes in the mapping, or it did not find any mapping at all&#8230; For this case we have added the bone picker that allows you to quickly fix or build the bone map manually:<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><em><span style=\"color: #ff6600;\">The Bone picker<\/span><\/em> lets you select one Source bones from the Animation Source rig and manually map it to a bone on the Target rig:<\/p>\n<ul>\n<li>Open the Animation source Rig in pose mode<\/li>\n<li>Select a bone in the Source Rig<\/li>\n<li>Click on the corresponding assign icon in the map (see image)<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1214.png\"><img decoding=\"async\" class=\"alignleft wp-image-6968 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1214.png\" alt=\"\" width=\"377\" height=\"408\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1214.png 377w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1214-277x300.png 277w\" sizes=\"(max-width: 377px) 100vw, 377px\" \/><\/a><\/div>\n<\/div>\n<p>Now the source bone is assigned to the corresponding target bone (In the example rThigh of the Animation Source is assigned to HipRight in the Avastar target)<\/p>\n<h4>The Range Mirror Copy<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><em id=\"copy_other_side\"><span style=\"color: #ff6600;\">The Range Mirror Copy<\/span><\/em> lets you copy the limbs. Thus you only need to assign one half of the bones, then use this tool to automatic fill the symmetric bones on the other side.<\/p>\n<ul>\n<li>Assign one side of your animation source Rig to the corresponding bones in the Avastar rig<\/li>\n<li>Click on <em><span style=\"color: #ff6600;\">Mirror Copy<\/span><\/em> to transfer the assignments to the other side of the Rigs.<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\"><img decoding=\"async\" class=\"alignleft wp-image-43619 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-009.png\" alt=\"\" width=\"360\" height=\"305\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-009.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-009-300x254.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/div>\n<\/div>\n<h4>The Clear Tool<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The <em><span style=\"color: #ff6600;\">Clear<\/span><\/em> Tool removes all associations in the Bone Map.<\/p>\n<p>You will use this function only when you want to reset your mapping completely and restart from the begin.<\/p>\n<p><span style=\"color: #3366ff;\"><strong>Note:<\/strong><\/span> As soon as you have called the Clear tool, the <em><span style=\"color: #ff6600;\">Guess<\/span><\/em> Button (see further up) becomes red again, indicating that no mapping is set.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p>C<img decoding=\"async\" class=\"alignleft wp-image-43618 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-008.png\" alt=\"\" width=\"360\" height=\"247\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-008.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-008-300x206.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h4>Pose tools<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>After you have setup the mapping as described above, we also need one time frame in which the Source animation and the target animation have the same pose (or at least a closely matching pose). This Reference Frame will then be used as guideline for the transformation tool.<\/p>\n<p><span style=\"color: #800080;\"><strong>Important:<\/strong><\/span> If both Rigs use the same or at least very similar restposes then you can simply enable the Use Restpose option. Then the Ref Frame option is greyed out and you do not need to create a reference frame.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><img decoding=\"async\" class=\"alignleft wp-image-43617 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-007.png\" alt=\"\" width=\"360\" height=\"327\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-007.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-007-300x273.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/div>\n<\/div>\n<h4>Notes on the Reference Frame<\/h4>\n<p>The Reference Frame is not required to be part of the transferred set of frames in the timeline. for example in most cases frame 0 in the timeline is not used by the imported Animation. So it could be used to create a matching pose.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Important: <\/span><\/strong>It is not required that the matching poses are Rest poses! The only requirement is that both poses match as tightly as possible to make sure the animation transfer is creating reasonable results. It is up to the user to decide how far you want to go. If you want precise match,m then you need to do precise adjustments in pose mode (which needs some time)<\/p>\n<h4 id=\"transfer_pose\">Transfer Pose<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>If one of the two following conditions is matched:<\/p>\n<ul>\n<li><strong><span style=\"color: #0000ff;\">Either<\/span><\/strong> the Animation and the Avastar use the same Restpose<br \/>\nThe <span style=\"color: #ff6600;\"><em>Use Restpose<\/em><\/span> option is enabled.<\/li>\n<li><strong><span style=\"color: #0000ff;\">Or<\/span><\/strong> the <em>Ref frame<\/em> contains the same Pose for the<br \/>\nAnimation Source Rig and the Avastar Target rig.<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43620 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-010.png\" alt=\"\" width=\"360\" height=\"327\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-010.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-010-300x273.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<p>Only then it is possible to reliably transfer single poses from the animation into the Avastar: In that case the Transfer Pose tool transfers the pose of the current selected\u00a0 frame on the timeline from the Source rig to the currently selected Bones of Avastar Rig. You can select whichever frame you want to copy.<\/p>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<div id=\"attachment_6978\" style=\"width: 600px\" class=\"wp-caption alignleft\"><a class=\"wp-caption-dd\" href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1219.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6978\" class=\"wp-image-6978 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1219.png\" alt=\"\" width=\"590\" height=\"376\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1219.png 590w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1219-300x191.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-6978\" class=\"wp-caption-text\">Timeline frame 18 before pose has been transferred<\/p><\/div>\n<\/div>\n<div class=\"rhcol span6\">\n<div id=\"attachment_6979\" style=\"width: 600px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1220.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6979\" class=\"wp-image-6979 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1220.png\" alt=\"\" width=\"590\" height=\"376\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1220.png 590w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2021\/01\/Image1220-300x191.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-6979\" class=\"wp-caption-text\">Timeline frame 18 after pose has been transferred<\/p><\/div>\n<\/div>\n<\/div>\n<h4>When the rig distorts&#8230;<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>It can happen that your target model distorts around the hips. In most cases this is caused by a wrong bone mapping. Normally you would map the Pelvis bone of the source to the COG Bone of the target, because they both serve about the same purpose.<\/p>\n<p>However, this does not work always (an explanation still needs to be found). But there seems to be a workaround&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43628 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-016.png\" alt=\"\" width=\"360\" height=\"576\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-016.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-016-188x300.png 188w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When you look into the Bone Map, then you find 3 closely related bones in the target rig: COG, Pelvis and Tinker<\/p>\n<p>Those bones are used for different purposes in the target rig, but they may need to use the same source bone for animation. So if you find the rig distorts like in the image above, then first try to add a second mapping from the source&#8217;s hip bone to the Target&#8217;s Tinker bone. This actually seems to be the only alternative to just mapping the COG bone. And as indicated above, there is currently no really good explanation for this. (suggestions are welcome)<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43629 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-017.png\" alt=\"\" width=\"360\" height=\"263\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-017.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-017-300x219.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h4 id=\"guess_bone_map\"><\/h4>\n<h4>Make Seamless animations (experimental)<\/h4>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p>This tool is used when you want to create a periodic Animation cycle. Lets assume your imported animation was not exactly created for looping. then this tool can be used to interpolate rotation changes and location changes such that the first frame and the last frame of the animation loop smoothly.<\/p>\n<p>The numbers define the timeline frame range over which the easing shall take place for Rot frames (rotation)and for Loc frames (translation)<\/p>\n<\/div>\n<div class=\"rhcol span6\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43621 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-011.png\" alt=\"\" width=\"360\" height=\"405\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-011.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-011-267x300.png 267w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h4>Simplify (experimental)<\/h4>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p>Simplify can be used to reduce the number of key frames used in the imported Animation. We provide 3 options here:<\/p>\n<ul>\n<li>No Simplification (default)<\/li>\n<li>Lowes Global<\/li>\n<li>Lowes Local<\/li>\n<\/ul>\n<\/div>\n<div class=\"span6 rhcol\"><strong><span style=\"color: #ff6600;\"><img decoding=\"async\" class=\"alignleft wp-image-43622 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-012.png\" alt=\"\" width=\"360\" height=\"272\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-012.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-012-300x227.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/span><\/strong><\/div>\n<\/div>\n<p><strong>Note: <\/strong>The Simplify feature makes only sense when your animation contains hundreds of key frames. This mostly happens when you import motion captured animations. Handle this feature with care.These simplification methods are described nicely by Eyuphan Bulut in a scientific paper about <a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.94.2261&amp;rep=rep1&amp;type=pdf\" target=\"_blank\" rel=\"noopener\">Key frame extraction from Motion data<\/a><\/p>\n<h4 id=\"transfer_motion\">Transfer Motion<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The Motion Transfer will transfer the motion stored in your imported animation timeline to the Avastar timeline. You can think of a Pose transfer (see above) that is calculated for every time frame. You have to ensure that all parameters as explained above are correctly set, otherwise your animation might become distorted.<\/p>\n<p><span style=\"color: #3366ff;\"><strong>Tip<\/strong><\/span>: Before you trnasfer a long animation, you can always test the transfer by moving to some important frames in the time line and then call the Transfer Pose operator (see above). If the pose transfer works nicely, then you can safely start the Motion transfer.<\/p>\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span><\/strong> The Motion Transfer Tool generates an Action that works with the Avastar Rig. This action can later be exported as an SL compatible animation either in BVH format or in ANIM format.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43623 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-013.png\" alt=\"\" width=\"360\" height=\"288\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-013.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-013-300x240.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<div id=\"delete_motion\"><\/div>\n<\/div>\n<\/div>\n<h3>Clean Timeline<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The little white cross is a nice helper tool too. Lets say you have found your animation is broken in the Avastar timeline, then you can wipe it out by clicking on this erase button.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43624 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-014.png\" alt=\"\" width=\"360\" height=\"288\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-014.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-014-300x240.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h3>Link Motion<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The Link Motion tool is an alternative method for transferring Animations from a Source rig to a Target rig. This operation uses bone constraints instead of transferring the animation frame by frame. The constraints are setup such that the Target rig (Avastar in our case) moves in synchronization with the source rig action.<\/p>\n<p>The nice thing about this feature is that it operates in almost no time. That means: The animation of the Avastar rig will start as soon as the tool is called independent of the length of the source animation!<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43625 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-015.png\" alt=\"\" width=\"360\" height=\"288\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-015.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-015-300x240.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span><\/strong> You will notice that the Avastar Action is plain empty, even when you select all pose bones of the Avastar rig (see image). This is so because the Avastar is only controlled by the movement of the action in the source rig!<\/p>\n<p>However, you actually can add your own extra poses and animation into the Avastar Action. the tool then combines your poses smoothly with the linked action of the source rig.<\/p>\n<p>You can use this feature for adding extra movement that is not contained in the original animation. Or much more important, you can interactively tweak your animation to achieve better results on the Avastar rig.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43630 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-018.png\" alt=\"\" width=\"360\" height=\"499\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-018.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-018-216x300.png 216w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><span style=\"color: #3366ff;\"><strong>Tip:<\/strong> <\/span>When you find that your target rig deforms or even distorts as soon as you enable the Motion Linker tool, then you first should check if your bone mapping can be optimized (see further up in the chapter about Motion transfer)<\/p>\n<p>You also may want to compare both rig\u00a0 rest poses for compatibility&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43631 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-019.png\" alt=\"\" width=\"360\" height=\"499\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-019.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-019-216x300.png 216w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Especially not exact matching rest poses can lead to mesh deformations as you can see on the upper body in the example image.<\/p>\n<p>The good news is: You can fix that rather easily:<\/p>\n<ul>\n<li>Open the target rig in Pose mode<\/li>\n<li>Select any frame on the timeline that is not used in the animation (frame 0)<\/li>\n<li>Then pose the bones on the target rig such that the distortions are eliminated<\/li>\n<li>finally add a keyframe for all modified bones of the target rig.<\/li>\n<\/ul>\n<p>These corrective keyframes are then used over the entire animation and effectively fix your distortions&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43632 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-020.png\" alt=\"\" width=\"360\" height=\"499\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-020.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-020-216x300.png 216w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>In this specific case the fix was to adjust the pose bones back into rest pose while the motion link is active (see image).<\/p>\n<p><strong><span style=\"color: #3366ff;\">Tip:<\/span> <\/strong>You actually can fix every pose bone in the target rig by adding such corrective reposing. You even can change the reposing over the animation should a correction work nicely for one part of the animation but not on another part. This way you have many options to fine adjust your animation transfer.<\/p>\n<p><strong><span style=\"color: #3366ff;\">Hint:<\/span><\/strong> Do not forget to key frame your adjustments, otherwise they will get lost as soon as you change the time frame<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43633 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-021.png\" alt=\"\" width=\"360\" height=\"499\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-021.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-021-216x300.png 216w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p><strong><span style=\"color: #3366ff;\">Tip:<\/span> <\/strong>The smart Auto Key tool is a huge time saver for key framing all modified bones in a time frame, even when they are currently not selected.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43634 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-022.png\" alt=\"\" width=\"360\" height=\"172\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-022.png 360w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-022-300x143.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<\/div>\n<\/div>\n<h3>And how to export the linked Animation ?<\/h3>\n<p>Just open the Animation exporter, Select the target rig (Avastar) and export the animation as usual. Avastar will automatically bake the entire animation into the exported file.<\/p>\n<h3>Can i also bake a linked animation into a new Action?<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Select the Target rig (Avastar), then see image<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><img decoding=\"async\" class=\"alignleft wp-image-43635 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-023.png\" alt=\"\" width=\"501\" height=\"294\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-023.png 501w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2022\/02\/Image-300-023-300x176.png 300w\" sizes=\"(max-width: 501px) 100vw, 501px\" \/><\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Motion Transfer Tools The Motion Transfer Tools are designed to transfer the Animation of an imported animation file (BVH, FBX, ollada, &#8230;)\u00a0 to an Avastar rig. So you will typically first create an Avastar character (the Target), then import the Animation, map it to Avastar, and finally transfer the Motion to the Avastar Timeline. In [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6952,"parent":3776,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-517","page","type-page","status-publish","has-post-thumbnail","hentry","category-help"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/comments?post=517"}],"version-history":[{"count":7,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/517\/revisions"}],"predecessor-version":[{"id":43637,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/517\/revisions\/43637"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/3776"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/media\/6952"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/media?parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/categories?post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/tags?post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}