{"id":652,"date":"2020-10-22T17:40:57","date_gmt":"2020-10-22T17:40:57","guid":{"rendered":"https:\/\/half4.xyz\/?p=652"},"modified":"2024-01-25T10:00:48","modified_gmt":"2024-01-25T10:00:48","slug":"character-clothing-part-2-maya","status":"publish","type":"post","link":"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-2-maya\/","title":{"rendered":"Character Clothing &#8211; Part 2: Maya"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Table of Contents<\/h2>\n<blockquote class=\"wp-embedded-content\" data-secret=\"hTk256JxkN\"><p><a href=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-zone-culling\/\">Character Clothing Zone Culling<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Character Clothing Zone Culling&#8221; &#8212; half4.xyz\" src=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-zone-culling\/embed\/#?secret=v6JLbdpj6n#?secret=hTk256JxkN\" data-secret=\"hTk256JxkN\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"UaVtzhEfwq\"><p><a href=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-2-maya\/\">Character Clothing &#8211; Part 2: Maya<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Character Clothing &#8211; Part 2: Maya&#8221; &#8212; half4.xyz\" src=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-2-maya\/embed\/#?secret=SDUVx82UD3#?secret=UaVtzhEfwq\" data-secret=\"UaVtzhEfwq\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"AXk9STrPw5\"><p><a href=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-3-ue4-shaders\/\">Character Clothing &#8211; Part 3: UE4 Shaders<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Character Clothing &#8211; Part 3: UE4 Shaders&#8221; &#8212; half4.xyz\" src=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-3-ue4-shaders\/embed\/#?secret=LnnQJcjQLr#?secret=AXk9STrPw5\" data-secret=\"AXk9STrPw5\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"yAxZ214Wg9\"><p><a href=\"https:\/\/half4.xyz\/index.php\/2020\/10\/26\/character-clothing-part-4-ue4-logic\/\">Character Clothing \u2013 Part 4: UE4 Logic<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Character Clothing \u2013 Part 4: UE4 Logic&#8221; &#8212; half4.xyz\" src=\"https:\/\/half4.xyz\/index.php\/2020\/10\/26\/character-clothing-part-4-ue4-logic\/embed\/#?secret=auQJho2SV0#?secret=yAxZ214Wg9\" data-secret=\"yAxZ214Wg9\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h3 class=\"wp-block-heading\">Setting Up<\/h3>\n<p>We now have an approach we can take. We will now turn this into a <em>practical <\/em>solution.<\/p>\n<p>We first need to find a way assign a zone of our mesh to a bitmask value. For example, if you had a hand you were trying to split into different zones, you may choose one zone for each digit (fingers &amp; thumbs), the top of the hand and the palm of the hand.<\/p>\n<p>How can we tell our shader about these zones?<\/p>\n<p>In vertex shaders we have access to a few things. Two common ways of attaching data to a single vertex is either using UVs or vertex colors.<\/p>\n<p>UVs use coordinates \u2013 a pair of values. We only need one for now, so we can grab the x-component of the UVs and use that.<\/p>\n<p>We could use vertex colors, but the tooling here would be a problem \u2013 it is easy to move a UV coordinate up or down, is is less easy to increase painted values by increments \u2013 at least in Maya. So in this case, we\u2019ll stick with UVs.<\/p>\n<p>The first thing we want to do is define the base zones to cull. We need to do this in our modelling package. I\u2019ll walk you through how I set things up in Maya:<\/p>\n<h2 class=\"wp-block-heading\">The UV Basics<\/h2>\n<p>First steps, then. Let\u2019s change Maya\u2019s grid settings in the UV editor to be useful to us.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-585\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-13-1024x871.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-13-1024x871.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-13-300x255.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-13-768x653.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-13.png 1096w\" alt=\"\" width=\"1024\" height=\"871\" \/><br \/>\n<img decoding=\"async\" class=\"wp-image-584\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-12.png\" sizes=\"(max-width: 669px) 100vw, 669px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-12.png 669w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-12-300x239.png 300w\" alt=\"\" width=\"669\" height=\"534\" \/>0.0312, you ask? This is 1\/32, as we want 32 grid points in our 0-1 UV space (its actually 0.03125, but Maya rounds it)<a href=\"https:\/\/www.firstsouthnet.com\/\">you can find out more<\/a><\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" class=\"wp-image-81\" src=\"http:\/\/half4.xyz\/wp-content\/uploads\/2020\/05\/gridopts3.png\" sizes=\"(max-width: 916px) 100vw, 916px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/05\/gridopts3.png 916w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/05\/gridopts3-300x270.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/05\/gridopts3-768x692.png 768w\" alt=\"\" width=\"916\" height=\"825\" \/><figcaption>Each of the horizontal zones now equates to a zone we can selectively cull<\/figcaption><\/figure>\n<p>Now we need to create a new UV set. A UV set is called a UV Channel in Unreal Engine 4. It is simply a set of UVs for a vertex. Each vertex can have as many different UVs as you like, and these are store in channels. It is worth noting that the more UV sets you have, the more vertices your graphics card has to process at runtime. For us this is fine, but keep it in mind.<\/p>\n<p>Create a new UV set. It can be empty as we\u2019re going to assign new UVs to all parts of our mesh.<\/p>\n<p>Start by selecting your mesh, and clicking the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-586\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-14-1024x871.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-14-1024x871.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-14-300x255.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-14-768x653.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-14.png 1103w\" alt=\"\" width=\"1024\" height=\"871\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-587\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-15-1024x872.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-15-1024x872.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-15-300x256.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-15-768x654.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-15.png 1100w\" alt=\"\" width=\"1024\" height=\"872\" \/><\/p>\n<p>You should now be able to head into UV Set Editor and see your new UV set:<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-588\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-16.png\" sizes=\"(max-width: 875px) 100vw, 875px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-16.png 875w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-16-300x141.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-16-768x361.png 768w\" alt=\"\" width=\"875\" height=\"411\" \/><\/figure>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-589\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-17-1024x886.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-17-1024x886.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-17-300x260.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-17-768x665.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-17.png 1086w\" alt=\"\" width=\"1024\" height=\"886\" \/><\/p>\n<p>Next we\u2019ll use the following image as a texture. It is just 32 colours, so that as we\u2019re assigning each zone in our UV space we get some clean visual feedback on our mesh:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-86\" src=\"http:\/\/half4.xyz\/wp-content\/uploads\/2020\/05\/texture.png\" alt=\"\" width=\"32\" height=\"1\" \/><\/p>\n<p>Create and assign a new shader (Lambert or Blinn will do). In its Color value, add a new file node and use the above texture.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-590\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-1024x300.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-1024x300.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-300x88.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-768x225.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-1536x450.png 1536w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-18-2048x600.png 2048w\" alt=\"\" width=\"1024\" height=\"300\" \/><\/p>\n<p>Turn on textures in your viewport:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-591\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19-1024x525.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19-1024x525.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19-300x154.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19-768x394.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19-1536x787.png 1536w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-19.png 1692w\" alt=\"\" width=\"1024\" height=\"525\" \/><\/p>\n<p>Next we need to be able to see the second UV set in-use in our mesh (by default Maya only displays the first UV set in the viewport):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-592\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-20.png\" sizes=\"(max-width: 652px) 100vw, 652px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-20.png 652w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-20-300x224.png 300w\" alt=\"\" width=\"652\" height=\"486\" \/><\/p>\n<figure class=\"wp-block-image size-large\"><\/figure>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-593\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-21.png\" sizes=\"(max-width: 502px) 100vw, 502px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-21.png 502w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-21-300x227.png 300w\" alt=\"\" width=\"502\" height=\"380\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-594\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-22-1024x712.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-22-1024x712.png 1024w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-22-300x209.png 300w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-22-768x534.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-22.png 1351w\" alt=\"\" width=\"1024\" height=\"712\" \/><\/p>\n<p>All our UVs are 0,0 in this second set, so we\u2019re all red.<\/p>\n<p>With your second UV set selected, you can now begin UV\u2019ing sections of your mesh.<\/p>\n<p>For this process, simply select each zone of you mesh you want to cull. Then create some Automatic UVs for it. Then scale the UVs down as small as you can manage and make sure they fit inside one of vertical grid columns:<\/p>\n<figure class=\"wp-block-video\"><video src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/UV_Feet.mp4\" controls=\"controls\" width=\"300\" height=\"150\"><\/video><\/figure>\n<p>Then repeat for each zone.<\/p>\n<p>NOTE: As mentioned previously, if you\u2019re using UE4, you are limited to the first 24 zones!<\/p>\n<h3 class=\"wp-block-heading\">But which zones? How do I cut this up?!<\/h3>\n<p>Good question \u2013 the quick answer is that <em>its up to you<\/em>. But there are some things to consider:<\/p>\n<ol>\n<li>Your clothing will need to be designed around these zones \u2013 the closer you follow the zones with your clothing, the less clipping issues you\u2019ll have<\/li>\n<li>Start by looking at your clothing designs and working out the zones you want create<\/li>\n<li>Define the zones on your base character first<\/li>\n<\/ol>\n<ul>\n<li>Your clothing will need to be designed around these zones \u2013 the closer you follow the zones with your clothing, the less clipping issues you\u2019ll have<\/li>\n<li>Start by looking at your clothing designs and working out the zones you want create<\/li>\n<li>Define the zones on your base character first<\/li>\n<\/ul>\n<p>Here is how I have approached mine, based on the clothing I\u2019m using (in an ideal world, you split the zones up first, <em>then<\/em> design your clothing):<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-636\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-38-950x1024.png\" sizes=\"(max-width: 950px) 100vw, 950px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-38-950x1024.png 950w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-38-278x300.png 278w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-38-768x828.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-38.png 1099w\" alt=\"\" width=\"950\" height=\"1024\" \/><\/p>\n<p>Each color is a unique zone we can dynamically cull<\/p>\n<p>Depending on your clothing you may want to dedicate areas differently. In this example, I\u2019m running just one zone for the neck and face<\/p>\n<p>The next step is crucial:<\/p>\n<p><span style=\"text-decoration: underline;\">We need to apply the same zoning to our clothes<\/span>. This makes things consistent and means we can layer a jacket on top of a tank top (culling the parts of the tank top we can no longer see), and then <em>add the two bitmasks together<\/em> and apply that value to the character\u2019s skin mesh \u2013 it will hide everything both layers of clothing are on-top of!<\/p>\n<p><span style=\"text-decoration: underline;\">We need to apply the same zoning to our clothes<\/span><br \/>\n<em>add the two bitmasks together<\/em><\/p>\n<p>Here is the zoning on some example clothing:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-637\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-39.png\" sizes=\"(max-width: 737px) 100vw, 737px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-39.png 737w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-39-224x300.png 224w\" alt=\"\" width=\"737\" height=\"987\" \/><\/p>\n<p>The zoning matches.<br \/>\nFWIW: I\u2019d recommend a close topology match between your clothing and characters if you can manage it than I demonstrate here (time constraints, may redo these assets)<\/p>\n<p>&nbsp;<\/p>\n<p>Final step is to export this out to .FBX ready for Unreal Engine 4. I\u2019ve done this here, you can check your zones have come in properly by setting up a Material as below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-639\" src=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40-717x1024.png\" sizes=\"(max-width: 717px) 100vw, 717px\" srcset=\"https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40-717x1024.png 717w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40-210x300.png 210w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40-768x1097.png 768w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40-1076x1536.png 1076w, https:\/\/half4.xyz\/wp-content\/uploads\/2020\/10\/image-40.png 1252w\" alt=\"\" width=\"717\" height=\"1024\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Continue on to the next page:<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"AXk9STrPw5\"><p><a href=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-3-ue4-shaders\/\">Character Clothing &#8211; Part 3: UE4 Shaders<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Character Clothing &#8211; Part 3: UE4 Shaders&#8221; &#8212; half4.xyz\" src=\"https:\/\/half4.xyz\/index.php\/2020\/10\/22\/character-clothing-part-3-ue4-shaders\/embed\/#?secret=LnnQJcjQLr#?secret=AXk9STrPw5\" data-secret=\"AXk9STrPw5\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Table of Contents Character Clothing Zone Culling Character Clothing &#8211; Part 2: Maya Character Clothing &#8211; Part 3: UE4 Shaders Character Clothing \u2013 Part 4: UE4 Logic Setting Up We now have an approach we can take. We will now turn this into a practical solution. We first need to find a way assign a zone of our mesh to a bitmask value. For example, if you had a hand you were trying to split into different zones, you may choose one zone for each digit (fingers &amp; thumbs), the top of the hand and the palm of the hand. How can we tell our shader about these zones? In vertex shaders we have access to a few things. Two common ways of attaching data to a single vertex is either using UVs or vertex colors. UVs use coordinates \u2013 a pair of values. We only need one for now, so we can grab the x-component of the UVs and use that. We could use vertex colors, but the tooling here would be a problem \u2013 it is easy to move a UV coordinate up or down, is is less easy to increase painted values by increments \u2013 at least in Maya. So in this case, we\u2019ll stick with UVs. The first thing we want to do is define the base zones to cull. We need to do this in our modelling package. I\u2019ll walk you through how I set things up in Maya: The UV Basics First steps, then. Let\u2019s change Maya\u2019s grid settings in the UV editor to be useful to us. 0.0312, you ask? This is 1\/32, as we want 32 grid points in our 0-1 UV space (its actually 0.03125, but Maya rounds it)you can find out more Each of the horizontal zones now equates to a zone we can selectively cull Now we need to create a new UV set. A UV set is called a UV Channel in Unreal Engine 4. It is simply a set of UVs for a vertex. Each vertex can have as many different UVs as you like, and these are store in channels. It is worth noting that the more UV sets you have, the more vertices your graphics card has to process at runtime. For us this is fine, but keep it in mind. Create a new UV set. It can be empty as we\u2019re going to assign new UVs to all parts of our mesh. Start by selecting your mesh, and clicking the following: You should now be able to head into UV Set Editor and see your new UV set: Next we\u2019ll use the following image as a texture. It is just 32 colours, so that as we\u2019re assigning each zone in our UV space we get some clean visual feedback on our mesh: Create and assign a new shader (Lambert or Blinn will do). In its Color value, add a new file node and use the above texture. Turn on textures in your viewport: Next we need to be able to see the second UV set in-use in our mesh (by default Maya only displays the first UV set in the viewport): All our UVs are 0,0 in this second set, so we\u2019re all red. With your second UV set selected, you can now begin UV\u2019ing sections of your mesh. For this process, simply select each zone of you mesh you want to cull. Then create some Automatic UVs for it. Then scale the UVs down as small as you can manage and make sure they fit inside one of vertical grid columns: Then repeat for each zone. NOTE: As mentioned previously, if you\u2019re using UE4, you are limited to the first 24 zones! But which zones? How do I cut this up?! Good question \u2013 the quick answer is that its up to you. But there are some things to consider: Your clothing will need to be designed around these zones \u2013 the closer you follow the zones with your clothing, the less clipping issues you\u2019ll have Start by looking at your clothing designs and working out the zones you want create Define the zones on your base character first Your clothing will need to be designed around these zones \u2013 the closer you follow the zones with your clothing, the less clipping issues you\u2019ll have Start by looking at your clothing designs and working out the zones you want create Define the zones on your base character first Here is how I have approached mine, based on the clothing I\u2019m using (in an ideal world, you split the zones up first, then design your clothing): Each color is a unique zone we can dynamically cull Depending on your clothing you may want to dedicate areas differently. In this example, I\u2019m running just one zone for the neck and face The next step is crucial: We need to apply the same zoning to our clothes. This makes things consistent and means we can layer a jacket on top of a tank top (culling the parts of the tank top we can no longer see), and then add the two bitmasks together and apply that value to the character\u2019s skin mesh \u2013 it will hide everything both layers of clothing are on-top of! We need to apply the same zoning to our clothes add the two bitmasks together Here is the zoning on some example clothing: The zoning matches. FWIW: I\u2019d recommend a close topology match between your clothing and characters if you can manage it than I demonstrate here (time constraints, may redo these assets) &nbsp; Final step is to export this out to .FBX ready for Unreal Engine 4. I\u2019ve done this here, you can check your zones have come in properly by setting up a Material as below: &nbsp; Continue on to the next page: Character Clothing &#8211; Part 3: UE4 Shaders<\/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":[],"class_list":["post-652","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/posts\/652"}],"collection":[{"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=652"}],"version-history":[{"count":5,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/posts\/652\/revisions"}],"predecessor-version":[{"id":1271,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/posts\/652\/revisions\/1271"}],"wp:attachment":[{"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/half4.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}