summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/UMotion/UMotionEditor/Manual/pages/FKtoIKConversion.html
blob: b519d28558162265e81a99b1e79f69c100cc6413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<!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 - FK to IK Conversion</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.22p03</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"><b><u>FK to IK Conversion</u></b></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">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="">FK to IK Conversion <span class="professionalTag">Professional</span></h1><p class="textBlock">This dialog allows to automatically create Inverse Kinematics keys that result in a similar animation as the respective Forward Kinematics keys. This is very useful for converting existing animations to IK. Animations that use IK instead of FK are usually easier to modify.</p><p class="textBlock">Please note that the FK to IK conversion can also be performed directly when importing animations (see <a href="ImportExport.html#Import" class="link">Import</a>).</p><p class="textBlock">The conversion works across every type of 3D model no matter if it's a human like character, a robot, a spider,... Before the conversion can take place, Inverse Kinematics needs to be setup</p><img src="../images/FkToIkConversion.png" class="image"></img>
<p class="imageText">FK to IK Conversion Dialog</p><p class="textBlock">The dialog lists every IK handle that is setup in the animated GameObjects rig (see <a href="IKSetupWizard.html" class="link">IK Setup Wizard</a>). Select the IK handles that should be converted. The converter will automatically create keys for the IK handle to imitate the animation defined by the FK keys. Please note that the converted IK animation can slightly differ from the original FK animation.</p><p class="textBlock">Attention: If the current animation already has keys for the IK handles that should be converted, those keys will be automatically removed.</p><p class="textBlock"><b>Delete FK Keys:</b> When this option is enabled, the FK keys that have been converted to IK will be deleted. IK handles that use "FK Pose" as reference need their FK keys to function properly thus those FK keys will not be deleted.</p><h2 class="headline2" id="">Improving Conversion Accuracy</h2><p class="textBlock">When using IK it is usually not possible to rotate single bones in the chain around their own axis (= twist/roll rotations). Meaning that it is possible to the whole IK chain around the pole axis (using either the pole rotation property or the pole handle) but it is not possible to rotate only a certain bone around its own axis. Thus, if the animation that is converted to IK contains such rotations for bones that are within the IK chain, this rotation usually won't make it into the resulting IK animation. This can lead to visible differences. There are 2 ways to compensate that:</p><ul class="listMain">
    <li class="listItem"><span class="listText">Setting the <b>Reference</b> of the IK constraint to <b>FK Pose</b>. That way, the "twist" rotations are taken over from the FK pose. The downside of this method is, that in order for this to work the FK keys can't be removed from the clip after conversion as they are still needed. Furthermore the tight coupling of the FK pose with the IK pose makes it harder to edit the animation.</span></li>
    <li class="listItem"><span class="listText">By default the <b>Target Rotation</b> of the IK constraint is set to <b>FK Rig</b>. Let's assume we have an arm controlled via IK and the hand is the IK target. Using this rotation mode will use the local rotation the hand has in the FK rig and copy it to the IK rig. Thus if the forearm has a slightly different rotation (because of the missing twist rotation) this will result in a different global rotation of the hand.
    </br>
    For poses where it is necessary that the global target rotation stays exactly the same as in the original FK pose (e.g. when a hand is holding a gun) it is recommended to set the the <b>Target Rotation</b> of the IK constraint to <b>IK Handle</b>. This will ensure that the global rotation of the IK target (e.g. the hand) will be exactly the same as it was in the FK animation even though the rest of the IK chain has slightly different rotations.</span></li>
</ul><p class="textBlock">More information: <a href="InverseKinematics.html#Setup" class="link">IK Constraint - Setup</a></p>
				<div class="mainContentFooter">
					<p class="textBlock" style="float:left">Copyright © 2017 - 2020 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>