{"id":51,"date":"2008-05-02T19:16:35","date_gmt":"2008-05-03T02:16:35","guid":{"rendered":"http:\/\/www.davidcorral.com\/?p=51"},"modified":"2014-03-27T00:12:15","modified_gmt":"2014-03-27T07:12:15","slug":"the-way","status":"publish","type":"post","link":"http:\/\/www.davidcorral.com\/?p=51","title":{"rendered":"The Way (maya muscle system)"},"content":{"rendered":"<p>Two years ago I was interviewed by an <a href=\"http:\/\/www.arteyanimacion.es\" target=\"_blank\">animation blog<\/a> before I moved to L.A. The technique looks kinda old now but maybe someone will find it interesting.<\/p>\n<p>This is part of the inverview, go to <a href=\"http:\/\/www.arteyanimacion.es\/2008\/05\/way-david-corral-english-version.html\" target=\"_blank\">arteyanimacion<\/a> for the whole thing. Also you will find some cool resources and articles in that blog.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/cover.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-52\" title=\"cover\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/cover.jpg\" width=\"620\" height=\"767\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/cover.jpg 1212w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/cover-242x300.jpg 242w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/cover-827x1024.jpg 827w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p style=\"text-align: left;\"><strong>THE IDEA<\/strong><\/p>\n<div>\n<div>Actually it was more a technical than an artistic concern. I contacted Alex Huguet several years ago through a common friend and told him to work together in a project and I started to work with his model Rhinoman who has got very interesting proportions.<\/div>\n<\/div>\n<div>\n<p><strong>TECHNIQUE<\/strong><\/p>\n<p>The techniques were about creating a muscle from a simple curve, and then attach it to the extremes of that curve, as in the real life. It is as fusiform muscle but with the difference that you get a non linear deformer as it is attached to a curve.<\/p>\n<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rhinoman.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-50\" title=\"rhinoman\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rhinoman-267x300.jpg\" width=\"300\" height=\"337\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rhinoman-267x300.jpg 267w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rhinoman.jpg 695w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>From the wire deformer of Maya I created a series of tools in order to work with it as it was a muscle, controlling its hardness, influence are on the skin, etc.<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/tools.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-53\" title=\"tools\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/tools-300x268.jpg\" width=\"300\" height=\"268\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/tools-300x268.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/tools.jpg 518w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/tools.jpg\"><br \/>\n<\/a><\/div>\n<div>\n<p>A part from the muscle system, I developed a system of PSD (Pose Space Deformer), in order to correct not accurate deformations.<\/p>\n<p><strong>REALIZATION PROCESS<\/strong><\/p>\n<p>The Animation character rig has got standard biped functions. It was on the deformations where I could innovate a bit.<\/p>\n<\/div>\n<div>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rig.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-54\" title=\"rig\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rig-300x224.jpg\" width=\"300\" height=\"224\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rig-300x224.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rig-1024x767.jpg 1024w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/rig.jpg 1307w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">At the beginning I started to make every muscle from fusiform, but I realized the behavior was not what I was expecting as the anchorage system was too basic. It\u00e2\u20ac\u2122s very useful and it is ver fast to apply into a character, but the deformation is not as good as it should.<\/p>\n<p>Creating muscles from curves made their behavior much more realistic. I only had to draw the curve where I wanted the muscle and make the skin of the skeleton to follow the character.<\/p>\n<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/wire_vs_fusiform.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-55\" title=\"wire_vs_fusiform\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/wire_vs_fusiform-300x160.jpg\" width=\"300\" height=\"160\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/wire_vs_fusiform-300x160.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/wire_vs_fusiform.jpg 537w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>Calculating the length of the curve in a rest stage and comparing it with the actual stage I could give the value to the stretch\/squash. Then I painted the deformer weights in the desired area getting the muscular effect on the skin. Although the effect of the deformer does not allow sliding you can simulate this effect later with corrective shapes.<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/weighting.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-56\" title=\"weighting\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/weighting-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/weighting-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/weighting.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>In order to optimize the deformer\u00e2\u20ac\u2122s speed I created a small script to which calculates the influence of the deformer according to the distance between a vertex and the curve.<\/div>\n<div>\n<p><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/dropoff-copy.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-57\" title=\"dropoff copy\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/dropoff-copy-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/dropoff-copy-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/dropoff-copy.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Once the muscle deformers were created, instead of creating a tool of mirror for the weights (it\u00e2\u20ac\u2122s usually a very slow process even with API), I used the skincluster mirror weights, which is very fast.<\/p>\n<p>What I did was:<\/p>\n<p>&#8211; Get the deformer\u00e2\u20ac\u2122s weights, apply them to temporary mesh and bones and make a mirror weights to those temporary bones.<\/p>\n<p>&#8211; Once I had those temporary weights already in the mirror, I only had to apply them to the mirror deformer and erase the temporary objects.<\/p>\n<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorMuscle-copy.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-58\" title=\"mirrorMuscle copy\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorMuscle-copy-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorMuscle-copy-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorMuscle-copy.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorWeights-copy.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-59\" title=\"mirrorWeights copy\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorWeights-copy-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorWeights-copy-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/mirrorWeights-copy.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>For the PSD I created two utilities. In one hand the blendshape releaser, which was a cone giving the influence area made of Maya nodes.<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/PSD-copy.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-60\" title=\"PSD copy\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/PSD-copy-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/PSD-copy-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/PSD-copy.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>On the other hand I created a plug-in with Maya Python API in order to extract the blendshape corrector calculating the difference between each vertex local coordinates, the modeled mesh and the deformed mesh.<\/div>\n<div><a href=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/correctiveShape.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-61\" title=\"correctiveShape\" alt=\"\" src=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/correctiveShape-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/correctiveShape-300x225.jpg 300w, http:\/\/www.davidcorral.com\/wp-content\/uploads\/2011\/03\/correctiveShape.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>Once the blendshape corrector is extracted I only had to connect it to the blendshape releaser.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Two years ago I was interviewed by an animation blog before I moved to L.A. The technique looks kinda old now but maybe someone will find it interesting. This is part of the inverview, go to arteyanimacion for the whole thing. Also you will find some cool resources and articles in that blog. &nbsp; THE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=51"}],"version-history":[{"count":0,"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=\/wp\/v2\/posts\/51\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.davidcorral.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}