{"id":417,"date":"2017-01-19T18:45:48","date_gmt":"2017-01-19T18:45:48","guid":{"rendered":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/?p=417"},"modified":"2017-03-05T03:09:33","modified_gmt":"2017-03-05T03:09:33","slug":"week_2","status":"publish","type":"post","link":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/2017\/01\/19\/week_2\/","title":{"rendered":"Week 2: Effective Planning and Prototyping"},"content":{"rendered":"<div class=\"section-inner sectionLayout--insetColumn\">\n<p id=\"44e3\" class=\"graf graf--p graf-after--h3\">One of the key foundations for any successful project is building a plan which accounts for surprises. For Project Hindsight, we aim to create a plan which accounts for an experience that has unique facets, such as the merging of live-action and realistic interaction with CG objects.<\/p>\n<p id=\"60a3\" class=\"graf graf--p graf-after--p\">The challenge with this type of deliverable is that it is neither a film nor a game, hence even the pipelines and workflow have to be entirely unique to reflect this project, marrying the best practices from both worlds to inform our planning choices and decisions.<\/p>\n<h3 id=\"fe6d\" class=\"graf graf--h4 graf-after--p\">Our Approach<\/h3>\n<p id=\"5ca4\" class=\"graf graf--p graf-after--h4\">Our goal is to develop rapid prototypes in a weekly and bi-weekly schedule that enable us to explore the different challenges and possible solutions. These prototypes will be self-contained, with each having different test goals and challenges which we want to overcome before our principal photography phase later in March.<\/p>\n<p id=\"c903\" class=\"graf graf--p graf-after--p\">In this blog post, I will be delving deeper into our first prototype, provided with a technical analysis by <strong class=\"markup--strong markup--p-strong\">Sunil Nayak, <\/strong>Project Hindsight\u2019s programmer and sound designer.<\/p>\n<p class=\"graf graf--p graf-after--p\" style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-422 aligncenter\" src=\"https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-300x153.png\" alt=\"\" width=\"653\" height=\"333\" srcset=\"https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-300x153.png 300w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-768x392.png 768w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-1024x522.png 1024w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-700x357.png 700w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-520x265.png 520w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-360x184.png 360w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-250x128.png 250w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg-100x51.png 100w, https:\/\/projects-old.etc.cmu.edu\/hindsight\/wp-content\/uploads\/2017\/02\/1-NeZJGD1tA_enSBinjX1Rzg.png 2000w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/>Human Tripod Prototype One, titled\u00a0\u201cIgor\u201d<\/p>\n<\/div>\n<div class=\"section-inner sectionLayout--fullWidth\">\n<h3 id=\"124a\" class=\"graf graf--h3 graf-after--figure\">Week 2 Prototype: Lessons\u00a0Learned<\/h3>\n<p id=\"d298\" class=\"graf graf--p graf-after--h3\">The goals for week 2 were as follows:<\/p>\n<ol class=\"postList\">\n<li id=\"641c\" class=\"graf graf--li graf-after--p\">Develop a VR environment with a 360 video and put in 3D models (cans of soda) that appear to be a part of the environment<\/li>\n<li id=\"9bee\" class=\"graf graf--li graf-after--li\">Add in Spatial Sound.<\/li>\n<li id=\"f311\" class=\"graf graf--li graf-after--li\">[Stretch Goal] Oculus + Touch integration<\/li>\n<\/ol>\n<p id=\"ef8a\" class=\"graf graf--p graf-after--li\">A lot was learned while we attempted to do this. Primarily, the lighting was a big issue and there was always a problem with the lights being either too bright for the video (but not bright enough for the 3D models) or the opposite (and even worse for the 3D models). Shadows are necessary, but with the former the shadows disappeared (lights were too bright), and with the latter, everything was too dark. Directional light was tried to light up the video sphere, but that was also being horrible.<img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/1200\/1*CiAEuHD-ErxuMT7LHmqIjA.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/1200\/1*CiAEuHD-ErxuMT7LHmqIjA.png\" \/><\/p>\n<figure id=\"7b66\" class=\"graf graf--figure graf--layoutOutsetLeft graf-after--p\" data-scroll=\"native\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*CiAEuHD-ErxuMT7LHmqIjA.png\" data-width=\"2539\" data-height=\"1291\" data-action=\"zoom\" data-action-value=\"1*CiAEuHD-ErxuMT7LHmqIjA.png\" data-scroll=\"native\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<p id=\"f5ec\" class=\"graf graf--p graf-after--figure\"><strong class=\"markup--strong markup--p-strong\">Fix for Directional light<\/strong><br \/>\nWe just used an unlit material which responded to shadows to try something with it, so lights weren\u2019t needed for the sphere at all. Just needed for the shadows.<\/p>\n<p id=\"83c9\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Fix for the lighting \/ shadows of 3D models<\/strong><br \/>\n<em class=\"markup--em markup--p-em\">Separate it into layers<\/em>, light the 3D elements separately on a <em class=\"markup--em markup--p-em\">layer of their own<\/em> (and nothing else) to make sure they are as bright as they need to be. On another layer, light both the video sphere and the 3D models but barely, to make sure shadows show up and the video isn\u2019t too bright.<\/p>\n<p id=\"9556\" class=\"graf graf--p graf-after--p\">Also, use a script to switch on the lights when the corresponding lights switch on in the video to make sure the shadows appear when they should and not all initially. A <strong class=\"markup--strong markup--p-strong\">LightManager <\/strong>script was developed for this to handle events that occur with the video (time based).<img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/1200\/1*JaZf9uqN4igRC58kTn0Scg.png\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/1200\/1*JaZf9uqN4igRC58kTn0Scg.png\" \/><\/p>\n<p id=\"fa74\" class=\"graf graf--p graf-after--figure\"><strong class=\"markup--strong markup--p-strong\">Spatial Audio Issues: <\/strong>There was no way to bring in 4 channel audio straight into unity and make it spatial, so the 4 channels were <em class=\"markup--em markup--p-em\">split into 4 different audio tracks<\/em> and 4 speakers were placed at quadrants and the audio was assigned to them to make the audio spatial. This way, rotating the speaker setup would be the fastest way to tweak the direction of the sound. ALSO, this way, all Mono tracks like the music and so on need just be placed on the main player game object\u2019s audio source.<\/p>\n<p id=\"c017\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Oculus Issues: <\/strong>Turning positional tracking off on the Headset meant that the Touch controllers weren\u2019t being tracked either. Positional tracking is currently on now, and we are attempting to find a fix for this, as 6DOF in such a space can be fatal. Also, the sphere was too far away for touching anything in the video, so the size of the sphere needed to be fixed in order to achieve whatever was needed from the Oculus and the Touch. Also, due to positional tracking being enabled, the Oculus now has to be at a particular distance from the sensors for the prototype to work.<\/p>\n<p><iframe loading=\"lazy\" title=\"Project Hindsight Week Two Dev Blog: Planning &amp; Prototyping\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/LK3FqR5XQ5w?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/figure>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>One of the key foundations for any successful project is building a plan which accounts for surprises. For Project Hindsight, we aim to create a plan which accounts for an experience that has unique facets, such as the merging of [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":422,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prototype","clearfix"],"_links":{"self":[{"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/posts\/417"}],"collection":[{"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/comments?post=417"}],"version-history":[{"count":6,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/posts\/417\/revisions"}],"predecessor-version":[{"id":427,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/posts\/417\/revisions\/427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/media\/422"}],"wp:attachment":[{"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/media?parent=417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/categories?post=417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projects-old.etc.cmu.edu\/hindsight\/index.php\/wp-json\/wp\/v2\/tags?post=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}