Mate-Engine/Assets/UMotionEditor/Manual/ExportingAnimationsFAQ.html
shinyflvre 091ae7be88 Public Release X3.0b
# MateEngine X3.0

## Windows and Taskbar Sitting Rewrite

* Avatars sit more naturally on windows and the taskbar. Legs render in front while hair renders behind for a seamless look.
* Transitions between dragging and sitting are smoother.
* Alignment with windows and the taskbar improved. If a model looks off adjust **Y Offset** in settings. Some models may need minor manual tweaks due to different bone rigs.
* You can give headpats while the avatar sits. The avatar closes its eyes and shows sparkling particles. More headpat animations will be added later.
* The avatar no longer jumps off the taskbar when the Windows Start Menu or Search opens.
* You must hold the avatar for at least one second before it will sit to prevent accidental sits during fast moves.

## Feed System (Alpha)

* Avatars can drink. Press the middle mouse button to open the Food Radial menu. Spawn smoothies and bring them to the avatar to feed. This is an early access feature.
* When Spawning a Smoothie it will always spawn a Random smoothie! Keep in mind this feature is new and not perfect but i think it is a nice to have!

## Drag Smoothing

* Dragging the avatar feels smoother and more stable.
* A light smoothing effect was added to make dragging natural without noticeable delay.

## Taskbar Sitting Changes

* The circle menu is disabled while the avatar sits on the taskbar, showing only **Jump Off**.
* This prevents visual overlap from other UI while sitting.
* Moving the menu up while sitting increases cost, so it remains off for taskbar sitting but works normally on window sitting.

## Animation Changes

* Minor rotation adjustments to dragging animations.
* Improved transition timing for intimate animation for smoother flow.

## Minecraft Integration

MateEngine reacts to Minecraft events in real time. The avatar comments on gameplay, warns about danger, and celebrates victories.

### How it works

* Install the **MateSignal Forge mod** in Minecraft and run **MateEngine** on the same device or local network.
* MateSignal forwards in-game events to MateEngine so the avatar can display messages or play animations.
* Intended for singleplayer and private multiplayer use. Avoid competitive or official servers where live alerts could be an unfair advantage.

### Examples of reactions

* Day start: cheerful wake-up
* Night start: reminder to stay safe
* Nearby mobs: instant warnings for creepers, zombies, etc.
* Low health or hunger: worried or encouraging lines
* Crafting: excited comments
* Weather: reactions when rain starts
* Death: sad or comforting messages
* Biome discovery: happy or curious reactions
* Eating: cheering during meals
* Killing mobs: victory reactions

### Requirements

* Minecraft 1.21.10
* Forge Mod Loader
* MateSignal installed and integration enabled in MateEngine

## Dance Player Update

* Added **Lock Mode (Experimental)**. Enables camera tracking for dances that move the avatar far left or right so the window follows their motion.

## Hand Tracking Changes

* Hand tracking is more accurate to the mouse position.
* Reduced activation zone to prevent unwanted tracking on smaller avatars.

## Buy Option

* Added a buy button to the Minecraft Integration and Steam DLC categories. These buttons appear when running the free GitHub build.

## Bug Fixes

* Avatars no longer attach to windows or the taskbar while custom dances are active.
* Fixed avatar disappearing after sitting on minimized windows.
* Fixed incorrect positioning when a window closes.
* Fixed teleport when a window is maximized.

## Internal Changes

* Removed unused code to reduce missing script warnings.
* General cleanup and small performance adjustments.
2025-11-01 10:12:19 +01:00

327 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.29p04</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>