tag:blogger.com,1999:blog-21933494661007859772024-03-19T05:41:03.551+01:00Robot SquidsAnonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-2193349466100785977.post-53442895572727329452015-06-12T17:48:00.000+02:002015-06-12T18:03:52.539+02:00Wolfenstein: The Old Blood<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjQJId7rQXe6g_zD4_jmKWb0b9bVmgbzGNTqNQOkfX_Ys7hyphenhyphenY2hJI35qLjJhDd1x2dPDJvmLTRYmPxKaPoUgNa4vHSVusNdObRY3S1xi_Eny_sBVxSug6yDFTBvehDankEygoIHc3u6o/s1600/44317_2_6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjQJId7rQXe6g_zD4_jmKWb0b9bVmgbzGNTqNQOkfX_Ys7hyphenhyphenY2hJI35qLjJhDd1x2dPDJvmLTRYmPxKaPoUgNa4vHSVusNdObRY3S1xi_Eny_sBVxSug6yDFTBvehDankEygoIHc3u6o/s400/44317_2_6.jpg" title="" width="400" /></a></div>
<br />
Haven't posted in a while so here is what I was up to. At the end of the last year I worked with animationRigs.com and Motion Grinder on one of the oldest and coolest game series ever made. It was my job to take care of weight painting and to create poses for the facial rigs of Rudi, Agent One and a few other characters. Here is the game in its full glory:<br />
<br />
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/1bsAooS-bxQ" width="640"></iframe></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com5tag:blogger.com,1999:blog-2193349466100785977.post-80786985148994133422015-02-07T14:45:00.000+01:002015-02-07T19:02:15.371+01:00Sprite Slicer<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihgE3kGH4eVFdGzP4nExuBNsNVyPqvze9MI6aItndxcnKIX-3130pheLL6InjLAwQSdMfPcQtwl5qGWrebxtOTUxunGNqirAd4xRVMGOOpPU2eGdR_NgzPyZR9FxQC27NBA0gf2vws70o/s1600/spriteSlicer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihgE3kGH4eVFdGzP4nExuBNsNVyPqvze9MI6aItndxcnKIX-3130pheLL6InjLAwQSdMfPcQtwl5qGWrebxtOTUxunGNqirAd4xRVMGOOpPU2eGdR_NgzPyZR9FxQC27NBA0gf2vws70o/s1600/spriteSlicer.png" height="406" title=" " width="640" /></a> Sprite Slicer is a tool that significantly speeds up the creation of image planes or sprites in Maya. It automatically generates the planes in the correct aspect ratio with perfectly aligned UVs. The smart algorithm in Bounds mode recognizes all separate shapes and creates sprites for them. Additional settings allow you to fine tweak the shape recognition.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The tool is also great for importing of reference images or any textured planes that will be used for modeling, for example hair strands, grass, leaves...</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<u><b> To download the tool visit this link: <a href="https://gum.co/spriteSlicer">Sprite Slicer</a></b></u> </div>
<div class="separator" style="clear: both; text-align: left;">
Feel free to donate to support further development of the tool. The next steps are to optimize the shape recognition speed and convex hull creation.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
After you download it copy this code to your script editor or shelf to get the UI started:</div>
<!-- Include required JS files -->
<script src="js/shCore.js" type="text/javascript"></script>
<!--
At least one brush, here we choose JS. You need to include a brush for every
language you want to highlight
-->
<script src="css/shBrushPython.js" type="text/javascript"></script>
<!-- Include *at least* the core style and default theme -->
<link href="css/shCore.css" rel="stylesheet" type="text/css"></link>
<link href="css/shThemeDefault.css" rel="stylesheet" type="text/css"></link>
<!-- You also need to add some content to highlight, but that is covered elsewhere. -->
<br />
<pre class="brush: py">import ah_spriteSlicer
reload(ah_spriteSlicer)
slicer = ah_spriteSlicer.slicer() </pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Watch the video to see how the tool works and to see different import modes in action:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/118989613?title=0&byline=0&portrait=0" webkitallowfullscreen="" width="640"></iframe>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The dragon character is from <a href="http://www.tripleclaim.com/#post=475">Bubble Rumble</a>, download it for IOS and Andorid.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If the video is not enough here is a reference for all of the tools options:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtjJb5OeO7HJMCK0iwz8fjxDUPxBmDlkiN_UQnOi7dDSdjICUJ1y45Em9GgECMnJgP0ij8WsSdHzY5TaSJTtVSXxiLIyOclbvTFSgRxIwdShDu1oXkz1QLtC-M97_0zPvrbHd8wmLmT1s/s1600/name.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtjJb5OeO7HJMCK0iwz8fjxDUPxBmDlkiN_UQnOi7dDSdjICUJ1y45Em9GgECMnJgP0ij8WsSdHzY5TaSJTtVSXxiLIyOclbvTFSgRxIwdShDu1oXkz1QLtC-M97_0zPvrbHd8wmLmT1s/s1600/name.png" height="33" style="cursor: move;" title=" " width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Name: Specify the name that all the sprites will be named to. They will automatically be numbered. If no name is specified, "sprite" will be added as the default name.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbJyQXxQuYEpjo-n1bEfYxojdx5YIy3WHSED9VTziY5AYAijjCDnhqi9-S88oShLQYwWWyDoaPzk3T2xT7sJB3OlJ-xqcUhl0TJyr4j2J0MJkAGSlDJgIaTjJgfRUjKwaXEYdbIKTBtHM/s1600/url.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbJyQXxQuYEpjo-n1bEfYxojdx5YIy3WHSED9VTziY5AYAijjCDnhqi9-S88oShLQYwWWyDoaPzk3T2xT7sJB3OlJ-xqcUhl0TJyr4j2J0MJkAGSlDJgIaTjJgfRUjKwaXEYdbIKTBtHM/s1600/url.png" title=" " /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Sprite Sheet: URL for the image to be loaded. It can be entered by hand or if you click the folder icon a dialog will open that will allow you to specify an image on your system.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPI-qACO6Dc8WjjzD6GtzwSqk49Z3poRqEZ5XIoN2r0E9c8R98SzU2vw8QtTgjpVwPleOXH6yfvNL54wdvEwEO1DBaElEo6ogr-qVHlb63kmhUegAGW6mzcTYNAO4Zsvx_hyyElt3j63I/s1600/pivot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPI-qACO6Dc8WjjzD6GtzwSqk49Z3poRqEZ5XIoN2r0E9c8R98SzU2vw8QtTgjpVwPleOXH6yfvNL54wdvEwEO1DBaElEo6ogr-qVHlb63kmhUegAGW6mzcTYNAO4Zsvx_hyyElt3j63I/s1600/pivot.png" title=" " /></a></div>
Pivot Location: Specify the region of the sprites that their pivot will be snapped to. The pivot can later be edited by Maya's standard tools or by going into the top menu of Sprite Slicer and selecting an option from Geo/Set Pivot.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhNFDyhUoSS0Km5eMQmINfNF1h7X8EU-bqHjAzsWfd2tRn5pC1n0kMZia1KVkUcTaiCB_GojlijCljkZy05PYOtm2f7_BhtdyoPVviTObxXh3u2YJAc7VHatUaW_s7_pkBWYf92D1HTgw/s1600/pixPerUnit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhNFDyhUoSS0Km5eMQmINfNF1h7X8EU-bqHjAzsWfd2tRn5pC1n0kMZia1KVkUcTaiCB_GojlijCljkZy05PYOtm2f7_BhtdyoPVviTObxXh3u2YJAc7VHatUaW_s7_pkBWYf92D1HTgw/s1600/pixPerUnit.png" title=" " /></a></div>
Pixels Per Unit: This value specifies how many pixels are going to be created per one Maya unit. In other words it specifies the scale of the image planes. The larger the value the smaller the planes will be, and vice versa.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhie7T3kXfmGOsT9lJTesZWk9Xk0yBDHGveUJoYc0i6FWqc18wGGNIczGplv7D1zf_HJs5nXjOSvTbQC1RIkqBWRD_zlS7HzdAGmahzYhLvPYd8JBp5CqhkaFejvFIfFeGtDG2HXx34fcA/s1600/subs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhie7T3kXfmGOsT9lJTesZWk9Xk0yBDHGveUJoYc0i6FWqc18wGGNIczGplv7D1zf_HJs5nXjOSvTbQC1RIkqBWRD_zlS7HzdAGmahzYhLvPYd8JBp5CqhkaFejvFIfFeGtDG2HXx34fcA/s1600/subs.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
Subdivisions: The created planes will be subdivided in width and height by the amount specified in these two boxes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0TlnZ07pK23p6pusW2jmdHjdkYRSfRFmTZvX0FsWnYSFOs5Qyi6whHnL91xwYMG-wqTon1VtRqlg91gPo4tb-vd0ssdXOtxPMz5aDSfkYOaE3-LtNwRc1Bk_XJpL6bvmCZ87b5E00Dq8/s1600/bounds.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0TlnZ07pK23p6pusW2jmdHjdkYRSfRFmTZvX0FsWnYSFOs5Qyi6whHnL91xwYMG-wqTon1VtRqlg91gPo4tb-vd0ssdXOtxPMz5aDSfkYOaE3-LtNwRc1Bk_XJpL6bvmCZ87b5E00Dq8/s1600/bounds.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bounds: In this mode the sprites will be created for all separate shapes in the image. These shapes can later be combined with Maya's modeling tools or by selecting them and clicking on Geo/Combine option in Sprite Slicer's top menu.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0GoW41K14pbArTiYkfqrU69-60juCvaHrlfU2zcgfKmHRcz8xzX6RmYVRjSs0aJPGxb2dLatkGnUKcqNMlVZQqJyeJ1yS3i8O6XrGgc1ti-lgG1Hf3ki7C5cwxPFL8aVyvM4JgE_LMiE/s1600/minPixels.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0GoW41K14pbArTiYkfqrU69-60juCvaHrlfU2zcgfKmHRcz8xzX6RmYVRjSs0aJPGxb2dLatkGnUKcqNMlVZQqJyeJ1yS3i8O6XrGgc1ti-lgG1Hf3ki7C5cwxPFL8aVyvM4JgE_LMiE/s1600/minPixels.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Min Pixels: Minimum number of pixels that every separate shapes need to have in order to be considered a separate sprite. Tweak this amount if your sheet contains stray pixels or very small shapes that are part of a larger shape.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJpEKqWxRgWN_9Fx8EZr3-nd-xvx1xEcbhSk85RZtf-tIO1KpMs6D7EOuWjOmvXuf-g0f21pWdgI-BM238gHRdfqy_yIDOqeXT9XhRfbCsLuzNxSxcxt9_Vf9t6imEVWhIIREjRtCAdA/s1600/minOpacity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvJpEKqWxRgWN_9Fx8EZr3-nd-xvx1xEcbhSk85RZtf-tIO1KpMs6D7EOuWjOmvXuf-g0f21pWdgI-BM238gHRdfqy_yIDOqeXT9XhRfbCsLuzNxSxcxt9_Vf9t6imEVWhIIREjRtCAdA/s1600/minOpacity.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Min Opacity: Specify a value between 0.0 and 1.0 and the pixels that have an alpha value lower than the specified value will be ignored when searching for separate shapes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5lA2wfRoR4tk4rirZNYwErR-D5lQXzJOoewDFa10sg7vtCRA7jQnIPRmHStCR32sgYUcqFTdoy_p-IMjaX_KB44su7GgXK7x14E-bgT-gw1CfY8dkyF2UBQEtLwMbtcs0FEw7ujzu3Fo/s1600/diagonalCheck.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5lA2wfRoR4tk4rirZNYwErR-D5lQXzJOoewDFa10sg7vtCRA7jQnIPRmHStCR32sgYUcqFTdoy_p-IMjaX_KB44su7GgXK7x14E-bgT-gw1CfY8dkyF2UBQEtLwMbtcs0FEw7ujzu3Fo/s1600/diagonalCheck.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Diagonal Check: When importing very small sprites, like pixel art, this option allows you to specify if you want to consider pixels that are connected only by their corners as part of the same shape. Keep this option unchecked if importing larger images since it will unnecessarily slow things down.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhArVdHkvKwHbbAFMZ6beroDD9Pc_5_sDJwWtdH_0VKp8YMossw4lPHM-sVXOT5cnoI_F7kiLITyCkD7GMcCmRwZSM_BHf2GEKisXm9LEOD5XyMlok60ZrhSY-1BYTOFn7OdH5cxsqIP6A/s1600/grid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhArVdHkvKwHbbAFMZ6beroDD9Pc_5_sDJwWtdH_0VKp8YMossw4lPHM-sVXOT5cnoI_F7kiLITyCkD7GMcCmRwZSM_BHf2GEKisXm9LEOD5XyMlok60ZrhSY-1BYTOFn7OdH5cxsqIP6A/s1600/grid.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Grid: In this mode the sprites will be created based on the sprite size that is specified in the fields bellow.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRv5sHU0FAj38IFbxWhyphenhyphenMT_woMs81YU5pjiBwZ5dDL64UKUoeXlZBk_-kt8P5yVCqlhJOepQ8G6O-SfL2HUc8GKhgxDeo9AfcBPKO_QquED1ZKBwFynUOcuLkV7oeYLBv8rVZpi-AERaE/s1600/spriteSize.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRv5sHU0FAj38IFbxWhyphenhyphenMT_woMs81YU5pjiBwZ5dDL64UKUoeXlZBk_-kt8P5yVCqlhJOepQ8G6O-SfL2HUc8GKhgxDeo9AfcBPKO_QquED1ZKBwFynUOcuLkV7oeYLBv8rVZpi-AERaE/s1600/spriteSize.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Sprite Size: The size of the sprites by which the sheet will be divided. These values are in pixels. The tool will start to fit as many sprites as it can, starting from the top left corner.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBn4U4H-gNFxqSGZisHT4Wbt9CEHhRyNTTn3w-XLP9RV8SVkGhXKA2t6DczJUE0Xt-_7_sjjOhKMufs9q-1BmBSIagPhVo4bjMNCyme8cw7XfnEShHjU3fOlVJ71tMhGCaROgNJRYjGs/s1600/offset.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBn4U4H-gNFxqSGZisHT4Wbt9CEHhRyNTTn3w-XLP9RV8SVkGhXKA2t6DczJUE0Xt-_7_sjjOhKMufs9q-1BmBSIagPhVo4bjMNCyme8cw7XfnEShHjU3fOlVJ71tMhGCaROgNJRYjGs/s1600/offset.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Offset: Starting from the top left corner of the image the amount specified here will offset the sprites. These values are in pixels.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk32qKwhDYj1StIQBOT_wBeFwSqTqcWd3o7902KbRlmbK7Y9BAd0TFFm4UsdBF73YqQzbfekK8TGnbisYB7zSbwvyNcTmRms1113SmcJQJV_eK6oycGjIoULjQeXqMCqI81qxJ58necA/s1600/padding.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk32qKwhDYj1StIQBOT_wBeFwSqTqcWd3o7902KbRlmbK7Y9BAd0TFFm4UsdBF73YqQzbfekK8TGnbisYB7zSbwvyNcTmRms1113SmcJQJV_eK6oycGjIoULjQeXqMCqI81qxJ58necA/s1600/padding.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Padding: These values separate the sprites from each other by the amounts specified. These values are in pixels.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq-Ku1rtwSiRZ3cXqVceU6s74e0mN8yE174m5hYPQ23_9rWUhNiRIOySsxLJvyN4eOT24sQ9MpuK_7gOuskhzg1QO4Zn7BRv0Ow69PK9Ync6ev1Jsn5vEJOj7HHwPo8zgSxpsYlpmf0RE/s1600/ratio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq-Ku1rtwSiRZ3cXqVceU6s74e0mN8yE174m5hYPQ23_9rWUhNiRIOySsxLJvyN4eOT24sQ9MpuK_7gOuskhzg1QO4Zn7BRv0Ow69PK9Ync6ev1Jsn5vEJOj7HHwPo8zgSxpsYlpmf0RE/s1600/ratio.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ratio: In this mode the image is cut into a grid based on the ratio specified in the fields below.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pyB4-k8X6bFoBvAdE42XZVXf16koMtEG4i8pLzRDZf9nQZaklSf3EmCm44soMW3dTQPZX53yuhm7tp5hM54lVvGs5L7ypBFZ0WqMJjlmR4q9l4YBnbaPVcU1OIXnKYLlk-Tg_I365ls/s1600/divisions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pyB4-k8X6bFoBvAdE42XZVXf16koMtEG4i8pLzRDZf9nQZaklSf3EmCm44soMW3dTQPZX53yuhm7tp5hM54lVvGs5L7ypBFZ0WqMJjlmR4q9l4YBnbaPVcU1OIXnKYLlk-Tg_I365ls/s1600/divisions.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Divisions: The ratio that the image will be cut in. The X amount is the number of sprites columns in the grid and the Y amount is the number of rows in the grid.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqQCeWsCeOBu71QsCxr5xmp_FoDwbEYm-aobWLHB0KO3xfgq8vATrieMaSdVO9LAeI9gh8xh61ti8hO6s903peF_-0QOeM4r6Un6QGBsuDsME0HnOFHMeNQ9hgcR7xE1GcBH9kjjIpV68/s1600/offset2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqQCeWsCeOBu71QsCxr5xmp_FoDwbEYm-aobWLHB0KO3xfgq8vATrieMaSdVO9LAeI9gh8xh61ti8hO6s903peF_-0QOeM4r6Un6QGBsuDsME0HnOFHMeNQ9hgcR7xE1GcBH9kjjIpV68/s1600/offset2.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Offset: Similar to the offset in Grid mode, only in this mode you have the option to offset from all four sides of the image.These values are in pixels.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk32qKwhDYj1StIQBOT_wBeFwSqTqcWd3o7902KbRlmbK7Y9BAd0TFFm4UsdBF73YqQzbfekK8TGnbisYB7zSbwvyNcTmRms1113SmcJQJV_eK6oycGjIoULjQeXqMCqI81qxJ58necA/s1600/padding.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQk32qKwhDYj1StIQBOT_wBeFwSqTqcWd3o7902KbRlmbK7Y9BAd0TFFm4UsdBF73YqQzbfekK8TGnbisYB7zSbwvyNcTmRms1113SmcJQJV_eK6oycGjIoULjQeXqMCqI81qxJ58necA/s1600/padding.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Padding: These values separate the sprites from each other by the amounts specified. These values are in pixels.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjLJOUy31AYooVoub8aPdbghqz20ti0UNYHqG9Kwwxa4I98CnTeG4_cb-yeK6NMtzfG93F98sViQBYY9pEPMsIv4nvcGUS8IJyMrzY81WnnMJg6DNon04SXyEGhWxPaJT6Zbj550BEanQ/s1600/loadCancel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title=" "><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjLJOUy31AYooVoub8aPdbghqz20ti0UNYHqG9Kwwxa4I98CnTeG4_cb-yeK6NMtzfG93F98sViQBYY9pEPMsIv4nvcGUS8IJyMrzY81WnnMJg6DNon04SXyEGhWxPaJT6Zbj550BEanQ/s1600/loadCancel.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Load: Import the selected image with the specified options.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Cancel: Discard the specified options and close the Sprite Slicer window.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovSmCJsKUc1LxLp30KSFIgJSBcfIFRP2J1tLKqWIzyr7xOAp64FQitMQwRs04tOA2SCp-oQt5RnHdT8M-4uP5bnBoLGGveSSwitHbvy5eg53FChApRmwO7x9CNOeAYohiaQfEjRpnyko/s1600/menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovSmCJsKUc1LxLp30KSFIgJSBcfIFRP2J1tLKqWIzyr7xOAp64FQitMQwRs04tOA2SCp-oQt5RnHdT8M-4uP5bnBoLGGveSSwitHbvy5eg53FChApRmwO7x9CNOeAYohiaQfEjRpnyko/s1600/menu.png" height="16" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Edit: The Reset Settings option is in this menu. It resets all the values to their defaults</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Geo:</div>
<div class="separator" style="clear: both; text-align: left;">
Combine: Combine the selected planes. You need to have at least two meshes selected.</div>
<div class="separator" style="clear: both; text-align: left;">
Set Pivot: Sets the pivot of the selected objects to the specified corner.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Help: A link that opens in your browser and it brings you to this page. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com1tag:blogger.com,1999:blog-2193349466100785977.post-33896119448348012422014-11-18T12:14:00.000+01:002014-11-18T12:16:54.146+01:00Rigging Reel 2014<div dir="ltr" style="text-align: left;" trbidi="on">
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/111454499" webkitallowfullscreen="" width="640"></iframe>
<br />
<div class="js-clip_description description read_more " data-expand-tooltip="Click to expand description" itemprop="description" style="height: 678px;">
<div class="first">
Breakdown:</div>
<div class="first">
<br /></div>
01. Elephant Rig<br />
Creature rigging in Autodesk Maya using Maya Muscle. A custom flexible
auto rigging script for the Variable FK trunk was written in PyMel.<br />
<br />
02. Variable Foot<br />
Organic and flexible foot posing using only a couple of controls without
stacking of a large number of variable foot parameters. This solution
allows the animator to position the pivot on any part of the foot and
control the direction and falloff of the bend.<br />
<br />
03. Delta Mush<br />
This deformer is based on Voodoo's Delta Mush deformer and requires
almost no skinning work to be done. Using the vertices tangent space it
provides a smart deformer that preserves volume and shape.<br />
<br />
04. Smooth Skin Decomposition<br />
The results of using the Delta Mush deformer are decomposed and applied
to the rigid skin of the character. This solution produces a skin with
deformations that are as close as possible to the Delta Mush
deformations.<br />
<br />
05. Bezier Spine<br />
An animation friendly spine rig that uses a minimum amount of animation
controls without sacrificing any flexibility. The chest and hip
controllers can change their location and provide different points from
which the spine bends. By adjusting the chest and hips tangent handles
the spine shape can be further defined and tweaked.<br />
<br />
06. Shape Rasterizer<br />
A 3D shape is projected onto a plannar mesh and rasterized to create a
look that immitates low resolution screens. The shapes vertex colors are
used to define the colors of this rasterized shape.<br />
<br />
07. Herman and Chad<br />
Responsible for body and facial rigs, skinning, UI writing and rig maintenance.<br />
<br />
08. Spherical Mirror<br />
Written in Fabric Splice for Maya. Creates a mesh instance that is mirrored using a spherical mirror. Supports animation.<br />
<br />
09. Wheel and Threads Node<br />
Custom node written in Fabric Splice for Maya. The node provides a
complete solution for wheels and threads. The wheel rotation works in
world space and works in any direction. The same is true for the
threads. The thread mesh is automatically instanced and the thread
control points define the shape, size and rotation of the threads.</div>
</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-2502597255866308492014-10-05T20:20:00.003+02:002014-10-05T20:22:08.442+02:00Spherical Mirror Tutorial<div dir="ltr" style="text-align: left;" trbidi="on">
I'll show you how you can use some basic math knowledge to manipulate points in 3D space. Knowing vectors and points will allow you to fully understand how objects are positioned, translated around, how matrices work, how quaternions are rotated, aim constrains calculated and much, much more.<br />
<br />
First let me show you what we will be making and after that you will see how easy it is to make something like this:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/108051796?loop=1" webkitallowfullscreen="" width="640"></iframe>
<br />
<br />
The Zetz character is designed by Boris Stapic and the model and textures are from Seid Tursic.<br />
<br />
This is made using Fabric Splice in Maya. Here is the <a href="https://www.dropbox.com/s/y58jkdrhk9ay6ye/ah_sphericalMiror.splice?dl=0">download link</a> for the splice file. Have fun with it. I will not cover the Splice part in this tutorial but you can go through my code and see how it is written. I also included some debuging code that draws the sphere.<br />
<br />
I will be writing the tutorial in pseudo code, and everything might not be notated to mathematical standards. I'm trying to make everything easy to read and I leave it to you to figure out how to do it in the language and software of your choice.<br />
<br />
So, here is what we are going to start with:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZ5YEGJmH3DywBDqpnDE5_LfP95IeWHmGpbGsdU0Q65hLPBl-91BI3ldqZZ7I4ab5SUBL2EtK1F78QURzI4Y_6lSp3wsJ7lhq_GQwX-wcNU0o4Ll0j-TLkx1phdEHllI1xsrokQnjUd4/s1600/mirrorTut1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZ5YEGJmH3DywBDqpnDE5_LfP95IeWHmGpbGsdU0Q65hLPBl-91BI3ldqZZ7I4ab5SUBL2EtK1F78QURzI4Y_6lSp3wsJ7lhq_GQwX-wcNU0o4Ll0j-TLkx1phdEHllI1xsrokQnjUd4/s1600/mirrorTut1.png" height="360" width="640" /></a></div>
<br />
The origin is just the center of our world, radius is going to be an attribute that the user can modify, sphere center is the location of our sphere and the vertex position is what you will get from your application when you query the location of a vertex. This doesn't have to handle vertices, you can write a version that mirrors locators or any other objects.<br />
<br />
Now we have to calculate a vector that will point from "c" to "a" so we know in what direction to mirror the object.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiICH90nEzn-9G3Ni0cx2rTV-cRfaxWoqWbe_4Vt9rnd2SLrsLb3ZU6enJAVySuzHQC-PYn7OaHXV2YmcU00RAGmjB0aGhj0isprGTB1zNKaUI38yCTmuSibkln7f4TNzMwh5gU-9l86fo/s1600/mirrorTut2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiICH90nEzn-9G3Ni0cx2rTV-cRfaxWoqWbe_4Vt9rnd2SLrsLb3ZU6enJAVySuzHQC-PYn7OaHXV2YmcU00RAGmjB0aGhj0isprGTB1zNKaUI38yCTmuSibkln7f4TNzMwh5gU-9l86fo/s1600/mirrorTut2.png" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
The next step is to make "a`" go from "c" to the spheres border. That is easy to achieve. We need to make "a`" a unit vector ( we set its length to 1 ) and we multiply that unit vector with the radius.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4zFQCRn1IOELcxDR-YemzE70dz972QFGwI52ERwQNcpARS7_5CplfH2Buats2dbD43Co2DlGK70eeWEWFIr8RbFinS3owl3cB6h1_nnGF_65XCihaxez8SzJMvE2TtHklh_LLzMZ3N5g/s1600/mirrorTut3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4zFQCRn1IOELcxDR-YemzE70dz972QFGwI52ERwQNcpARS7_5CplfH2Buats2dbD43Co2DlGK70eeWEWFIr8RbFinS3owl3cB6h1_nnGF_65XCihaxez8SzJMvE2TtHklh_LLzMZ3N5g/s1600/mirrorTut3.png" height="360" width="640" /></a></div>
<br />
To know how far the mirrored point needs to be from the spheres center we need to calculate a multiplication factor. The factor is the number that we get when we divide the radius by the length of "a`". We will multiply "b" with this factor to get the position of our mirrored point.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia0XC3olIBoaGPPYztdqCxD4bh8AADgwhcQg5whR8EZxg_ZB80byrn1S3qUJJ7by2zUpP-ecG1aN32ExODzpqCJdSKFMiB9aX5F6ECLbkBiNQoPJCrNg2aN2qOIQjRqhzyp0MWNooFXMs/s1600/mirrorTut5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia0XC3olIBoaGPPYztdqCxD4bh8AADgwhcQg5whR8EZxg_ZB80byrn1S3qUJJ7by2zUpP-ecG1aN32ExODzpqCJdSKFMiB9aX5F6ECLbkBiNQoPJCrNg2aN2qOIQjRqhzyp0MWNooFXMs/s1600/mirrorTut5.png" height="360" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Now we have our point mirrored and its location based on the sphere center. In order to get the location in the world we add up this vector to "c".<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQvnCZBi5eTOQbYoaucoJUtEV3soEyejF4KngOGSryicdc751bhdFeXwsWTCDaa94an2ZySYQbVXjk1_ssBrw9afH-DD3dgFV84eNciW0gLKYccVS6m8pU7ryr9J-pzVua1LXu58g5_VA/s1600/mirrorTut6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQvnCZBi5eTOQbYoaucoJUtEV3soEyejF4KngOGSryicdc751bhdFeXwsWTCDaa94an2ZySYQbVXjk1_ssBrw9afH-DD3dgFV84eNciW0gLKYccVS6m8pU7ryr9J-pzVua1LXu58g5_VA/s1600/mirrorTut6.png" height="360" width="640" /></a></div>
<br />
And that is how we go from "a" to "am". I leave it to you to write this in the software of your choice and if you have any further questions write them in the comments. But first make sure to try and figure everything out by yourself. </div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-90489150199098297232014-09-29T11:56:00.002+02:002014-09-30T14:37:57.028+02:00Semi Auto Skinning R&D<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
If you have not already seen Hans Godard's <a href="https://vimeo.com/user14195390">vimeo page</a> then you should go there now. That man does some great work and is a huge inspiration.<br />
His <a href="https://vimeo.com/106647863">latest video</a> demos a workflow for automatizing smooth skinning. I tried to do something similar but couldn't crack the math for SSD. So I did it my own way. The most important thing is that it works and gives good results.<br />
<br />
My version is based on Splice and Python. Python slows things down a lot but I am getting into C++ so the next version will be full Maya C++ API.<br />
Even with Python I didn't have to wait too long. With a 12k vert mesh and 85 skinned joints the procedure was done in a bit more than <strike>5 minutes</strike> 3m30s (did some optimizing). That still beats doing it by hand and painting the weights until the wrists start to hurt.<br />
<br />
A big thank you to <a href="http://www.subdivme.com/">Jonas Törnqvist</a> for giving me the model for testing. Great modeler and a great guy.<br />
<br />
No more talking, here is the video:<br />
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/107450564" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/107450564">semiAutoSkinningRD</a> from <a href="http://vimeo.com/arminhalac">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com12tag:blogger.com,1999:blog-2193349466100785977.post-38575639934256584692014-09-14T16:39:00.000+02:002014-09-14T16:42:42.858+02:00Tangent Spine<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2OakQxaAqxQmnmejru6LvRjBzXEro3iBIEy0ue0ZlhhV06FvV2BS68RiTmDD96Ef2_bOF01u5-1jTIo2C8aHCRtciDO7oVc3YJLqHMQKcPKX6HfKLQA3A6Wr2oKRVSiQBkq6dRfsuLHg/s1600/tangentSpineCover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2OakQxaAqxQmnmejru6LvRjBzXEro3iBIEy0ue0ZlhhV06FvV2BS68RiTmDD96Ef2_bOF01u5-1jTIo2C8aHCRtciDO7oVc3YJLqHMQKcPKX6HfKLQA3A6Wr2oKRVSiQBkq6dRfsuLHg/s1600/tangentSpineCover.png" height="225" width="400" /></a></div>
<br />
Combining the best out of FK and IK spine rigs and adding even more. IK/FK spines are allow much control over the torso but are tedious to animate. A lot of layered controls on top of each other can require some counter rotating and produce gimble issues. With this setup the animator can rotate from various points on the spine. Similar to FK but FK requires the user to distribute the rotation across multiple controls if fluid shapes are required. And they always are.<br />
On my setup most of the posing is handled with the rotation of the two main controls and can be further refined using the tangent controls and the translation of the main controls.<br />
Advanced volume preservation controls plus the IK like behavior that can be achieved with this setup are great for stylized animations. <br />
<br />
See it in action: <br />
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/106099098" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/106099098">Tangent Spine Rig</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com2tag:blogger.com,1999:blog-2193349466100785977.post-50938014488301607552014-09-08T23:32:00.000+02:002014-09-08T23:32:04.353+02:00Variable foot rig<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQsOODm16am4umaQ21v4nlMY3mN8W_kIAg7h1QpSUA56N2TyCi-6yPcynOSHI_EBvFYAXzxewR7QtVHALlRAYDWRzvma7F7dmPKc3c2ESvOnAsdltaaLF8Txhz3b0mLGJiZW_u111jYiE/s1600/footCover.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQsOODm16am4umaQ21v4nlMY3mN8W_kIAg7h1QpSUA56N2TyCi-6yPcynOSHI_EBvFYAXzxewR7QtVHALlRAYDWRzvma7F7dmPKc3c2ESvOnAsdltaaLF8Txhz3b0mLGJiZW_u111jYiE/s1600/footCover.png" height="355" width="640" /></a></div>
The foot is one of the areas that doesn't get special attention when rigging a character. Many rigs have the standard inverse foot setup that makes the animator slide a bunch of attributes and try to get something they like.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHq681x1OSzICLMhuwVPcOnKHZSs18gs6cBN-339jnYQ4hOYzIkzqVWOsw5XdKUtQxSlKZUrXnAQ-VODmE8HYARtPtfg3QGjXd7F7tR75RNwLY3FVFESOECNBHN14MDiPv41M1Q2wMN3c/s1600/footCtrls.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHq681x1OSzICLMhuwVPcOnKHZSs18gs6cBN-339jnYQ4hOYzIkzqVWOsw5XdKUtQxSlKZUrXnAQ-VODmE8HYARtPtfg3QGjXd7F7tR75RNwLY3FVFESOECNBHN14MDiPv41M1Q2wMN3c/s1600/footCtrls.png" height="217" style="cursor: move;" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm_t6USDHTsUdjn9bsG6rv_DutXNAjXfIROQjxz8BVCRUjxUPUWAdAfF2CDg-MdDRI-aTBROCOCANkbeP45PTB_LypStWT4Vtp2HMvy-YZj48tAy6aiU6nn9GnWZisoXbEF6vxkVTq29M/s1600/attributes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm_t6USDHTsUdjn9bsG6rv_DutXNAjXfIROQjxz8BVCRUjxUPUWAdAfF2CDg-MdDRI-aTBROCOCANkbeP45PTB_LypStWT4Vtp2HMvy-YZj48tAy6aiU6nn9GnWZisoXbEF6vxkVTq29M/s1600/attributes.png" style="cursor: move;" /></a></div>
<br />
<br />
I like to keep everything on the character without messing too much with sliding numbers in tiny boxes. That way the animator can quickly experiment with poses and get organic shapes.<br />
<br />
Here is the setup I came up with:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/105595781" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/105595781">Variable foot</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
As seen in the video the foot is really flexible and allows for easy posing. The bend control can moved to any point along the foot and make the foot bend in any direction. The only slider that requires the animator to take his/hers eyes of the character is used to control the falloff. Falloff control allows the foot to peel nicely from the ground or to bend at a harsh angle. The foot uses the same rig for both IK and FK modes.<br />
<br />
The model is owned by Irie Studios. </div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com4tag:blogger.com,1999:blog-2193349466100785977.post-3028421132796999782014-09-01T12:59:00.000+02:002014-09-01T12:59:08.853+02:00Revolve node<div dir="ltr" style="text-align: left;" trbidi="on">
One more custom node done in Fabric Splice. This time I tackled a couple of things at once. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisQhKvtlP482Ep6CVWTVTKOiu4XHH0qbaRKGUwDGF6S2uf8dXgE8WfwCdeEeB4BBWJCAku_YunyH0cIeR0DdgwCT1Y3gvNoIe6R9QU-5cokIwZjrQsib0tPSNVHzdWrH8XVAu_PzLs0Es/s1600/revolve.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisQhKvtlP482Ep6CVWTVTKOiu4XHH0qbaRKGUwDGF6S2uf8dXgE8WfwCdeEeB4BBWJCAku_YunyH0cIeR0DdgwCT1Y3gvNoIe6R9QU-5cokIwZjrQsib0tPSNVHzdWrH8XVAu_PzLs0Es/s1600/revolve.png" height="218" width="400" /></a></div>
<br />
First was wheel rotation. This solution is based on the objects world matrix instead of a position value or something similar. The idea was based on one of Rigging Dojo's AIR sessions with Raf Anzovin. The object can have as many controls as you want and it will always calculate the correct roll. I added the possibility to connect a parent inverse matrix so the setup can be a child of some other node. Useful when having world positioning controls on a rig.<br />
<br />
The next was a parameter to drive objects along a curve. Similar to the rotation, only the output is different. Instead of outputting an angle value the parameter is a value between 0 and 1.<br />
<br />
And the last was instancing. A mesh will be projected on the custom splice curve and it is driven by the parameter value. I extended the BezierXfo class that comes with Splice and added a new function that takes a number of instances and a starting offset as the input. In this case parameter is that offset and it tells the function where the first element should be on the curve. Then the other elements are projected onto the curve with an equal distance between them.<br />
<br />
Check out the video bellow to see the node doing its thing:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/104909272" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/104909272">Revolve Node in Maya</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-38335054685757263722014-08-24T23:23:00.000+02:002014-08-24T23:37:35.317+02:00Delta Mush<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
I've been really busy the last couple of months and things were quiet on my blog. In the meantime I started getting into the Maya API and jumped on the Fabric Splice train. I have a couple of nodes that I want to demo and I will start with the first deformer that I ever wrote. A prototype of the Delta Mush deformer:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYk3M9B8DCqZVpUt1XiyhXXWWUin1ry-zdEmEeAGMprlLrFMrfcMEpPbGtscZPK70NlyOdFZipb3l9Qh9KxTL6gnfI_3c1-4iknw8lilTIiE4WR3Xd-wT3DXKI397LbVrodI6BkTF0ax0/s1600/banner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYk3M9B8DCqZVpUt1XiyhXXWWUin1ry-zdEmEeAGMprlLrFMrfcMEpPbGtscZPK70NlyOdFZipb3l9Qh9KxTL6gnfI_3c1-4iknw8lilTIiE4WR3Xd-wT3DXKI397LbVrodI6BkTF0ax0/s1600/banner.png" height="259" width="640" /></a></div>
<br />
<br />
The deformer is based on the Delta Mush deformer in Voodoo. You can find more detail about it in <a href="http://dl.acm.org/citation.cfm?id=2614144">this Siggraph paper</a>.<br />
The paper explains it functionality and beside the information they give you all you need is the math to calculate everything.<br />
Maya does not hava a Laplacian smooth deformer so I had to incorporate it in the node. Thanks to <a href="https://vimeo.com/odionne">Olivier Dionne</a> for sending me a link to <a href="http://www.ann.jussieu.fr/~frey/papers/meshing/Bray%20N.,%20Notes%20on%20mesh%20smoothing.pdf">this document</a> which contains the necessary calculations for the smoothing.<br />
<br />
The node is written in <a href="http://fabricengine.com/">Fabric Splice</a> for Maya. The good thing is that the deformer does not depend on Maya and can be used in any of the Splice implementations (Softimage, 3DS Max among others).<br />
In <a href="https://groups.google.com/forum/#!topic/creationplatform/EMxjQ3U9vVk">this thread</a> you can find a lot of useful info on the math behind this and also how to get some of the point data from the mesh. It is great that Roy Nieterau shared it with everyone. <br />
<br />
Splice is still under development and even though some things are missing it is already an amazing tool. Especially because of its cross platform compatibility. And how easy it is to do some low level stuff really fast. I am also looking forward to <a href="https://vimeo.com/103180191">Kraken</a>, an open source cross platform rigging tool.<br />
<br />
The model used in the video is downloaded from <a href="http://www.hippydrome.com/">www.hippydrome.com</a>. A great model and the site is a great resource for everyone.<br />
<br />
The video below is showing the deformer in action. I just added some bones and bound the mesh using one influence per vertex, without any weight painting.<br />
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/104248880" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/104248880">Delta Mush Deformer in Maya</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com7tag:blogger.com,1999:blog-2193349466100785977.post-70992627809094987712014-01-22T13:19:00.000+01:002014-01-22T13:19:08.858+01:00Mirror across sphere rig<div dir="ltr" style="text-align: left;" trbidi="on">
In my <a href="http://www.robotsquids.blogspot.com/2014/01/mirroring-across-plane-tutorial.html">previous post</a> I explained the math and maya nodes you need to create mirroring of positions in 3D space. Here is a different, more complicated, example where I created a rig that mirrors across any point on a sphere. I used a sphere but it can be any object you want. The only limitation would be a low poly mesh where the mirrored positions would snap since there would not be enough polygons that would provide data on normals that would ensure a smooth transition. In that case I would probably add some nurbs patches that match the poly shape and use their normals.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/84761297" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/84761297">Mirroring across a sphere</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
Questions and comments are welcome.<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-33262208333141040832014-01-19T21:38:00.004+01:002014-01-21T16:07:02.353+01:00Mirroring across a plane - Tutorial<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Mirroring a point across a plane (ex. YZ plane) seems easy but it requires a couple of math tricks to make it work every time. The main tool for achieving this effect is the dot product. It gives us the projections of our point on Y and Z axes and with those values we have almost everything we need for our mirrored position. With a few Maya nodes we can implement this in a scene:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEmTpmUoh3fAk4LOAN-1dr67EHI1kmuNS5WhzdoIxn5bW8FtJC24J5-Nj-d7jOE5UB27fel97ZwwFg_-94ysKNI39WZBqh5nu_BYS-3TEcBKQVnstBm9Q3hJHxKEFKXWCNbRWA5WHAeZE/s1600/Mirror+across+a+plane+Nodes.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEmTpmUoh3fAk4LOAN-1dr67EHI1kmuNS5WhzdoIxn5bW8FtJC24J5-Nj-d7jOE5UB27fel97ZwwFg_-94ysKNI39WZBqh5nu_BYS-3TEcBKQVnstBm9Q3hJHxKEFKXWCNbRWA5WHAeZE/s1600/Mirror+across+a+plane+Nodes.JPG" height="218" title=" " width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The completed node graph</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<br />
Same calculations can be done to mirror any object, vertices, curves...<br />
I go into more detail on how this works in the video:</div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/84532853" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/84532853">Mirror across a plane - Tutorial</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
Edit:<br />
This technique was more of a demonstration of some math tricks that could be more useful in many other cases. To do the same mirroring the easy way you can just take the world position of the first object and multiply the x value by -1 and you will get the mirrored position. That is what I would do in a real case scenario because it is faster and more efficient then doing all the math stuff.</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-79465996288628363822014-01-16T17:17:00.001+01:002014-01-16T17:18:27.147+01:00Skeleton pose manager - Free script<div dir="ltr" style="text-align: left;" trbidi="on">
This script is inspired by some of <a href="http://td-matt.blogspot.com/">TD Matt's blog</a> posts where he goes into detail about skinning and rigging meshes in different poses. He was hosting a script that did the similar job as this one (at least I think it did the same job because I never got to use his script) but the download link is broken. So I made my own version of the tool.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj4-zameCT3W-s2ZULhtEzkypXztxL4cQfS3MmY7kJhs8KGwFvfXIT_o8DZZaXj2N1VOfO6FzjMb9N7kG_0FvF4QhRiGcPBfNABAVyfbjTu0j_22lHIhtPk6qRQERjuX2xr4nHUy4v03M/s1600/skeleton+pose+tool.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title=" "><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj4-zameCT3W-s2ZULhtEzkypXztxL4cQfS3MmY7kJhs8KGwFvfXIT_o8DZZaXj2N1VOfO6FzjMb9N7kG_0FvF4QhRiGcPBfNABAVyfbjTu0j_22lHIhtPk6qRQERjuX2xr4nHUy4v03M/s1600/skeleton+pose+tool.JPG" height="336" title=" " width="640" /></a></div>
<br />
<br />
A few things to keep in mind while using the tool:<br />
- The pose data for every joint is written to a custom attribute and the data is preserved if the joints are copied. So make sure to delete it from duplicated joints like those for IK/FK switching so they stay in place while you switch poses on your bind joints.<br />
- When mirroring poses from one side to the other make sure to select joints down the chain because the data is stored in the object space.<br />
- The mirroring function uses the "L_" and "R_" prefixes to find the correct joints. Edit the mirrorPrefixs variable in the script to the prefixes you use. I know that it is not good to hard code stuff but I did it here for the sake of simplicity.<br />
- I was playing around with pymel classes for ui elements and tried to write everything in an object oriented way so it might look a bit weird to you who are used to using flags to set up ui elements. When writing this way there are a lot more lines of code but everything is easy to read and a lot easier to edit.<br />
<br />
Hope you find the script useful and let me know if you find any bugs. I will fix them as soon as I can. <br />
<br />
<a href="https://www.dropbox.com/s/m7ymwlbpls7t75w/ah_skeletonPoseManager.py">DOWNLOAD</a></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-48298789508845071622013-12-24T13:13:00.000+01:002014-01-19T21:52:23.277+01:00Elephant Rig<div dir="ltr" style="text-align: left;" trbidi="on">
As promised here is a video showing the rig. I have also included a small demonstration of the script that I wrote to automate the trunk creation. The technique for the variable FK rig was demonstrated by Jeff Brodsky in <a href="https://vimeo.com/49353110">this video</a>.<br />
I was only responsible for the elephant rig and deformation. Everything else is done by the guys at <a href="http://iriestudios.com/">Irie studios</a>.<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/82614606" webkitallowfullscreen="" width="640"></iframe> <br />
<a href="http://vimeo.com/82614606">Elephant Ride rig demo</a> from <a href="http://vimeo.com/user15109190">Armin Halac</a> on <a href="https://vimeo.com/">Vimeo</a>.<br />
<br />
<i>The video, music and registered trademarks or trademarks are property of their respective owners.</i></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com4tag:blogger.com,1999:blog-2193349466100785977.post-5158590364712622042013-12-21T09:33:00.000+01:002013-12-21T09:33:34.892+01:00Javis Jones's sliding pivot foot roll<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Check out Javis Jones's version of the sliding pivot foot roll created in Modo and go to <a href="http://javisjones.com/2013/content/spfrrig-3291/">his site to download the file</a>.<br />
<br />
</div>
<iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="//player.vimeo.com/video/82320756?color=ff9900" webkitallowfullscreen="" width="500"></iframe> <br />
<a href="http://vimeo.com/82320756">Sliding Pivot Foot Roll in Modo WIP</a> from <a href="http://vimeo.com/javisjones">Javis Jones</a> on <a href="https://vimeo.com/">Vimeo</a>.</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-69276504007114929162013-12-20T09:39:00.000+01:002013-12-20T09:39:15.048+01:00Elephant Ride<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
I had the pleasure to work with the great guys at <a href="http://iriestudios.com/">Irie studios</a> on the Elephant Ride video. I was hired to create a rig for the elephants. As requested I used Maya Muscle for additional deformations and muscle simulation. I will record a video that showcases the rig and post it in a few days.<br />
The video premiered on <a href="https://myspace.com/brainfeeder/video/dprosper-flying-lotus-elephant-ride/109480623">Myspace</a> yesterday. <br />
</div>
<iframe allowfullscreen="" allowtransparency="true" frameborder="0" height="270" mozallowfullscreen="" src="https://myspace.com/play/video/dprosper-flying-lotus-elephant-ride-109480623-112148742" webkitallowfullscreen="" width="480"></iframe><br />
<a href="https://myspace.com/brainfeeder/video/dprosper-flying-lotus-elephant-ride/109480623">Video Premiere: D. Prosper, “Elephant Ride”</a> from <a href="https://myspace.com/brainfeeder">BRAINFEEDER</a> on <a href="https://myspace.com/">Myspace</a>.<br />
<br />
Here's a little rig sneak peak:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh909gWI7K3Ljjr1F9lsPIaTDrHVQiNetjFNgG4IB-s9qil41gbcejgneMhc0dMQvDIS_OPc-GkXyRGN4GNa3I0YDZd8e0XZ1mGbaNaB_ay6Lhe69-9LhfosG0-Q8f3sNHZxrujQQFigZ4/s1600/elephant_sneek.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh909gWI7K3Ljjr1F9lsPIaTDrHVQiNetjFNgG4IB-s9qil41gbcejgneMhc0dMQvDIS_OPc-GkXyRGN4GNa3I0YDZd8e0XZ1mGbaNaB_ay6Lhe69-9LhfosG0-Q8f3sNHZxrujQQFigZ4/s640/elephant_sneek.JPG" title=" " width="640" /></a></div>
</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com1tag:blogger.com,1999:blog-2193349466100785977.post-56449475766563517692013-09-19T17:15:00.000+02:002013-09-19T17:15:36.032+02:00Sliding Pivot Foot Roll Tutorial<div dir="ltr" style="text-align: left;" trbidi="on">
In this tutorial I show how you can create a sliding pivot foot roll using nodes. The first part of the rig is the same as <a href="http://chrislesage.com/character-rigging/using-a-unit-vector-to-make-a-cylindrical-foot-roll/">Chris Lesage's rig</a> but instead of an expression i used nodes. And I only add some stuff on top of that to make it work for any shape.<br />
Make sure to visit <a href="http://chrislesage.com/">Chris's site</a> and check out his awesome reel.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq0w2G8fwvp6l3u-2DaEdwJhB0hTLmdkt0qE9aAd-yT-PCryHzPOEcRrk2kh9I-stUN7hsEz8iXHYNGNvxQMHlOgL7PIt0vmsVRD2NL4bMga7AC372YVRcIxLufNVzyh-Kunc7F2ZDiJA/s1600/movingPivotGraph.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq0w2G8fwvp6l3u-2DaEdwJhB0hTLmdkt0qE9aAd-yT-PCryHzPOEcRrk2kh9I-stUN7hsEz8iXHYNGNvxQMHlOgL7PIt0vmsVRD2NL4bMga7AC372YVRcIxLufNVzyh-Kunc7F2ZDiJA/s640/movingPivotGraph.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The final node graph</td></tr>
</tbody></table>
<br />
<div>
<br /></div>
<div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/74931978" webkitallowfullscreen="" width="640"></iframe>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com7tag:blogger.com,1999:blog-2193349466100785977.post-57093242332911024542013-09-12T10:39:00.001+02:002013-09-19T17:11:30.783+02:00Pymel Bone Split Tutorial part 02<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
This part will conclude the writing of the bone split script . Here I will show you how to generate the new joints and to position them on the calculated locations. And also how to recreate the hierarchy.<br />
<br />
Any comments and questions are welcome.<br />
Thanks for watching.<br />
<br />
<a href="http://robotsquids.blogspot.com/2013/09/pymel-bone-split-tutorial.html">Part 01</a><br />
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/74357119" webkitallowfullscreen="" width="640"></iframe></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0tag:blogger.com,1999:blog-2193349466100785977.post-61578616023124450702013-09-09T01:05:00.000+02:002013-09-12T10:41:12.640+02:00Pymel Bone Split Tutorial part 01<div dir="ltr" style="text-align: left;" trbidi="on">
In this tutorial I will show you how to write a script that can evenly split a bone and add new joints. This is especially useful when you need to add twist joints on an existing bone. It will automatically rename the new joints and keep the original bones orientation.<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
My terminology might be wrong in some places so sorry for that.<br />
<br />
Some experience with Pymel and Maya scripting is required.<br />
<br />
If you have any questions please leave them in the comments.<br />
<br />
Part 01<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="//player.vimeo.com/video/74068817" webkitallowfullscreen="" width="640"></iframe></div>
<br />
<a href="http://robotsquids.blogspot.com/2013/09/pymel-bone-split-tutorial-part-02.html">Part 02</a></div>
Anonymoushttp://www.blogger.com/profile/14423231397301666759noreply@blogger.com0