Shader Based (1.18-1.19.4)
Last updated
Last updated
Oraxen alters this second texture by using colored leather armor and shaders. Armor has like every item a texture in the inventory and in the hand, but it also has a second texture when worn on the body This second appearance has some limitations and requires some practice. We will use a trick with leather armor and colors.
If you are using shaders via either the Optifine or Iris mod, you will need some additional steps. For Optifine, everything is handled automatically. For Iris, you also need CIT Resewn, everything else is handled for you.
You must be careful when naming your armors to get the textures detected correctly.
If you want to create an amethyst armor set, then your item sections must be: - amethyst_helmet - amethyst_chestplate - amethyst_leggings - amethyst_boots And in step 2 you'll be able to create the textures: - amethyst_armor_layer_1.png - amethyst_armor_layer_2.png
For this we will be using the below config example for reference:
Make sure that the items ID, or the first line in the above example, follows the pattern armorname_armortype
.
For the rest of the above set it would be ruby_chestplate
, ruby_leggings
and ruby_boots
.
This is also why LEATHER is the only material that works. Custom Armor can not be made with Diamond as the base material. To get custom armor amounts, simply add Attribute Modifiers.\
Now the fun begins. We're going to use a vanilla shader to associate an armor style with a specific color. Thanks to Ancientkingg for developing the shader used by Oraxen.
You'll have to create two textures for your armor. You can download the ruby example here: https://oraxen.com/resources/armor_rest.png https://oraxen.com/resources/armor_leggings.png
Make sure your armors resolution fits the value set in settings.yml. By default armor_resolution is set to 16. This means that your textures must be 64x32 pixels. If you want to use a higher resolution, you'll have to change the value in settings.yml. For example armor_layer files with 128x64 pixels must have a resolution of 32 in settings.yml. You cannot have some at 64x32 and some at 128x64, it is either or.
Also make sure that the bit-depth of your textures is 32 bits. Anything else means not fully transparent, and the pixels the shader uses will be black. This will not break Optifine/Iris versions but will break all vanilla versions.
You can make your texture emissive (no optifine required) by adding another file with the same name ending in _e.png. For example ruby_armor_layer_1_e.png
This texture will be treated as an emissivity map, where the alpha of the pixel will be treated as the amount of emissivity.
To get your textures registered correctly, their name need to contain armor_layer_X
.
For example: ruby_armor_layer_1.png
andruby_armor_layer_2.png
You can put them in any folder of the pack textures, ~/textures/default/armors
is suggested.