{"id":84,"date":"2025-10-23T18:58:18","date_gmt":"2025-10-24T01:58:18","guid":{"rendered":"https:\/\/motionoperators.com\/blog\/?p=84"},"modified":"2025-10-23T18:58:18","modified_gmt":"2025-10-24T01:58:18","slug":"introducing-mopscam","status":"publish","type":"post","link":"https:\/\/motionoperators.com\/blog\/index.php\/2025\/10\/23\/introducing-mopscam\/","title":{"rendered":"Introducing MOPsCam"},"content":{"rendered":"\n<p>I&#8217;ve been working on this one for quite a while, and it was a lot of work to get the UI tightened up and working smoothly, but it&#8217;s finally ready for release: the <strong>MOPs+ Camera<\/strong>!<\/p>\n\n\n\n<p>This is a KineFX-driven camera rig with all kinds of fun controls, fully interactive in the viewport. It&#8217;s designed first and foremost to be fun to use, but also to make it easy to animate realistic movement. There&#8217;s a lot of subtle stuff in this rig to make it behave like a proper camera rig should without fussy controls or counter-animation. Here&#8217;s a quick tour:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/crane.mp4\" playsinline><\/video><\/figure>\n\n\n\n<p>The camera and optional crane rig both have fully interactive viewport-driven controls thanks to Houdini&#8217;s Python viewer states. Almost every part of the rig can be easily animated without needing to mess with the parameter interface.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/www.motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/nodal.mp4\"><\/video><\/figure>\n\n\n\n<p>The camera itself (both with and without the crane) has a built-in adjustable nodal offset. Default cameras in Houdini rotate right around the film back, giving you a very CG feel when panning the camera. The nodal offset changes the rotation pivot to any custom position, rotating much like a real film camera would on a tripod or crane.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/www.motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/gimbal.mp4\"><\/video><\/figure>\n\n\n\n<p>The crane rig includes a handy gimbal option that keeps the camera level while rotating the boom or column around. <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/www.motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/track.mp4\"><\/video><\/figure>\n\n\n\n<p>There&#8217;s also easy controls for placing and animating the camera on a track curve. Any offset from the camera rig to the track is preserved so you can make easy adjustments. <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/www.motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/frustum.mp4\"><\/video><\/figure>\n\n\n\n<p>There&#8217;s also a simple built-in depth-of-field control with an optional visualizer that shows you exactly where the focal plane of the camera will be. You can focus at a constant distance, or choose an object to be your target, then use the viewport controls to fine-tune the exact distance as needed. The frustum geometry can be exported to a separate SOP network with a single click, too, for easy frustum culling!<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/www.motionoperators.com\/blog\/wp-content\/uploads\/2025\/10\/kinefx.mp4\"><\/video><\/figure>\n\n\n\n<p>Finally, the whole rig is driven by KineFX, and with a single click you can export the rig to a separate SOP network that the camera will read from. Animate the crane rig to rough out your camera, then open up the KineFX geometry directly and go nuts! If you don&#8217;t like the built-in camera shake, create your own with Houdini&#8217;s native SOPs or use MOPs+ tools however you like.<\/p>\n\n\n\n<p>I think this is going to be a really fun tool for all you animators out there!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other updates<\/h2>\n\n\n\n<p>There&#8217;s a few other important fixes in the new update, too. <strong>MOPs+ Waveforms<\/strong> has been updated to unify the apparent wavelengths of the different wave functions so they have peaks and valleys at equivalent places. <strong>MOPs+ Camera Blender<\/strong> gets a few bugfixes and introduces smooth interpolation for 3 cameras (previously you needed 4 to get a smooth curve). <strong>MOPs+ Typography<\/strong> now has controls for tapering and twisting in the extrusion process. There&#8217;s a few other minor tweaks and quality-of-life fixes detailed in the <a href=\"https:\/\/www.motionoperators.com\/changelog\/\">changelog<\/a>.<\/p>\n\n\n\n<p>The only downside to all this is that in order to get the full functionality of the Python state handles in this camera, I&#8217;ve had to update the minimum Python version of MOPs+ to <strong>3.9<\/strong>, and the minimum Houdini version to <strong>19.5<\/strong>. I think most users like to keep more up-to-date than that so I hope this isn&#8217;t a dealbreaker for any of you.<\/p>\n\n\n\n<p>The new tools are out right now, so get downloading and have fun!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been working on this one for quite a while, and it was a lot of work to get the UI tightened up and working smoothly, but it&#8217;s finally ready for release: the MOPs+ Camera! This is a KineFX-driven camera rig with all kinds of fun controls, fully interactive in the viewport. It&#8217;s designed first [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-84","post","type-post","status-publish","format-standard","hentry","category-updates"],"_links":{"self":[{"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/84","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":1,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/84\/revisions"}],"predecessor-version":[{"id":85,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/84\/revisions\/85"}],"wp:attachment":[{"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=84"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=84"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/motionoperators.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}