{"id":625,"date":"2026-05-20T19:31:51","date_gmt":"2026-05-20T19:31:51","guid":{"rendered":"https:\/\/sites.wsagames.com\/yfw1e23\/?p=625"},"modified":"2026-05-21T12:26:19","modified_gmt":"2026-05-21T12:26:19","slug":"3d-asset-creation-implementation-workflow","status":"publish","type":"post","link":"https:\/\/sites.wsagames.com\/yfw1e23\/2026\/05\/20\/3d-asset-creation-implementation-workflow\/","title":{"rendered":"3D Asset Creation &amp; Implementation Workflow"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This post primarily highlights my workflow from Week 9 onwards, wherein i had learnt from the inefficiencies and issues with my prior workflow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Referencing<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">Utilising primary research gathered, Maria&#8217;s GDD, a reference\/mood board I complied in Pinterest, and sketches inspired by the previously mentioned, I gain a good base\/reference to go off of and start my creation process.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Creation<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">Utilising a software recommended by my friend Erik called Pureref, I\u2019m able to overlay references over Blender &amp; Krita, two software which serve as my main tools for the creation of 3D assets.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2-1024x576.png\" alt=\"\" class=\"wp-image-804\" style=\"width:320px;height:auto\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2-1024x576.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2-300x169.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2-768x432.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2-1536x864.png 1536w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-633-2.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot, an example of me using Pureref to aid in my modelling process<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">With a references by my side, I start with simple shapes and slowly model them into a desired form. For Scopophobia, since I&#8217;m working on environment art I decided to keep my models low polygon and simple, reserving detail for more important objects.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"421\" height=\"592\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-70.png\" alt=\"\" class=\"wp-image-808\" style=\"width:221px;height:auto\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-70.png 421w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-70-213x300.png 213w\" sizes=\"(max-width: 421px) 100vw, 421px\" \/><figcaption class=\"wp-element-caption\">Prototype model of a Supermarket shelf, scrapped due to being overly detailed, complicated and distracting.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"307\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-67-1024x307.png\" alt=\"\" class=\"wp-image-805\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-67-1024x307.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-67-300x90.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-67-768x230.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-67.png 1493w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshots of Supermarket shelves made more the environment<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"533\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-69-1024x533.png\" alt=\"\" class=\"wp-image-807\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-69-1024x533.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-69-300x156.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-69-768x400.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-69.png 1332w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Leftward shelf gets more detail as it is intended to contain an Item important to the player.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After finalising the shape &amp; form of the model, I UV unwrap it so it may display textures.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-2026-05-16-215145-1024x600.png\" alt=\"\" class=\"wp-image-444\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-2026-05-16-215145-1024x600.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-2026-05-16-215145-300x176.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-2026-05-16-215145-768x450.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Screenshot-2026-05-16-215145.png 1530w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot showing my UV unwrapping process<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For blockly models like this self, I mainly use the function &#8216;project from view&#8217; while in a orthographic view at a specific direction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Afterwards, I take a precise screenshot of the unwrapped model, by the left of the screenshot above, and import it into a new Krita project, sized after the needs of the model.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"687\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-4-1024x687.png\" alt=\"\" class=\"wp-image-448\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-4-1024x687.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-4-300x201.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-4-768x515.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-4.png 1110w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Krita screenshot<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I decrease its opacity and use it as a reference for my digital hand painting, creating a base colour\/diffuse texture<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"688\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-3-1024x688.png\" alt=\"\" class=\"wp-image-447\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-3-1024x688.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-3-300x202.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-3-768x516.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-3.png 1097w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">I then duplicate and adjust the saturation &amp; values of the painting, taking advantage of its layers, to create a roughness map.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-1024x1024.png\" alt=\"\" class=\"wp-image-449\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-1024x1024.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-300x300.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-150x150.png 150w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-768x768.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness-1536x1536.png 1536w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/Shelf_Roughness.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">For Scopophobia, I determined just having two textures is enough for most models, base colour and roughness. I do also create metallic maps on occasion to complement roughness textures when they aren&#8217;t enough. I also experimented with procedurally generated normal maps using the software <a href=\"https:\/\/github.com\/azagaya\/laigter\" data-type=\"link\" data-id=\"https:\/\/github.com\/azagaya\/laigter\">Laigtr<\/a>, recommended to me by a guest speaker, however i did not find the normal textures generated useful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During the Krita hand-painting process, I utilise a Blender addon named &#8220;Auto Reload&#8221;, which automatically reloads all texture files connected externally when they are updated\/saved. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I saved my Krita projects in the .psd format for compatibility with Auto Reload. This combination allows me to check how my painted textures look in Blender on the model whenever I save the Krita .psd project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"855\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-71.png\" alt=\"\" class=\"wp-image-811\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-71.png 926w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-71-300x277.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-71-768x709.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot of the shading nodes of a Supermarket shelf, editing the material &#8216;Shelf&#8217;.<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">I sometimes create multiple variants of a model so they may not feel overly repetitious, I do this by moving their UVs around so different parts of the texture are projected on the same face. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"689\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-75-1024x689.png\" alt=\"\" class=\"wp-image-819\" style=\"width:405px;height:auto\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-75-1024x689.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-75-300x202.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-75-768x517.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-75.png 1201w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot of rotating UVs to showcase how to move them to create variants of a model<\/figcaption><\/figure>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"467\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-74-1024x467.png\" alt=\"\" class=\"wp-image-817\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-74-1024x467.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-74-300x137.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-74-768x350.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-74.png 1371w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot, showing the same model duplicated into variations, which have their UVs swapped around for variety<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"625\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-72-1024x625.png\" alt=\"\" class=\"wp-image-813\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-72-1024x625.png 1024w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-72-300x183.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-72-768x469.png 768w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-72.png 1052w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Blender screenshot of Supermarket shelf variants with colour &amp; roughness textures<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I export the model as a .fbx file from Blender. I then export the textures as .png files from the .psd Krita projects.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3a88641f wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">Then after, the files or organised into a folder where they are then imported into Unreal Engine 5.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"818\" height=\"568\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-76.png\" alt=\"\" class=\"wp-image-821\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-76.png 818w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-76-300x208.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-76-768x533.png 768w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><figcaption class=\"wp-element-caption\">Screenshot of File Explorer where I organise all my exports from Blender &amp; Krita.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">After importing into Unreal Engine 5, I recreate the shading nodes of materials as they are in Blender. I connect the imported .png textures in shading, and connect to finished material onto the imported .fbx models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally if need be, the model&#8217;s collision hitbox is remade to fit the circumstance. Below, the collision hitboxes of the wet floor sign &amp; cart objects are greatly exaggerated to prevent player passage but allow for visibility through them.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"923\" height=\"613\" src=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-78.png\" alt=\"\" class=\"wp-image-839\" srcset=\"https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-78.png 923w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-78-300x199.png 300w, https:\/\/sites.wsagames.com\/yfw1e23\/wp-content\/uploads\/sites\/74\/2026\/05\/image-78-768x510.png 768w\" sizes=\"(max-width: 923px) 100vw, 923px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This post primarily highlights my workflow from Week 9 onwards, wherein i had learnt from the inefficiencies and issues with my prior workflow. Referencing Utilising primary research gathered, Maria&#8217;s GDD, a reference\/mood board I complied in Pinterest, and sketches inspired by the previously mentioned, I gain a good base\/reference to go off of and start [&hellip;]<\/p>\n","protected":false},"author":65,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-625","post","type-post","status-publish","format-standard","hentry","category-year2sem2"],"_links":{"self":[{"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/posts\/625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/comments?post=625"}],"version-history":[{"count":12,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/posts\/625\/revisions"}],"predecessor-version":[{"id":840,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/posts\/625\/revisions\/840"}],"wp:attachment":[{"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/media?parent=625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/categories?post=625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.wsagames.com\/yfw1e23\/wp-json\/wp\/v2\/tags?post=625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}