Skip to content

Commit 11fd7b9

Browse files
committed
Add page files
1 parent 6f3a74c commit 11fd7b9

21 files changed

+241
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This is repository of a GitHub Page
2+
3+
[n-gist.hitgub.io](https://n-gist.github.io)

_config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
theme: jekyll-theme-midnight
2+
title: n-gist
3+
markdown: kramdown

_layouts/default.html

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<!doctype html>
2+
<html lang="{{ site.lang | default: "en-US" }}">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
7+
{% seo %}
8+
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
9+
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
10+
<script src="{{ '/assets/js/respond.js' | relative_url }}"></script>
11+
<!--[if lt IE 9]>
12+
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
13+
<![endif]-->
14+
<!--[if lt IE 8]>
15+
<link rel="stylesheet" href="{{ '/assets/css/ie.css' | relative_url }}">
16+
<![endif]-->
17+
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
18+
19+
</head>
20+
<body>
21+
<div class="wrapper">
22+
23+
<section>
24+
<div id="title">
25+
<h2><center><a href="{{ site.github.owner_url }}" target="_blank">{{ site.github.owner_name }}</a></center></h2>
26+
<p>{{ site.description | default: site.github.project_tagline }}</p>
27+
<hr>
28+
</div>
29+
30+
{{ content }}
31+
32+
</section>
33+
34+
</div>
35+
36+
{% if site.google_analytics %}
37+
<script>
38+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
39+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
40+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
41+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
42+
ga('create', '{{ site.google_analytics }}', 'auto');
43+
ga('send', 'pageview');
44+
</script>
45+
{% endif %}
46+
</body>
47+
</html>

assets/css/style.scss

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
---
3+
4+
@import "{{ site.theme }}";
5+
6+
.wrapper {
7+
max-width:1000px;
8+
}
9+
10+
#header {
11+
nav {
12+
max-width: 1000px;
13+
}
14+
}
15+
16+
section {
17+
max-width: 1000px;
18+
padding-top: 10px;
19+
margin-top: 0;
20+
21+
#title {
22+
margin-bottom: 20px;
23+
}
24+
}
25+
26+
@media print, screen and (max-width: 480px) {
27+
28+
section {
29+
margin-top: 0;
30+
}
31+
}
32+
33+
.mainPageCont {
34+
text-align: center;
35+
}
36+
37+
.videoWrapper {
38+
position: relative;
39+
padding-bottom: 56.25%; /* 16:9 */
40+
height: 0;
41+
}
42+
.videoWrapper iframe {
43+
position: absolute;
44+
top: 0;
45+
left: 0;
46+
width: 100%;
47+
height: 100%;
48+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
title: "Driven Keys from Maya to MotionBuilder"
3+
---
4+
5+
# Driven Keys from Maya to MotionBuilder
6+
7+
Driven Keys is a nice thing that does not work when we transfer scene from MAYA to MotionBuilder. There are solutions on the Internet, but most of them just explain how to build Relation Constraint in MotionBuilder between driver and driven objects manually. That is impossible with a large number of objects, or when changing/tuning connections, in terms of time costs.
8+
9+
Solution is two python scripts. One is for export data from MAYA, second is for import to MotionBuilder.
10+
11+
## Export
12+
13+
[![Driven Keys - Export](/images/DrivenKeys_Export.gif)](/images/DrivenKeys_Export.gif){:target="_blank" rel="noopener"}
14+
15+
On pressing 'Construct' button, Driven Keys data is collected, serialized and saved in ExtraAttributes fields of the created objects acting as data containers. After this, the scene can be sent to MotionBuilder. Data is collected for selected driven objects or for entire scene, if nothing selected. MAYA can stuck hard if you select these objects while AttributeEditor is opened, especially if ExtraAttributes category exposed, thats why data splits to smaller chunks, but it is recommended to keep AttributeEditor closed. 'Delete' button deletes these objects, and other four is just shortcuts for SDK window, selecting all objects in scene and sending them to MotionBuilder.
16+
17+
* *If not all channels was constructed, there is option to run construction with 'Work Log' checkbox ticked. This will output information that can be used to fix channels inputs. 'BAD' channels can be found by searching for the 'SKIP CONSTRUCT' string in the Script Editor console log. Information before this lines will tell what exactly is 'BAD' in the chain of inputs of the channel. Most often these are nodes without inputs, which sometimes remain when editing Driven Keys. Such nodes can be removed from connections network using Node Editor.*
18+
19+
## Import
20+
21+
[![Driven Keys - Import](/images/DrivenKeys_Import.gif)](/images/DrivenKeys_Import.gif){:target="_blank" rel="noopener"}
22+
23+
Once all objects are transferred to MotionBuilder, connections network can be constructed using 'Update' button, which will create Relation Constraints for each driven object attribute. It is possible to activate, deactivate and delete these constraints with the corresponding buttons.
24+
25+
### Supports:
26+
* *blended influences from multiple driver objects*
27+
* *pre' and post' extrapolations: Constant, Linear (Keep Slope), Cycle (Repetition), Cycle with offset (Relative Repetition), Oscillate (Mirror Repetition)*
28+
* *key tangents: Auto, Spline, Linear, Step, StepNext*
29+
30+
### Does not supports:
31+
* *driving any other things except translation, rotation and scale*
32+
* *Custom tangents. They will be treated as Auto*
33+
* *mixing various key tangents types in one curve. There is inconsistencies between MAYA and MotionBuilder when keys of different tangent types are neighbors (Auto and Linear tangents on one curve comparison):*
34+
[![Driven Keys - Tangents](/images/DrivenKeys_DifferentTangents.png)](/images/DrivenKeys_DifferentTangents.png){:target="_blank" rel="noopener"}
35+
* *so it's best to use the same tangent types on one curve*
36+
37+
Worth to note. There is no way to drive attribute on one axis, leaving it free on other axes. In order to be able to control attributes on other axes, they need to be constrained too, otherwise attributes on not constrained axes will be frozen at current values.
38+
39+
[DrivenKeys_MAYAtoMOBU.zip](/files/DrivenKeys_MAYAtoMOBU.zip){:target="_blank" rel="noopener"}

files/DrivenKeys_MAYAtoMOBU.zip

7.14 KB
Binary file not shown.
12 KB
Loading

images/DrivenKeys_Export.gif

103 KB
Loading

images/DrivenKeys_Import.gif

375 KB
Loading

images/DrivenKeys_MAYA.gif

2.93 MB
Loading

0 commit comments

Comments
 (0)