{"id":364,"date":"2017-09-25T22:32:07","date_gmt":"2017-09-26T03:32:07","guid":{"rendered":"http:\/\/ciraldo.stream\/uwm-vfx2\/?page_id=364"},"modified":"2017-09-26T19:54:56","modified_gmt":"2017-09-27T00:54:56","slug":"3d-camera-tracker","status":"publish","type":"page","link":"https:\/\/ciraldo.stream\/uwm-vfx2\/topics\/3d-camera-tracker\/","title":{"rendered":"3D Camera Tracker"},"content":{"rendered":"<h1>3D Camera Tracker<\/h1>\n<p>[ <a href=\"https:\/\/ciraldo.stream\/uwm-vfx2\/topics\/3d-camera-tracker\/\">Lecture Outline<\/a> ] [ <a href=\"https:\/\/ciraldo.stream\/uwm-vfx2\/topics\/3d-camera-tracker\/lab\/\">Lab Exercise<\/a> ] [ <a href=\"https:\/\/ciraldo.stream\/uwm-vfx2\/topics\/3d-camera-tracker\/homework\/\">Homework Project<\/a> ]<\/p>\n<p>The 3D Camera Tracker feature is used to combine real-world footage with computer-generated 3D text or visuals, even 2D stuff too.<\/p>\n<h2>Basic Tracking<\/h2>\n<p>Useful for simple tracking tasks. Fast to work with. Can be used to track the position of a single feature in some footage, or up to four features at once in order to also determine perspective, scale, rotation.<\/p>\n<p><strong>The basic steps are: <\/strong><br \/>\n <strong>(1)<\/strong> Track feature <strong>(2)<\/strong> Apply the results to a <strong>Target<\/strong>\u00a0(a layer or effect property.)<\/p>\n<p><strong>All tracking data is 2D.<\/strong> When <strong>applying<\/strong> tracked <strong>perspective<\/strong> to a <strong>target layer,<\/strong> the <strong>Corner Pin effect<\/strong> is used to <strong>simulate<\/strong> 3D depth. This effect is <em>actually a 2D effect.<\/em><\/p>\n<h2>3D Camera Tracking<\/h2>\n<p>Handy for more complex tracking. Generally used for <strong>tracking arbitrary surfaces<\/strong> of <strong>stationary objects<\/strong> in a <strong>moving shot,<\/strong>\u00a0and then applying that track data to 3D properties of layers.<\/p>\n<p>For example, in a handheld shot of a city, <strong>buildings, parked cars, and sleeping people<\/strong> would &#8220;track well&#8221; because they&#8217;re stationary, but <strong>moving cars and people<\/strong> would <strong>not.<\/strong> We could track some surface of a building and then put a 3D layer at that spot in 3D space.<\/p>\n<p><strong>The basic steps are:<\/strong><br \/>\n <strong>(1)<\/strong> Analyze Clip \/ &#8220;Solve The Camera&#8221; \u00a0<strong>(2)<\/strong> Find a &#8220;target plane&#8221; amongst the track points \u00a0<strong>(3)<\/strong> Create a 3D Null and Camera <strong>(4)<\/strong> Copy\/Paste properties (like <strong>position<\/strong>) from the 3D Null Layer onto some other 3D property (e.g., another layer&#8217;s 3D position property.)<\/p>\n<h2>Masking Out Moving Objects<\/h2>\n<p>With the 3D Camera Tracker, moving objects like people, cars, etc. <strong>can confuse the tracking analysis.<\/strong> It&#8217;s important to try and remove moving objects from the shot using techniques like masking, animated masking, mask tracking, rotobrush, etc.<\/p>\n<h2>Shadow Catcher<\/h2>\n<p>You can use the &#8220;Create Shadow Catcher&#8221; to create a special horizontal layer that only displays shadows.<\/p>\n<h2>Connecting 2D Layers To 3D Tracking Data<\/h2>\n<p>Sometimes you need to use the 3D Camera Tracker&#8217;s tracking data to <strong>control properties of a 2D layer.<\/strong> The 3D points in the tracking data need to be converted to 2D space on each frame. <strong>Expressions can help here.<\/strong><\/p>\n<p>First, <strong>enable expressions<\/strong> on the <strong>2D property<\/strong> that will be the &#8220;target&#8221; of the 3D data. For example, we might choose the\u00a0<strong>Bulge Center<\/strong>\u00a0property of a the <strong>Bulge<\/strong> effect.<\/p>\n<p>Then add the following expression:<\/p>\n<pre>\/\/ Use a variable to make an 'abbreviation' for the 3D Null Layer:\r\nmy3dLayer = thisComp.layer( \"nameOf3DNull\" );\r\n\/\/ Do the same for that layer's anchor point:\r\nmy3dAnchorPoint = my3dLayer.anchorPoint\r\n\/\/ Convert the 3D point to 2D space\r\nmy2dPoint = my3dLayer.toComp( my3dAnchorPoint );\r\n\/\/ Last line is the value that the property will use:\r\nmy2dPoint;<\/pre>\n<p>The expression above can also be written a lot more concisely, like this:<\/p>\n<pre>\/\/ Use a variable to make an 'abbreviation' for the 3D Null Layer:\r\nmy3dLayer = thisComp.layer( \"nameOf3DNull\" );\r\n\/\/ Convert the 3D point to 2D space. Last line will be value used for property.\r\nmy3dLayer.toComp( my3dLayer.anchorPoint );<\/pre>\n<p>Or simply:<\/p>\n<pre>my3dLayer = thisComp.layer( \"nameOf3DNull\" ); \r\nmy3dLayer.toComp( my3dLayer.anchorPoint )<\/pre>\n<p><strong>But,<\/strong> when starting out it can be helpful to be overly verbose with scripting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>3D Camera Tracker [ Lecture Outline ] [ Lab Exercise ] [ Homework Project ] The 3D Camera Tracker feature is used to combine real-world footage with computer-generated 3D text or visuals, even 2D stuff too. Basic Tracking Useful for simple tracking tasks. Fast to work with. Can be used to track the position of &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ciraldo.stream\/uwm-vfx2\/topics\/3d-camera-tracker\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;3D Camera Tracker&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":71,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-364","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/pages\/364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/comments?post=364"}],"version-history":[{"count":10,"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/pages\/364\/revisions"}],"predecessor-version":[{"id":397,"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/pages\/364\/revisions\/397"}],"up":[{"embeddable":true,"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/pages\/71"}],"wp:attachment":[{"href":"https:\/\/ciraldo.stream\/uwm-vfx2\/wp-json\/wp\/v2\/media?parent=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}