{"id":78,"date":"2022-02-02T19:07:16","date_gmt":"2022-02-02T19:07:16","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/artdegree\/?p=78"},"modified":"2022-02-02T19:07:33","modified_gmt":"2022-02-02T19:07:33","slug":"beam-me-to-a-2-5d-world-bp-5","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/artdegree\/2022\/02\/02\/beam-me-to-a-2-5d-world-bp-5\/","title":{"rendered":"Beam Me to a 2.5D World (BP #5)"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Paper Mario: The Thousand Year Door is a Good Game<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-1024x576.jpeg\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-1024x576.jpeg 1024w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-300x169.jpeg 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-768x432.jpeg 768w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-1536x864.jpeg 1536w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy-1568x882.jpeg 1568w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/2436635-sezhy.jpeg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><a href=\"https:\/\/epiloguegaming.com\/retro-review-paper-mario-the-thousand-year-door\/\">Image Source<\/a> <\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>It&#8217;s such a good game that we decided to move forward with that visual aesthetic then having everything in our immersive world be in 3D. &#8230; Or it was by my request and because I love it.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Tasks Accomplished: Week <\/strong>5<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Technical Tasks<\/strong><\/td><td><strong>Art Tasks<\/strong><\/td><\/tr><tr><td>More work on NavMesh pathfinding<\/td><td>Painted concept art for seance scene<\/td><\/tr><tr><td>Wrote NPC\/background character spawner<\/td><td>Began 3D modeling, then stopped<\/td><\/tr><tr><td>Wrote &#8220;Paper Mario&#8221; effect script for 2D sprites in 3D environments<\/td><td><\/td><\/tr><tr><td>Made progress with random target generation script (for NavMesh pathfinding)<\/td><td><\/td><\/tr><\/tbody><\/table><figcaption><em>(as of writing this &#8212; there&#8217;s still Wednesday, Thursday, and Friday for me to do some more)<\/em><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Games Made in 2.5D <\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Okay, ours isn&#8217;t going to be in 2.5D. It&#8217;s still going to be in 3D, but with 2D sprites.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>2.5D games have environments that appear to be 3D, but you&#8217;re still restricted to 2D movement in the &#8216;x&#8217; and &#8216;y&#8217; axes. Since we&#8217;re doing an immersive VR game, we can&#8217;t have that restriction, but we can pull inspiration from the visual styles born from it. Take for example, the Paper Mario series:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/paper-mario-the-origami-king-paper-mario.gif\" alt=\"\" class=\"wp-image-80\" \/><figcaption><em>Paper Mario: The Origami King | <a href=\"https:\/\/tenor.com\/view\/paper-mario-the-origami-king-paper-mario-the-origami-king-nintendo-super-mario-gif-21207550\">Gif Source<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Not from the The Thousand Year Door (booooo), but here&#8217;s a good example from The Origami King. Mario <em>should<\/em> be an animated 2D sprite on either a single-faced or very low poly plane, yet he&#8217;s placed in an environment that includes the z-axis in appearance.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Games Made in 2.5D <\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>With blessings from my project partners, I&#8217;ve decided to move our game&#8217;s aesthetic from full 3D assets to a mix of 2D and 3D.  I&#8217;ve begun to implement some scripts that will help keep the 2D sprite field in 3D.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/pm.gif\" alt=\"\" class=\"wp-image-82\" width=\"608\" height=\"342\" \/><figcaption><em>Testing having the forward vector always face the player<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/sprite.gif\" alt=\"\" class=\"wp-image-81\" width=\"610\" height=\"343\" \/><figcaption><em>Testing sprite spawner and pathfinding<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>You can see some of my generated sprites got stuck due to the angle of the ramp. :&#8217;)<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>After watching some tutorials and experimenting, the trick to getting something in the vein of Paper Mario is all about restricting the sprite&#8217;s rotations to the y-axis only (which I did after that first gif). I next need to figure out how to calculate when the NPC&#8217;s back should be facing the character as opposed to their&#8230; face.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">?????????????????<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/5111\/files\/2022\/02\/why.gif\" alt=\"\" class=\"wp-image-83\" width=\"610\" height=\"343\" \/><figcaption><em><a href=\"https:\/\/giphy.com\/gifs\/why-ryan-reynolds-1M9fmo1WAFVK0\">Gif Source<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>A<\/strong>: I realized that while I can do basic character modeling, I can be much faster with 2D drawings, which I&#8217;m more skilled at anyways. Continuing with 3D modeling was going to put my team behind.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>I&#8217;m also not confident enough in my knowledge of topology after realizing that you can see models from all angles in VR. A really obvious observation, but I just missed it somehow still. Shame on me. Really, if any weird polygonal bends happen in any of the organic meshes, the immersion will be broken. These bends can be caused by a myriad of issues, including:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>&#8220;Stars&#8221;: When a single vertex is the endpoint for five or more edges<\/li><li>Not enough edge loops for areas that bend (elbows in this of our project)<\/li><\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>&#8230; many of which my in-progress models had. Retopology wasn&#8217;t going to help either as I had started to model the characters with a lower polycount in mind. Glad this 2.5D-inspired solution will work better for us though! <\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Goodbye, going to buy lots of Gamecube stickers due to a rush of nostalgia.<\/p><cite>Ryan Davis<\/cite><\/blockquote><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Paper Mario: The Thousand Year Door is a Good Game It&#8217;s such a good game that we decided to move forward with that visual aesthetic then having everything in our immersive world be in 3D. &#8230; Or it was by my request and because I love it. Tasks Accomplished: Week 5 Technical Tasks Art Tasks&hellip; <a class=\"more-link\" href=\"https:\/\/blogs.oregonstate.edu\/artdegree\/2022\/02\/02\/beam-me-to-a-2-5d-world-bp-5\/\">Continue reading <span class=\"screen-reader-text\">Beam Me to a 2.5D World (BP #5)<\/span><\/a><\/p>\n","protected":false},"author":11959,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-78","post","type-post","status-publish","format-standard","hentry","category-cs467","entry"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/users\/11959"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":3,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/posts\/78\/revisions\/86"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/artdegree\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}