{"id":426,"date":"2019-11-14T07:42:31","date_gmt":"2019-11-14T15:42:31","guid":{"rendered":"http:\/\/fx-td.com\/houdiniandchill\/?p=426"},"modified":"2019-11-14T07:48:27","modified_gmt":"2019-11-14T15:48:27","slug":"archived-post-by-friedasparagus-4","status":"publish","type":"post","link":"http:\/\/fx-td.com\/houdiniandchill\/2019\/11\/14\/archived-post-by-friedasparagus-4\/","title":{"rendered":"Archived post by friedasparagus"},"content":{"rendered":"<p class=\"\">Hey! Sorry for missing all the rigging fun (!) here&#8230; Unfortunately discord has been squeezed out of the every day happenings \ud83d\ude26  @TOAD$TORM One approach you could take to a planar lookat is to slightly bastardise the build in lookat constraint. The lookat constraint uses the same logic that you might be used to in the `maketransform(<a href=\"mailto:v@z\" >v@z<\/a>, <a href=\"mailto:z@y\" >z@y<\/a>)` vex function &#8211; i.e. the up axis gets corrected to form a rigid transform after the z and x axes have been determined. We can leverage that to keep the resulting &#8216;forward&#8217; vector at 90 degrees to a given &#8216;up&#8217; vector by switching them around: Set the &#8216;lookat&#8217; target to the &#8216;up&#8217; vector and the &#8216;lookat-up&#8217; target to the position of the driver object &#8211;  the result of which being that the constraint output swivels around the axis set by the &#8216;lookat&#8217; input. By default this would give us a transform with the &#8216;Y&#8217; axis pointing towards the driver, but fortunately the lookat constraint lets us set which axis points to &#8216;target&#8217; and &#8216;up&#8217; which will give us something like this<\/p>\n<p class=\"\">The other potentially nifty thing here is that because we&#8217;re setting the &#8216;lookat&#8217; based up the DRIVEN objects own world space, we can modify the DRIVEN objects orientation and the constraint will continue to swivel around its own axis<\/p>\n<p class=\"\">And here&#8217;s the belated example of rigging a planar chain of more than 2 bones with a kind of &#8216;stiffness&#8217; control that allows us to control how the solution is distributed between two-bone segments&#8230; Maybe it&#8217;s useful\/helpful?<\/p>\n<p>Attachments in this post: <br \/><a href=\"http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20194211\/14\/19\/lookat_zx_plane.hip\">http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20194211\/14\/19\/lookat_zx_plane.hip<\/a><br \/><a href=\"http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20194211\/14\/19\/zig_zag_bones_with_quasi_stiffness.hip\">http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20194211\/14\/19\/zig_zag_bones_with_quasi_stiffness.hip<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey! Sorry for missing all the rigging fun (!) here&#8230; Unfortunately discord has been squeezed out of the every day happenings \ud83d\ude26 @TOAD$TORM One approach you could take to a planar lookat is to slightly bastardise the build in lookat constraint. The lookat constraint uses the same logic that you might be used to in &hellip; <a href=\"http:\/\/fx-td.com\/houdiniandchill\/2019\/11\/14\/archived-post-by-friedasparagus-4\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Archived post by friedasparagus<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/426"}],"collection":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/comments?post=426"}],"version-history":[{"count":0,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/426\/revisions"}],"wp:attachment":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/media?parent=426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/categories?post=426"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/tags?post=426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}