GameVsJam/3d Prototyp/Assets/UMotionEditor/Manual/ExportingAnimationsFAQ.html

328 lines
19 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="shortcut icon" type="image/png" href="styles/UMotionFavicon.png" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UMotion Manual - Exporting Animations FAQ</title>
<link rel="stylesheet" type="text/css" href="styles/theme_styles.css" media="screen">
<link rel="stylesheet" type="text/css" href="styles/treeview_styles.css" media="screen">
<link rel="stylesheet" type="text/css" href="styles/element_styles.css" media="screen">
</head>
<body>
<div class="header">
<div class="headerLogo">
<img src="styles/UMotionLogoHeader.png"></img>
</div>
<div class="headerBlueRight">
<a href="https://www.soxware.com" class="headerLink">soxware.com</a>
</div>
</div>
<div class="versionHeader">
<p class="versionText">Version: <b>1.29p03</b> </p>
</div>
<div class="leftContent">
<div class="leftContentInner">
<div class="leftContentHeadline">
UMotion Manual
</div>
<!-- Tree View -->
<ol class="tree">
<li class="file"><a href="UMotionManual.html">UMotion Manual</a></li>
<li class="file"><a href="Introduction.html">Introduction & Tips</a></li>
<li class="file"><a href="GettingStarted.html">Getting Started</a></li>
<li>
<label for="VideoTutorials"><a href="VideoTutorials.html" class="treeFolderLink">Video Tutorials</a></label> <input type="checkbox" id="VideoTutorials" />
<ol>
<li>
<label for="GeneralTutorials"><a href="GeneralTutorials.html" class="treeFolderLink">General</a></label> <input type="checkbox" id="GeneralTutorials" />
<ol>
<li class="file"><a href="QuickStart.html">Quick Start Tutorial</a></li>
<li class="file"><a href="Lesson1.html">1) Installation & First Steps</a></li>
<li class="file"><a href="Lesson2.html">2) Pose Editing</a></li>
<li class="file"><a href="Lesson3.html">3) Clip Editor</a></li>
<li class="file"><a href="Lesson4.html">4) Curves & Rotation Modes</a></li>
<li class="file"><a href="Lesson5.html">5) Config Mode</a></li>
<li class="file"><a href="Lesson6.html">6) Export Animations</a></li>
<li class="file"><a href="Lesson7.html">7) Root Motion</a></li>
<li class="file"><a href="Lesson8.html">8) Animation Events</a></li>
<li class="file"><a href="Lesson9.html">9) Pose Mirroring</a></li>
</ol>
</li>
<li>
<label for="ProfessionalExclusive"><a href="ProfessionalExclusive.html" class="treeFolderLink">UMotion Pro</a></label> <input type="checkbox" id="ProfessionalExclusive" />
<ol>
<li class="file"><a href="ProLesson1.html">1) Importing Animations</a></li>
<li class="file"><a href="ProLesson2.html">2) Inverse Kinematics</a></li>
<li class="file"><a href="ProLesson3.html">3) Child-Of Constraint</a></li>
<li class="file"><a href="ProLesson4.html">4) Custom Properties</a></li>
<li class="file"><a href="ProLesson5.html">5) IK Pinning</a></li>
</ol>
</li>
<li>
<label for="InPractice"><a href="InPractice.html" class="treeFolderLink">In Practice</a></label> <input type="checkbox" id="InPractice" />
<ol>
<li class="file"><a href="InPractice1.html">1) Our First Animation</a></li>
<li class="file"><a href="InPractice2.html">2) Editing Animations</a></li>
<li class="file"><a href="InPractice3.html">3) Customizing an animation for a RPG</a></li>
<li class="file"><a href="InPractice4.html">4) Unity Timeline & Weighted Tangents</a></li>
</ol>
</li>
<li>
<label for="Jayanam"><a href="Jayanam.html" class="treeFolderLink">Jayanam</a></label> <input type="checkbox" id="Jayanam" />
<ol>
<li class="file"><a href="Jayanam1.html">UMotion Tutorial</a></li>
</ol>
</li>
</ol>
</li>
<li class="file"><a href="HowToCreateBetterAnimations.html">How to create better animations</a></li>
<li>
<label for="ClipEditor"><a href="ClipEditor.html" class="treeFolderLink">Clip Editor</a></label> <input type="checkbox" id="ClipEditor" />
<ol>
<li>
<label for="MenuBar"><a href="MenuBar.html" class="treeFolderLink">Menu Bar</a></label> <input type="checkbox" id="MenuBar" />
<ol>
<li class="file"><a href="MenuBarFile.html">File</a></li>
<li class="file"><a href="MenuBarEdit.html">Edit</a></li>
<li class="file"><a href="MenuBarHelp.html">Help</a></li>
</ol>
</li>
<li class="file"><a href="Preferences.html">Preferences</a></li>
<li class="file"><a href="ImportExport.html">Import / Export</a></li>
<li class="file"><a href="FKtoIKConversion.html">FK to IK Conversion</a></li>
<li>
<label for="MainNavigation"><a href="MainNavigation.html" class="treeFolderLink">Main Navigation</a></label> <input type="checkbox" id="MainNavigation" />
<ol>
<li class="file"><a href="ProjectSettings.html">Project Settings</a></li>
<li class="file"><a href="ClipSettings.html">Clip Settings</a></li>
</ol>
</li>
<li class="file"><a href="AnimatedPropertiesList.html">Animated Properties List</a></li>
<li class="file"><a href="RootMotion.html">Root Motion</a></li>
<li class="file"><a href="RotationModes.html">Rotation Modes</a></li>
<li>
<label for="DopesheetCurves"><a href="DopesheetCurves.html" class="treeFolderLink">Dopesheet / Curves View</a></label> <input type="checkbox" id="DopesheetCurves" />
<ol>
<li class="file"><a href="Dopesheet.html">Dopesheet</a></li>
<li class="file"><a href="Curves.html">Curves View</a></li>
</ol>
</li>
<li class="file"><a href="Playback.html">Playback Navigation</a></li>
<li class="file"><a href="Layers.html">Layers</a></li>
</ol>
</li>
<li>
<label for="PoseEditor"><a href="PoseEditor.html" class="treeFolderLink">Pose Editor</a></label> <input type="checkbox" id="PoseEditor" />
<ol>
<li>
<label for="ConfigMode"><a href="ConfigMode.html" class="treeFolderLink">Config Mode</a></label> <input type="checkbox" id="ConfigMode" />
<ol>
<li>
<label for="RigHierarchy"><a href="RigHierarchy.html" class="treeFolderLink">Rig Hierarchy</a></label> <input type="checkbox" id="RigHierarchy" />
<ol>
<li class="file"><a href="IKSetupWizard.html">IK Setup Wizard</a></li>
<li class="file"><a href="MirrorMapping.html">Mirror Mapping</a></li>
</ol>
</li>
<li class="file"><a href="Configuration.html">Configuration</a></li>
<li class="file"><a href="ConfigDisplay.html">Display</a></li>
</ol>
</li>
<li>
<label for="PoseMode"><a href="PoseMode.html" class="treeFolderLink">Pose Mode</a></label> <input type="checkbox" id="PoseMode" />
<ol>
<li class="file"><a href="Tools.html">Tools</a></li>
<li class="file"><a href="Channels.html">Channels</a></li>
<li class="file"><a href="Selection.html">Selection</a></li>
<li class="file"><a href="PoseDisplay.html">Display</a></li>
<li class="file"><a href="Animation.html">Animation</a></li>
</ol>
</li>
<li>
<label for="Constraints"><a href="Constraints.html" class="treeFolderLink">Constraint System</a></label> <input type="checkbox" id="Constraints" />
<ol>
<li class="file"><a href="InverseKinematics.html">Inverse Kinematics</a></li>
<li class="file"><a href="ChildOf.html">Child-Of</a></li>
<li class="file"><a href="CustomProperty.html">Custom Property</a></li>
</ol>
</li>
<li class="file"><a href="Options.html">Options</a></li>
<li class="file"><a href="ToolAssistant.html">Tool Assistant</a></li>
</ol>
</li>
<li class="file"><a href="EditInPlayMode.html">Edit In Play Mode</a></li>
<li class="file"><a href="UnityTimelineIntegration.html">Unity Timeline Integration</a></li>
<li class="file"><a href="UMotionAPI.html">UMotion API</a></li>
<li class="file"><a href="ExportingAnimationsFAQ.html"><b><u>Exporting Animations FAQ</u></b></a></li>
<li class="file"><a href="Support.html">Support / FAQ</a></li>
<li class="file"><a href="ReleaseNotes.html">Release Notes</a></li>
<li class="file"><a href="KnownIssues.html">Known Issues</a></li>
<li class="file"><a href="Credits.html">Credits</a></li>
</ol>
</div>
</div>
<div class="mainContent">
<div class="mainContentInner">
<h1 class="headline1" id="">Exporting Animations FAQ</h1><p class="textBlock">Unity's animation system is a rather complex system that faces you with lots of configuration possibilities. Wrong settings/configurations can make animations exported from UMotion look differently to how they looked inside UMotion or even stop them from playing correctly. Check out the following most common issues and how to fix them:</p><ul class="listMain">
<li class="listItem"><span class="listText"><a href="#fbxHumanoidIssue" class="link">Exported humanoid *.fbx looks wrong</a></span></li>
<li class="listItem"><span class="listText"><a href="#rootMotionIssues" class="link">Issues with root motion</a></span></li>
<li class="listItem"><span class="listText"><a href="#humanoidDifferences" class="link">Differences/errors in humanoid animations</a></span></li>
<li class="listItem"><span class="listText"><a href="#fbxJitter" class="link">Exported *.fbx has noticable jitter</a></span></li>
<li class="listItem"><span class="listText"><a href="#ikPinningJitter" class="link">IK pinned hand/foot jitter's in the exported animation</a></span></li>
<li class="listItem"><span class="listText"><a href="#animSize" class="link">The exported *.anim file size is quite huge</a></span></li>
</ul><p class="textBlock">Please contact the <a href="support.html" class="link">Support</a> if none of the solutions work for you.</p><h2 class="headline2" id="fbxHumanoidIssue">Exported humanoid *.fbx looks wrong</h2><p class="textBlock">This usually happens when you exported an animation to *.fbx (e.g. the "IKPullupAnimation" animation from the examples) and configured the exported animation to humanoid. When playing the animation, it looks different to the original animation:</p><img src="images/ExportFbxCommonIssue.png" class="image"></img>
<p class="imageText">Exporting "IKPullupAnimation" to *.fbx</p><p class="textBlock">This happens when the humanoid avatar isn't configured correctly. There are several solutions:</p><ul class="listMain">
<li class="listItem"><span class="listText">
Use the <b>avatar of the original character</b>:
</br><img src="images/ExportFbxIssueCopyAvatar.png" class="image"></img>
<p class="imageText">Inspector of the exported *.fbx</p>
Depending on the original character's *.fbx this solution might not work (please choose a different one).
</span></li>
<li class="listItem"><span class="listText">
Use the <b>Update Existing</b> mode to export your animations into the character's original *.fbx (instead of exporting into separate *.fbx files). This will re-use the characters avatar. See <a href="ProjectSettings.html" class="link">Project Settings</a> to learn more.
</br>Don't use this solution if you extended your character with other models (e.g. weapons, equipment).
</span></li>
<li class="listItem"><span class="listText">
Use <b>generic</b> instead of humanoid if you need 100% accurate results. Learn more about humanoids shortcomings below: <a href="#humanoidDifferences" class="link">Differences/errors in humanoid animations</a>
</span></li>
<li class="listItem"><span class="listText">
You can also <b>manually correct the avatar</b> configuration of your exported *.fbx files. This can introduce some small errors (depending on how well the T-Pose is configured, more on that later). Choose "Create From This Model" for the "Avatar Definition" setting. Click on Apply. Then click on "Configure" to open Unity's avatar configuration editor.
</br><img src="images/ExportFbxIssueConfigure.png" class="image"></img>
<p class="imageText">Inspector of the exported *.fbx</p>
Make sure that all bones are mapped correctly and that your character is in a nice T-Pose.
</br><img src="images/ExportFbxIssueAvatarConfiguration.png" class="image"></img>
<p class="imageText">Unity's Avatar Editor</p>
Click on "Pose --&gt Enforce T-Pose" to automatically bring the character into T-Pose. Manually check if the character really is in a nice T-Pose:
<ul class="listMain">
<li class="listItem"><span class="listText">The arms must be fully stretched and held horizontally (T-Shape)</span></li>
<li class="listItem"><span class="listText">The back of the hands should be pointing upwards, fingers should be stretched</span></li>
<li class="listItem"><span class="listText">The feet must be fully stretched and the feet pointing straight forward</span></li>
</ul>
</br>You can use the rotate tool to manually correct the T-Pose. Once finished, click on "Apply" and on "Done". Now play the animation again. If there are still some errors, make sure to further improve your T-Pose.
</br></br>
<b>Tip:</b> Export all your animation clips into the same *.fbx file to avoid configuring an avatar for reach animation clip (see <a href="ProjectSettings.html" class="link">Project Settings</a>).
</span></li>
</ul><h2 class="headline2" id="rootMotionIssues">Issues with root motion</h2><p class="textBlock">When dealing with root motion, various issues can occur. Make sure to take a look at the root motion settings of the exported *.anim or *.fbx animation:</p><img src="images/ExportClipInspector.png" class="image"></img>
<p class="imageText">Settings in a *.anim Inspector</p><p class="textBlock">A description of these settings can be found here: <a href="https://docs.unity3d.com/Manual/class-AnimationClip.html#ClipProperties" class="link">Unity Manual - Clip Properties</a></p><p class="textBlock"><b>Attention:</b> The loop flag in the *.anim settings is overwritten by UMotion's "loop" setting (made in the <a href="ClipSettings.html" class="link">Clip Settings</a>).</p><p class="textBlock">When there is some unwanted root motion, make sure that the keys at the first and last frame of your animation's bone marked as "RM" (in the Animated Property List) has the same values. You can enable "bake into pose" in the Inspector of the exported clip (see image above) if you want to avoid that a root offset contributes to the root motion.</p><p class="textBlock">You can globally enable/disable root motion in your Animator Component ("Apply Root Motion").</p><h2 class="headline2" id="humanoidDifferences">Differences/errors in humanoid animations</h2><p class="textBlock">Humanoid is Unity's approach to allow sharing animations between multiple characters. This is how it compares to "generic" and "legacy":</p><table class="themeTable">
<tr class="themeTableRow">
<th class="themeTableHeader">Humanoid</th>
<th class="themeTableHeader">Generic</th>
<th class="themeTableHeader">Legacy</th>
</tr>
<tr class="themeTableRow">
<td class="themeTableCell">
Animation Re-Targeting
</br>(= play animation on other humanoid characters)
</td>
<td class="themeTableCell">
Animation plays only on characters with same bone hierarchy
</td>
<td class="themeTableCell">
Animation plays only on characters with same bone hierarchy
</td>
</tr>
<tr class="themeTableRow">
<td class="themeTableCell">
Reduced animation quality
</td>
<td class="themeTableCell">
No quality loss
</td>
<td class="themeTableCell">
No quality loss
</td>
</tr>
<tr class="themeTableRow">
<td class="themeTableCell">
Re-targeting and mecanim state-machine consumes additional CPU power
</td>
<td class="themeTableCell">
Mecanim state-machine adds additional CPU load
</td>
<td class="themeTableCell">
Fastest CPU timing
</td>
</tr>
</table><p class="textBlock">
The humanoid animation system abstracts the animation data in such a way, that it can be applied to any correctly configured humanoid (avatar). This abstraction can lead to a visible reduction in animation quality (i.e. reduced degree of freedom on some bones, foot/hand sliding, etc.). Small differences have to be accepted when working with humanoid.
</p><p class="textBlock">
<b>Learn more about humanoid:</b> <a href="https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/" class="link">Unity Blog - Mecanim Humanoids</a>
</p><p class="textBlock">
Usually small errors are acceptable as they most probably won't be notiecable for players. But in cases you need 100% accuracy, use generic instead of humanoid. Consider using legacy in case you want to save some performance (e.g. on mobile). The <a href="http://bit.ly/2GsneLA" class="link">Animation Converter</a> can help you converting between the different animation formats.
</p><h2 class="headline2" id="fbxJitter">Exported *.fbx has noticable jitter</h2><p class="textBlock">Jitter/wiggle/stutter can be introduced by animation compression. Select the *.fbx and open the "Animation" tab in the "Inspector". Set "Anim. Compression" to "None" or play with the "Position/Rotation/Scale Error" values.</p><h2 class="headline2" id="ikPinningJitter">IK pinned hand/foot jitter's in the exported animation</h2><p class="textBlock">Fast paced animations that use IK pinning can show some wiggle/jitter on the pinned hand/foot. If you go through the exported animation frame by frame using the frame cursor in Unity's Animation Window you will notice that the animation was exported correctly and the hand/foot is perfectly stable. But as soon as you click on the play button (in the Animation Window), you can notice the jitter of the hand/feet again. This problem is introduced by the interpolation that is happening between key frames and is more noticable the more change there is between two keys. Increasing the framerate of the animation in the <a href="ClipSettings.html" class="link">UMotion Clip Settings</a> to something like 120 or even 180 fps (then exporting the animation clip again) will reduce the amount of interpolation error.</p><h2 class="headline2" id="animSize">The exported *.anim file size is quite huge</h2><p class="textBlock">Please take a look at <a href="https://support.soxware.com/en/communities/1/topics/350-umotion-multiplies-x9-my-animation-size-what-can-i-do#comment-397" class="link">this support answer</a> for a detailed answer.
</br></br>
<b>Long story short:</b> The size a *.anim file has in a built game, is displayed in its inspector.</p><img src="images/ExportClipSize.png" class="image"></img>
<p class="imageText">*.anim inspector shows clip size</p><p class="textBlock">The size it has on disk in your development environment is larger due to additional "editor only curves" and probably due to the animation being stored as text.</p>
<div class="mainContentFooter">
<p class="textBlock" style="float:left">Copyright © 2017 - 2021 Soxware Interactive ALL RIGHTS RESERVED</p>
<p class="textBlock" align="right"><a href="https://forum.unity.com/threads/new-umotion-animation-editor-released.490618/" class="link">Unity Forum Thread</a> | <a href="https://www.facebook.com/Soxware/" class="link">Facebook</a> | <a href="https://twitter.com/SoxwareInteract" class="link">Twitter</a> | <a href="https://www.youtube.com/channel/UCCuE6nI5gHvUQjx0lo6Twtg" class="link">Youtube</a></p>
</div>
</div>
</div>
</body>
</html>