262 lines
13 KiB
HTML
262 lines
13 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 - Rotation Modes</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" checked 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"><b><u>Rotation Modes</u></b></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">Exporting Animations FAQ</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="">Rotation Modes</h1><p class="textBlock">There are two common ways on how to deal with rotations in 3D engines:</p><ul class="listMain">
|
|
<li class="listItem"><span class="listText">Euler Angles</span></li>
|
|
<li class="listItem"><span class="listText">Quaternions</span></li>
|
|
</ul><p class="textBlock">If you don't know the difference or always wondered what's behind the miracle of Quaternions, then take a look at the following video:</p><iframe width="560" height="315" src="https://www.youtube.com/embed/4mXL751ko0w?ecver=1" frameborder="0" allowfullscreen></iframe>
|
|
<p class="imageText">Euler Angels and Quaternions explained by Sutrabla</p><h2 class="headline2" id="EulerInterpolation">Euler Interpolation</h2><p class="textBlock">In this mode all rotation keys are stored as Euler angles. Euler angles define the orientation of a joint/transform by using 3 values (x, y and z) represented in degrees. The angles represent a rotation z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis (in that order).</p><ul class="listMain">
|
|
<li class="listItem"><span class="listText">
|
|
Euler angles are very descriptive, easy to understand and to edit. The curves of Euler angles can be edited directly in the Curves window providing full control over the way rotations behave between two key frames.
|
|
</span></li>
|
|
<li class="listItem"><span class="listText">
|
|
The downside of Euler angles is, that they can suffer from a mathematical problem called gimbal lock. The following video explains gimbal lock:
|
|
</br>
|
|
</br><iframe width="560" height="315" src="https://www.youtube.com/embed/zc8b2Jo7mno?ecver=1" frameborder="0" allowfullscreen></iframe>
|
|
<p class="imageText">"Euler (gimbal lock) Explained" - by GuerrillaCG</p>
|
|
</span></li>
|
|
</ul><h2 class="headline2" id="QuaternionInterpolation">Quaternion Interpolation</h2><p class="textBlock">In this mode all rotation keys are stored as quaternion values. Quaternions represent the orientation of a joint/transform by using 4 values (x, y, z and w).</p><ul class="listMain">
|
|
<li class="listItem"><span class="listText">Quaternions don't suffer from gimbal lock. They are very robust and always interpolate as expected.</span></li>
|
|
<li class="listItem"><span class="listText">They are based on complex numbers and are not easy to understand intuitively that's why UMotion doesn't allow editing Quaternion curves. Thus it is not possible to edit the way rotations interpolate between two key frames.</span></li>
|
|
</ul><h2 class="headline2" id="Progressive">Progressive Quaternion Interpolation</h2><p class="textBlock">This mode also uses quaternion values but it introduces the <b>Progression Curve</b>. The Progression Curve is representing the shortest rotation between two key frames in degrees. It can be used to edit the way a rotation interpolates between two key frames.</p><p class="textBlock">The combination of the robustness of quaternions and the flexibility of being able to modify the interpolation curve makes it to the default rotation mode used in UMotion.</p><h3 class="headline3" id="">The Progression Curve has the following characteristics:</h3><ul class="listMain">
|
|
<li class="listItem"><span class="listText">As the Progression Curve displays the absolute delta rotation between two keys it always ascends over time.</span></li>
|
|
<li class="listItem"><span class="listText">In this rotation mode neither the three dimensional rotation path between two keys, nor the rotation of the keys itself can be manipulated in the Curves View. The rotations will always take the shortest path between two keys.</span></li>
|
|
<li class="listItem"><span class="listText">With the Progression Curve the speed of the rotation can be adjusted. This makes it possible to e.g. smoothly ease-in and ease-out the rotation between two keys.</span></li>
|
|
<li class="listItem"><span class="listText">To manipulate the rotation of a key the rotation tool in the Pose Editor needs to be used.</span></li>
|
|
<li class="listItem"><span class="listText">To manipulate the three dimensional path of the rotation adding additional keys usually gives satisfying results.</span></li>
|
|
<li class="listItem"><span class="listText">If the Progression Curve over- or undershoots so will do the resulting rotation. It will over- or undershoot the keyed rotation (always staying at the same rotation path).</span></li>
|
|
<li class="listItem"><span class="listText">If there is no change between two keys the Progression Curve is flat. Flat Progression Curves can't be edited.</span></li>
|
|
</ul>
|
|
<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>
|