mirror of
https://github.com/shinyflvre/Mate-Engine.git
synced 2026-08-16 03:53:28 +00:00
# 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.
261 lines
13 KiB
HTML
261 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.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" 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>
|