{"id":125,"date":"2023-04-06T14:56:05","date_gmt":"2023-04-06T13:56:05","guid":{"rendered":"http:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/?p=125"},"modified":"2023-04-06T15:01:46","modified_gmt":"2023-04-06T14:01:46","slug":"bsc1b-unreal-fundamentals-task-1-initial-attempt","status":"publish","type":"post","link":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2023\/04\/06\/bsc1b-unreal-fundamentals-task-1-initial-attempt\/","title":{"rendered":"BSc1b &#8211; Unreal Fundamentals Task 1 &#8211; Initial Attempt 1"},"content":{"rendered":"\n<p class=\"has-text-align-center\">16\/01\/2023:<\/p>\n\n\n\n<p>This is the first attempt I made at unreal fundamentals, which involves finding my feet around the Unreal game engine. This is what I appeared to write at the time 16\/01\/23, and at the date of 06\/04\/23 I don&#8217;t have much to add.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><em>Task 1:<\/em><\/p>\n\n\n\n<p><br><span style=\"text-decoration: underline;\"><em>As a minimum, try and implement:<\/em><\/span><br>\u2022 (A)Something that moves \u2013 either across the ground or with moving parts like a windmill<\/p>\n\n\n\n<p>\u2022 (B)Something that changes when the player gets near \u2013 a door maybe?<\/p>\n\n\n\n<p><em><span style=\"text-decoration: underline;\">As stretch goals, you can try making:<\/span><\/em><\/p>\n\n\n\n<p>\u2022 (C)Something that spawns other blueprints<\/p>\n\n\n\n<p>\u2022 (D)Something that follows the player<\/p>\n\n\n\n<p>\u2022(E) Something that changes with user input<\/p>\n\n\n\n<p>A. For this task, I\u2019ve set up a character for the player to control which is spawned into the game through a gamemode blueprint. I\u2019ve set up axis inputs in project settings to arrow keys and WASD, and then in the characters even graph applied movement input to X and Y based on the axis inputs, alongside a jump function and I\u2019ve provided a ball to test some physics with player movement. This provides the player with effective manoeuvrability around a level although the player loses directional control while airborne and may be rotated by accident by standing on the ball.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"830\" height=\"548\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image.png\" alt=\"\" class=\"wp-image-126\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image.png 830w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-300x198.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-768x507.png 768w\" sizes=\"auto, (max-width: 830px) 100vw, 830px\" \/><\/figure>\n\n\n\n<p>B. At the moment of writing, I have no audio so I can\u2019t watch any video tutorials which help a lot for understanding new concepts. I\u2019d like to experiment here with a straightforward and obvious solution where the current play area looks like a football field with the grey ball as a football. When the ball goes through the goal, it destroys the ball and creates a new one in the middle of the field. Additionally, points a tracked through gold cubes spawned on top of the goal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"761\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-1.png\" alt=\"\" class=\"wp-image-127\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-1.png 564w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-1-222x300.png 222w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><\/figure>\n\n\n\n<p>Taking a second look at this, I think the player is supposed to trigger an event like this rather than the ball, my idea for that is to create a collider around the goal to shine a bright light when the player is close to scoring.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"510\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-2.png\" alt=\"\" class=\"wp-image-128\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-2.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-2-300x163.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-2-768x417.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p>-The light is turning red now for both the ball and player.<\/p>\n\n\n\n<p><br>C. I need to make something that follows the player, I\u2019d like this to be the gold points, make them small and float over the player\u2019s head.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"503\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-3.png\" alt=\"\" class=\"wp-image-129\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-3.png 736w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/04\/image-3-300x205.png 300w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/figure>\n\n\n\n<p><br>This was a good round for practicing a bit with the engine and learning some of the tropes though I have a long way to go in terms of understanding blueprinting and structuring my class.<br>Looking at some of the things I did in this class, I didn&#8217;t commit to a very challenging idea for something that moves, the player can move and can push a ball around, though I like that I made moving this around the basis of this task.<\/p>\n\n\n\n<p>I like the idea I had for toggling the light for &#8220;changing something when the player is near&#8221;, though I got muddled up on the focus whether the player should toggle the light or the &#8220;objective&#8221; being the ball. <br>If I were to do this again, I would also use a cast on the overlap event between the player and the goal zone for an orange light and a different set of boxes and lights for when the ball enters the goal.<\/p>\n\n\n\n<p>for D, I think I alternatively could have had a small follower block that would follow the player using AI move-to and stop moving a tiny distance from the player, rather than this block that matches the player position every tick.<\/p>\n\n\n\n<p>Though I did not manage to do objective E, I think an interesting element would have been to switch input to start controlling the ball rather than the player once the player has reached the end zone.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>16\/01\/2023: This is the first attempt I made at unreal fundamentals, which involves finding my feet around the Unreal game engine. This is what I appeared to write at the time 16\/01\/23, and at the date of 06\/04\/23 I don&#8217;t have much to add. Task 1: As a minimum, try and implement:\u2022 (A)Something that moves&hellip; <a class=\"more-link\" href=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2023\/04\/06\/bsc1b-unreal-fundamentals-task-1-initial-attempt\/\">Continue reading <span class=\"screen-reader-text\">BSc1b &#8211; Unreal Fundamentals Task 1 &#8211; Initial Attempt 1<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5,6],"class_list":["post-125","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-bsc1b","tag-unreal-fundamentals","entry"],"_links":{"self":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":2,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":131,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/125\/revisions\/131"}],"wp:attachment":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}