{"id":679,"date":"2026-06-05T17:59:29","date_gmt":"2026-06-05T17:59:29","guid":{"rendered":"https:\/\/rivals2.com\/workshop-dev\/?post_type=knowledgebase&#038;p=679"},"modified":"2026-07-13T22:52:36","modified_gmt":"2026-07-13T22:52:36","slug":"materials-overview","status":"publish","type":"knowledgebase","link":"https:\/\/rivals2.com\/workshop\/knowledge-base\/character-creation\/materials-overview\/","title":{"rendered":"Create and Configure Material Instances"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In Unreal you use <strong>Textures<\/strong> to control the surface visuals of your geometry by assigning them to <strong>Material Instances<\/strong> and assigning these <strong>Material Instances<\/strong> to material slots on your <strong>Skeletal Mesh<\/strong>.<\/p>\n\n\n\n<p class=\"is-style-text-annotation has-accent-1-background-color has-background is-style-text-annotation--1 wp-block-paragraph\">All materials must be authored in Unreal, Blender Materials do not translate to Unreal. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>Material<\/strong> <strong>Instance<\/strong> (Not to be confused with it&#8217;s parent asset type &#8211; <strong>Material<\/strong>) is a type of asset that allows you to modify parameters established and logic in it&#8217;s parent asset.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/dev.epicgames.com\/documentation\/en-us\/unreal-engine\/instanced-materials-in-unreal-engine\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Instanced Materials Unreal<\/a><br><a href=\"https:\/\/dev.epicgames.com\/documentation\/unreal-engine\/unreal-engine-material-editor-user-guide\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Materials in Unreal<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This document assumes you will be using <strong>Material Instances<\/strong> of the MAT_Cha_Standard <strong>Material<\/strong> which contains all of the logic needed to take advantage of existing features across the base cast including outlines, toon-shading, status effects, texture sets, dynamic colors and much more .<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"782\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1-1024x782.png\" alt=\"\" class=\"wp-image-1202\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1-1024x782.png 1024w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1-300x229.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1-768x586.png 768w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/Material-1.png 1327w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Rivals Characters along with most articles and mesh effects all use <strong>Material Instances<\/strong> of the <strong>content\/character\/MAT_Cha_Standard Material<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A material instance inherits the parameters of the parent and allows you to override them, these overrides are how you will assign textures and otherwise change the look of your surfaces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Organize your Material Slots<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"813\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-177.png\" alt=\"\" class=\"wp-image-1659\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-177.png 922w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-177-300x265.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-177-768x677.png 768w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In order to assign materials to a <strong>Mesh<\/strong> in Unreal it will need to have properly configured <strong>Material Slots<\/strong>, <strong>Material Slots<\/strong> are created on import based on the Materials assigned to the mesh in Blender at time of export. The number of material slots has an increasing cost so we want to keep the list to a minimum.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you need to add or remove material slots you must do so by assigning different materials to those regions of the mesh in Blender. You can assign materials to Objects or to faces directly in order to do this.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a material slot has a white trash can next to it you can safely remove that slot by clicking on the Icon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Material slots will import with the name of the Material assigned in Blender. If the slots change on re import, Unreal will attempt to reorder them, or retain your current order based on your selection.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"634\" height=\"456\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-178.png\" alt=\"\" class=\"wp-image-1661\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-178.png 634w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-178-300x216.png 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It is recommended to name material slots descriptively for future palette setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Generate Material Instances<\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a7c146815df6&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a7c146815df6\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"801\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-93.png\" alt=\"\" class=\"wp-image-697\" style=\"aspect-ratio:0.8739048155862765;width:302px;height:auto\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-93.png 700w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-93-262x300.png 262w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can create a set of materials for your mesh automatically by right clicking on your skeletal mesh, going to scripted asset actions and clicking Generate material instances. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For each material slot on the mesh this will automatically generate a material Instance parented to the MAT_Cha_Standard Material named after and assigned to that slot.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creating Material Instances Manually<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"459\" height=\"777\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-88.png\" alt=\"\" class=\"wp-image-689\" style=\"width:244px;height:auto\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-88.png 459w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-88-177x300.png 177w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When importing mesh Unreal will try to create materials for you. These will be unusable for our purposes. Ensure that you disable \u201cCreate Materials on import\u201d.<\/li>\n\n\n\n<li>If materials have already been created on import, delete them.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"1024\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-89-605x1024.png\" alt=\"\" class=\"wp-image-690\" style=\"width:269px;height:auto\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-89-605x1024.png 605w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-89-177x300.png 177w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-89.png 676w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In the content Drawer Navigate to your mod&#8217;s Unreal Assets folder and Right click in the black space, and go <strong>Material \/ Material Instance<\/strong>. (Do NOT click the Material Button in the root of the right click menu)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"916\" height=\"781\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-90.png\" alt=\"\" class=\"wp-image-692\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-90.png 916w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-90-300x256.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-90-768x655.png 768w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Double click on the newly created <strong>Material Instance<\/strong> thumbnail to open it and assign <strong>MAT_Cha_Standard<\/strong> as their parent material.<\/li>\n\n\n\n<li>Open your skeletal mesh and assign your <strong>Material Instances<\/strong> to the material slots under the asset details panel.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If your Blender Material names match <strong>Material Instance<\/strong> names that already exist in the editor, Unreal will do its best to assign them automatically.<\/li>\n\n\n\n<li>The number of material slots should be kept to a reasonable minimum as each one will incur draw calls.&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"478\" height=\"694\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-92.png\" alt=\"\" class=\"wp-image-696\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-92.png 478w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-92-207x300.png 207w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can rename material slots by double clicking the skeletal mesh and opening the asset details panel. <\/li>\n\n\n\n<li>You cannot combine or delete slots in Unreal, this must instead be done in Blender via material assignment.<\/li>\n\n\n\n<li>You can assign the \u201cMI_Cha_Invisible\u201d material to a slot that you need present but want to be visually hidden (Can be useful for alt palettes that hide portions of the mesh).<\/li>\n\n\n\n<li>You can disable shadow casting for individual material slots via the LOD section below however this will not affect capsule shadows.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Assign and Configure your Texture Parameters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You will need to assign textures to each of your generated <strong>Material Instances<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the following steps to edit a <strong>Material Instance<\/strong> parameter:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/d1iv7db44yhgxn.cloudfront.net\/documentation\/images\/9bca6136-8f54-4f62-aefb-0ea064925717\/override-parameters.png\" alt=\"Override Material Parameters\"\/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Place a check in the box next to the parameter to enable it for editing.<\/li>\n\n\n\n<li>Type a new value in the field or left-click and drag to slide the value up and down. For Vector parameters, left-click the color swatch to activate the color picker.<\/li>\n\n\n\n<li>To reset a parameter to its default value, click the arrow icon pictured here.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">As you adjust parameters, the Material preview will update in real-time in the Material Instance Editor, and in the Level if the Material is currently applied to any Actors.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"475\" height=\"835\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-147.png\" alt=\"\" class=\"wp-image-1203\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-147.png 475w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/06\/image-147-171x300.png 171w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The majority of the parameters you will need access to can be found in the <br><strong>00 Textures<\/strong> Category at the top of the parameter list.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Base Color<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Accessible by enabling &#8220;<strong>UseBaseColorMap<\/strong>&#8221; parameter in the material instance.<br>Enabling this map replaces the custom color function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following material parameters will allow you to tweak the results of the base color texture in Unreal:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"366\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-28-144425.png\" alt=\"\" class=\"wp-image-138\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-28-144425.png 660w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-28-144425-300x166.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Base ColorMap &#8211; Disabled by default, enable to use a Base Color Map<\/li>\n\n\n\n<li>BaseColor &#8211; Assign a Base Color Map texture<\/li>\n\n\n\n<li>BaseColorTint &#8211; Tints the texture with the selected color &#8211; works like a Multiply layer<\/li>\n\n\n\n<li>BaseColorHue &#8211; Shift the hue (Color) after the tint result<\/li>\n\n\n\n<li>BaseColorSaturation &#8211; Increase or decrease the Intensity of color<\/li>\n\n\n\n<li>BaseColorBrightness &#8211; Increase or decrease the brightness<\/li>\n\n\n\n<li>Use Opacity Dithering &#8211; Switches Alpha channel from a binary cutout mask (see below) to a dithered (Feathered) cutout mask &#8211; simulates translucency<\/li>\n\n\n\n<li>Opacity &#8211; When Dithering is enabled allows a global adjustment to translucency<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The rivals standard material uses Masked blending mode, which means there are no semi transparent (translucent) pixels. Instead transparency acts as a binary discard mask, values in between 0-1 are rounded up or down based on the Opacity Mask Clip Value which by default is set to 0.333.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Normal Map<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"169\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-3.png\" alt=\"\" class=\"wp-image-158\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-3.png 672w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-3-300x75.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UseNormalMap &#8211; Enables use of Normal map, disable if not needed<\/li>\n\n\n\n<li>Normal &#8211; Assign the normal Map texture<\/li>\n\n\n\n<li>Normal Intensity &#8211; Adjust the intensity of the normal map<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">ORMS Map<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"637\" height=\"453\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-7.png\" alt=\"\" class=\"wp-image-172\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-7.png 637w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-7-300x213.png 300w\" sizes=\"auto, (max-width: 637px) 100vw, 637px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UseORMSMap <br>Disable if you want to use global values from the ORMS color Parameter to control <strong>all<\/strong> Outline, Roughness, Metallic, Shading values.<\/li>\n\n\n\n<li>ORMSColor<br>A color selection for setting mask values globally. Only visible if a channel is overridden below or the ORMS map is disabled.<\/li>\n\n\n\n<li>Outline, Roughness, Metalness, ShadingMaskChannel <br>Use checkboxes to select which channel should be sourced for each feature. One and only one channel <strong>must<\/strong> be checked per feature but multiple features can sample the same channel.<\/li>\n\n\n\n<li>Override Outlines, Roughness, Metallic, Shading<br>Enable these to use the selected Channel from the ORMSColor parameter above to control features globally instead of the texture map.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can use these parameters in different combinations to enable the use of a variety of differently packed textures. You can use one channel for multiple features or even disable the map completely and set your values globally per channel in the ORMS Color Parameter if you do not have or do not wish to use an ORMS map.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Metallic<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Metalness is disabled by default, be sure to enable \u201cUseMetallic\u201d in your material instance in order to take advantage of the metalness channel of the ORMS map.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Metalness uses a fake reflection MatCap &#8211; A greyscale image that acts as a fake reflection map useful for shiny materials. You can choose from existing MatCap texturs or make your own.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"514\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-14.png\" alt=\"\" class=\"wp-image-189\" style=\"width:381px;height:auto\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-14.png 516w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-14-300x300.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-14-150x150.png 150w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"178\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-5.png\" alt=\"\" class=\"wp-image-170\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-5.png 968w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-5-300x55.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-5-768x141.png 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UseMetalness &#8211; Must be enabled to make use of metallic effects<\/li>\n\n\n\n<li>MatCap &#8211; Assign the Reflection Texture<\/li>\n\n\n\n<li>MetallicContrast &#8211; Adjust the contrast effect in metallic regions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Opacity Map (Suffix _Opacity)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff0000\" class=\"has-inline-color\">Ensure that the compression setting of this texture is set to \u201cAlpha\u201d<\/mark><\/strong> in Unreal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you need a separate opacity mask you can enable \u201cUseOpacityMask\u201d in the material instance. This is the only way to introduce an Opacity mask when using the custom color system (When UseBaseColor is disabled)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The rivals standard material uses Masked blending mode, which means there are no semi transparent (translucent) pixels. Instead transparency acts as a binary discard mask, values in between 0-1 are rounded up or down based on the Opacity Mask Clip Value which by default is set to 0.333.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"214\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-2.png\" alt=\"\" class=\"wp-image-157\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-2.png 678w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-2-300x95.png 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Opacity Dithering &#8211; Switches Alpha channel from a binary cutout mask to a dithered (Feathered) cutout mask &#8211; simulates translucency<\/li>\n\n\n\n<li>Opacity &#8211; When Dithering is enabled allows a global adjustment to translucency<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pixel Art or Retro Textures<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you are trying to achieve a sharp pixelated visual you will need to open your <strong>Textures<\/strong> in Unreal and set your texture filtering to \u201cNearest\u201d and set MipGenSettings to \u201cNoMipMaps\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You will also need to&nbsp;set your <strong>Material Instance<\/strong> to &#8220;UseCustomSamplers&#8221;. If you do not set this the <strong>Material Instance<\/strong> will override the texture settings by default and use bilinear filtering instead which will cause them to look smooth.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vertex Color<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f30202\" class=\"has-inline-color\"><strong>Ensure that mesh has the vertex color import setting set to &#8220;Replace&#8221; in Unrea<\/strong>l and reimport your mesh if it was not set initially.<\/mark><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"703\" height=\"291\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-1.png\" alt=\"\" class=\"wp-image-156\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-1.png 703w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-1-300x124.png 300w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Vertex Colors are not a texture but instead are color values (RGBA) stored on each vertice of a model. They are often used to control masking of various effects in game engines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is possible to use Vertex color in place of or in addition to color maps, you can enable it via the &#8220;UseVertexColorMap&#8221; on your materials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa0101\" class=\"has-inline-color\">Note: If you wish to use vertex colors exclusively, ensure that your base color is set to white. By default the BaseColor map and custom Colors are grey and multiplying against this will make your Vertex colors look darker than intended.<\/mark><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"211\" src=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-4.png\" alt=\"\" class=\"wp-image-169\" srcset=\"https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-4.png 970w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-4-300x65.png 300w, https:\/\/rivals2.com\/workshop\/wp-content\/uploads\/2026\/05\/image-4-768x167.png 768w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UseVertexColorMap &#8211; Enables use of vertex color, uses a multiply blend against the color map or custom colors. When enabled, vertex color alpha will contribute to opacity as well.<\/li>\n\n\n\n<li>VertexColorTint &#8211; Tints the texture with the selected color &#8211; works like a Multiply layer<\/li>\n\n\n\n<li>VertexColorHue &#8211; Shift the hue (Color) after the tint result<\/li>\n\n\n\n<li>VertexColorSaturation &#8211; Increase or decrease the Intensity of color<\/li>\n\n\n\n<li>VertexColorBrightness &#8211; Increase or decrease the brightness<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In Unreal you use Textures to control the surface visuals of your geometry by assigning them to Material Instances and assigning these Material Instances to material slots on your Skeletal Mesh. All materials must be authored in Unreal, Blender Materials do not translate to Unreal.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","knowledgebase_cat":[4],"knowledgebase_tag":[],"class_list":["post-679","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-character-creation"],"_links":{"self":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase"}],"about":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/types\/knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/comments?post=679"}],"version-history":[{"count":38,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/679\/revisions"}],"predecessor-version":[{"id":1679,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/679\/revisions\/1679"}],"wp:attachment":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/media?parent=679"}],"wp:term":[{"taxonomy":"knowledgebase_cat","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_cat?post=679"},{"taxonomy":"knowledgebase_tag","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_tag?post=679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}