{"id":1707,"date":"2020-06-12T11:20:35","date_gmt":"2020-06-12T11:20:35","guid":{"rendered":"http:\/\/blog.andy-coates.com\/?p=1707"},"modified":"2020-06-15T19:10:33","modified_gmt":"2020-06-15T19:10:33","slug":"momentum-r1-0-0","status":"publish","type":"post","link":"https:\/\/blog.andy-coates.com\/?p=1707","title":{"rendered":"Momentum r1.0.0"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"489\" src=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/momentum-header_v003-1024x489.png\" alt=\"\" class=\"wp-image-1718\" srcset=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/momentum-header_v003-1024x489.png 1024w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/momentum-header_v003-300x143.png 300w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/momentum-header_v003-768x367.png 768w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/momentum-header_v003.png 1228w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br><strong>INTRO<\/strong><br>Momentum is a Cinema4D rig to output camera positional data in the <a rel=\"noreferrer noopener\" href=\"https:\/\/stype.tv\/\" target=\"_blank\">StypeHF<\/a> format over a network. This is aimed at the pre-production workflow when using <a rel=\"noreferrer noopener\" href=\"https:\/\/www.disguise.one\/en\/products\/xr\/\" target=\"_blank\">disguise XR<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BASICS<\/strong><br>Momentum is packaged in a simple c4d project and consists of a Xpresso tag and a python script to output the data in the StypeHF format, not all of the StypeHF fields are sent by momentum we only send the following, packet number and time code omitted.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Poz X,Y,Z<\/li><li>Rotate X,Y Z<\/li><li>FOV X<\/li><li>Aspect Ratio (This is forced to 1.7777 this only works in HD)<\/li><li>Focus (This is default to zero, momentum does not take into account zoom data)<\/li><li>Zoom (This is default to zero, momentum does not take into account zoom data)<\/li><li>K1 (This is default to zero, will be overridden by disguise)<\/li><li>K2 (This is forced to zero, will be overridden by disguise)<\/li><li>PA Width (This is default to 9.59 standard)<\/li><li>Centre X (This is default to zero, momentum does not take into account zoom data)<\/li><li>Centre Y (This is default to zero, will be overridden by disguise)<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"605\" src=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1024x605.png\" alt=\"\" class=\"wp-image-1709\" srcset=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1024x605.png 1024w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-300x177.png 300w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-768x454.png 768w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1536x908.png 1536w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MOMENTUM First glance<\/strong><br>The above screenshot shows what you will see when opening Momentum, this is a basic scene with a stage and some camera positions key framed in the timeline. After hitting play the tracking data will be transmitted and any changes updated in real time upon pressing stop the data will stop being transmitted.<br>Each packet is transmitted per frame so to adjust the packet rate please change the frame rate of your c4d project. Note that this is not explicitly locked to the frame rate  so heavy scenes will experience a drop in frame rate but low poly scenes on a good computer will be smooth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AXIS Rotation<\/strong><br>This is tested to be compatible up to disguise release 17.3 (pending) and the XR Beta branch. The axis rotation order must be set to ZXY as shown in the screenshot below for disguise to pick up the  data correctly and handle roll correctly. <br><br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"246\" src=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-3.png\" alt=\"\" class=\"wp-image-1712\" srcset=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-3.png 828w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-3-300x89.png 300w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-3-768x228.png 768w\" sizes=\"auto, (max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Target Tag<\/strong><br>Because of this axis order the <strong>Target Tag<\/strong> in cinema will behave strangely, I&#8217;m working on a fix for this as of 12\/06\/2020<br>Solution found for the target tag see below image and description 15\/06\/2020<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"504\" src=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/Targetfixpng-1024x504.png\" alt=\"\" class=\"wp-image-1720\" srcset=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/Targetfixpng-1024x504.png 1024w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/Targetfixpng-300x148.png 300w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/Targetfixpng-768x378.png 768w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/Targetfixpng.png 1226w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To get the target tag to work correctly with the required Axis rotation you need to add in an &#8220;Up Vector&#8221; null. Make the Up Vector null child of your target null or object and position it 0.01 cm on the Y axis in relation to your target and add this to the target Up Vector field.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>IP &amp; Port Number<\/strong><br>Clicking on the Xpresso tag will open up a window with the option to send the positional data to a specific IP address and port number. Please not this isn&#8217;t tested across large networks so if you experience any issues please feed back via the email at the end of this post<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"271\" src=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1.png\" alt=\"\" class=\"wp-image-1710\" srcset=\"https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1.png 938w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1-300x87.png 300w, https:\/\/blog.andy-coates.com\/wp-content\/uploads\/2020\/06\/image-1-768x222.png 768w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Credits<\/strong><br>Thank you so much to the following people for help with coding beta testing and fault finding of momentum, without this teamwork non of this would have happened<br>Karl Bromage &#8211; <a rel=\"noreferrer noopener\" href=\"http:\/\/www.studio-onefour.co.uk\/\" target=\"_blank\">Studio One Four<\/a><br>Andreas Culius &#8211; <a href=\"https:\/\/nocte.co.uk\/\" target=\"_blank\" rel=\"noreferrer noopener\">nocte designs<\/a><br>Rich Porter &#8211; <a href=\"http:\/\/www.wearethehive.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Hive<\/a> &amp; <a href=\"https:\/\/www.youtube.com\/channel\/UCCLh87-XBx4x18I3pRLUS9A\" target=\"_blank\" rel=\"noreferrer noopener\">YouTube Channel<\/a><br>Scott Millar &#8211; <a href=\"https:\/\/longerdays.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Longer Days<\/a><br>Lewis Kyle White &#8211; <a href=\"http:\/\/www.lewiskylewhite.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">LKW<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DOWNLOAD MOMENTUM<\/strong><br>Download Momentum from GitHub via the link below, any comments or issues please get in touch via andy(at)andy-coates(dot)com<br><a href=\"https:\/\/github.com\/andydenniscoates\/momentum\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/andydenniscoates\/momentum<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>INTROMomentum is a Cinema4D rig to output camera positional data in the StypeHF format over a network. This is aimed at the pre-production workflow when using disguise XR BASICSMomentum is packaged in a simple c4d project and consists of a &hellip; <a href=\"https:\/\/blog.andy-coates.com\/?p=1707\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[181,371,350,369,372,370],"class_list":["post-1707","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c4d","tag-camera-tracking","tag-disguise","tag-stype","tag-unreal-engine","tag-virtual-production"],"_links":{"self":[{"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/posts\/1707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1707"}],"version-history":[{"count":5,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/posts\/1707\/revisions"}],"predecessor-version":[{"id":1722,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=\/wp\/v2\/posts\/1707\/revisions\/1722"}],"wp:attachment":[{"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.andy-coates.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}