Try   HackMD

How to Check

  • Check trait mesh filenames (renaming)
  • Remove extra stuff we don't need (body mesh + colliders)
    • Possible edge cases depending on category, tattoo may need body mesh
  • Making sure materials are principled BSDF (sometimes are mtoon)
    • Double check all meshes because many have multiple materials
  • Group everything under the default Scene Collection
  • Make sure everything is parented by selecting armatures and moving around

Renaming

Compare Female Blends

Comparing the names in blender to the reference filenames, these are the ones to look at.

View summary
Unmatched files in blend (Brace_FEMALE):


Total unmatched files: 0 out of 79


----------------------------------------------------------

Unmatched files in blend (ClipsAndKanzashi_FEMALE):


Total unmatched files: 0 out of 17


----------------------------------------------------------

Unmatched files in blend (Clothing1_FEMALE):


Total unmatched files: 0 out of 293


----------------------------------------------------------

Unmatched files in blend (Clothing2_FEMALE):

Inspector_Pink_Silver
Inspector_Black_Silver
Inspector_Blue_Black
Exotiic_Angel_Leotard
Sailor_Spring_Uniform_Blue_White
Sailor_Spring_Uniform_White_Orange
Inspector_Black_Red
Inspector_Yellow_Black
Sailor_Spring_Uniform_Red_Orange
Sailor_Spring_Uniform_Green_Hunter
Sailor_Spring_Uniform_White_Yellow
Sailor_Spring_Uniform_Green_Purple
Sailor_Spring_Uniform_Green_Black
Sailor_Spring_Uniform_Dark_Blue_Light_Blue
Sailor_Spring_Uniform_Dark_Blue_Blue
SPECIAL OTHER-51 Manananggal Torso
Inspector_Red_Black
Sailor_Spring_Uniform_White_Black
Apron_Paw
Inspector_White_Silver
Sailor_Spring_Uniform_Black_Red
Sailor_Spring_Uniform_White_Teal
Sailor_Spring_Uniform_White_Green
Sailor_Spring_Uniform_Brown_Orange
Inspector_White_Black
Inspector_Teal_Silver
Sailor_Spring_Uniform_White_Brown
Sailor_Spring_Uniform_Wine_White
Sailor_Spring_Uniform_White_Blue

Total unmatched files: 29 out of 293


----------------------------------------------------------

Unmatched files in blend (Earrings_FEMALE):

Paper_Purple_Spirals

Total unmatched files: 1 out of 32


----------------------------------------------------------

Unmatched files in blend (Eyes_FEMALE):

GLASSES-28 Eye of Overflowing Power Red
GLASSES-29 Eye of Overflowing Power Red
GoldenRoyalEyes
GLASSES-26 Eye of Overflowing Power Yellow
EyeofOverflowingPowerPurple
EyeofOverflowingPowerRed
DeepDwellerEyes
SilverAssassin
EyeofOverflowingPowerPink
SoulStealerEyes
EyeofOverflowingPowerYellow
ForestHorrorGaze
GLASSES-27 Eye of Overflowing Power Pink

Total unmatched files: 13 out of 11


----------------------------------------------------------

Unmatched files in blend (FaceOther_FEMALE):

Freckles+_Rose_Eyepatch
Eyepatch_Bandana+_Freckles
Ethereum_Crystal_Forehead+_Freckles
Circle_Orange+_Freckles

Total unmatched files: 4 out of 21


----------------------------------------------------------

Unmatched files in blend (Glasses_FEMALE):

Omni_Goggles_Mk.2
Glasses_Thick_Black

Total unmatched files: 2 out of 24


----------------------------------------------------------

Unmatched files in blend (Hair1_FEMALE):

Buns_GreenBlack.001
Mid_Brown
BunSilver

Total unmatched files: 3 out of 234


----------------------------------------------------------

Unmatched files in blend (Hair2_FEMALE):

Long_Pink_Yellow
Buns_Green_Blue
Mid_Blue_Green
Quad_Tails_Blonde_Pink
Braided_Pink_Purple
Buns_Black_Pink
Twintails_Pink_Yellow
BunSilver
Mid_Gray_Silver
Twintails_Blonde_White
Mid_Blonde_Orange
Long_Purple_Pink
Long_Purple_Green
Mid_White_Green
Long_Silver_Blue
Twintails_Red_Orange
Twintails_Green_Blue
Quad_Tails_Green_Gray
Long_Green_Brown
Twintails_Blue_Dark_Blue
Twintails_Brown_Green
Mid_Orange_Yellow
Twintails_Pink_Black
Short_Blonde_Yellow
Quad_Tails_Blonde_Blue
Ponytail_Blue_Black
Long_Gray_Black
Short_Blue_Green
Twintails_Silver_Blue
Long_Black_White
Long_Pink_Gray
Twintails_Blonde_Brown
Twintails_Green_Brown
Buns_Blue_Red
Quad_Tails_Gray_Black
Braided_Orange_Red
Buns_Pink_Black
Braided_Black_Green
Long_White_Blue
Buns_Black_Green
Long_Blonde_Brown
Brauded_Green_Pink
Quad _Tails_Red
Quad_Tails_Purple_Blue
Buns_Blue_Yellow
Long_Blue_Black
Ponytail_Brown_Green
Ponytail_Pink_White
Mid_White_Gold
Short_Green_Black
Long_Pink_Green
Mid_Red_Blue
Buns_Pink_Purple
Long_Green_Black
Buns_Brown_Blonde
Braided_Green_Gray
Long_Pink_Purple
Bun_Black_Red
Buns_Blonde_Black
Buns_Red_Black
Ponytail_Green_Blue
Long_White_Green
Twintails_Black_Purple
Short_Red_Brown
Short_Brown_Black
Braided_Black_Red
Mid_Blue_Blonde
Twin_Tails_White_Pink
Long_Silver_Blonde
Long_Blue_Green
Mid_Brown
Long_Orange_Red
Mid_Blonde_Pink
Long_Black_Orange
Mid_Blonde_White
Mid_Silver_Pink
Twintails_White_Red
Twintails_White_Blue
Buns_Brown_Pink
Buns_Blue_Black
Twintails_Gray_Pink
Mid_Black_Gold
Long_White_Pink
Long_Black_Blue
Long_Brown_Black
Quad_Tails_White_Blonde
Long_Gray_Blonde
Long_Silver_Gray
Quad_Tails_Purple_Green
Twintails_Green_Black
Long_Red_Orange
Twintails_Black_Green
Buns_Green_Black.001
Buns_Purple_Blue
Quad_Tails_Black_Red
Braided_Red_Green
Short_Pink_Yellow
Short_Purple_Pink
Twintails_Purple_Green
Mid_Orange_Green
Long_Black_Green
Ponytail_Green_Pink
Long_Blonde_Blue
Long_Pink_Blonde
Mid_Blonde_Blue
Mid_Silver_Red
Mid_Pink_Blonde
Mid_Black_Pink
Twintails_Red_Black
Braided_Pink_Green
Braided_Purple_Green
Mid_Red_Purple
Twintails_Pink_Red
Twintails_Red_Blue
Twintails_White_Blonde
Long_Pink_Blue
Long_Blonde_Red
Buns_Black_Yellow
Ponytail_Blue_Pink
Mid_Blonde_Gold
Twintails_Brown_Red
Bun_Green_Purple
Bun_Silver
Twintails_Green_Purple
Twintails_Purple_Black
Braids_Green_Pink
Buns_Black_Gray
Buns_Tan_Brown
Ponytail_Blue_Green
Buns_Purple_Yellow
Long_Blonde_Green
Quad_Tails_Brown_Blue
Twintails_Gray_Black
Twintails_Blue_Black
Long_Black_Gray
Mid_Purple_Yellow
Quad_Tails_Green_Red
Long_Black_Red
Quad_Tails_Silver_Blue
Short_Blonde_Red
Twintails_Green_White
Mid_Green_Brown
Buns_Brown_Green
Short_Black_Blue
Buns_Blue_Pink
Twintails Brown
Long_Blue_Pink
Buns_Blue_Green
Mid_Red_Green
Bun_Green_Black

Total unmatched files: 150 out of 234


----------------------------------------------------------

Unmatched files in blend (HairAccessoryOther_FEMALE):


Total unmatched files: 0 out of 8


----------------------------------------------------------

Unmatched files in blend (Halos_FEMALE):

Haloof_Petals
Cyber_Halo_Green

Total unmatched files: 2 out of 6


----------------------------------------------------------

Unmatched files in blend (Hats_FEMALE):


Total unmatched files: 0 out of 8


----------------------------------------------------------

Unmatched files in blend (HeadAccessoryOther_FEMALE):

Autumn_Flower_Crown_plus_Flower_Crown_Spring_Top_plus_Jeweled

Total unmatched files: 1 out of 72


----------------------------------------------------------

Unmatched files in blend (Head_FEMALE):


Total unmatched files: 0 out of 43


----------------------------------------------------------

Unmatched files in blend (Masks_FEMALE):

Festival_Mask_Oni_Galax7_Festival_Mask_Oni_Galaxy

Total unmatched files: 1 out of 7


----------------------------------------------------------

Unmatched files in blend (Neck_FEMALE):

Gold_Cross+_Lanyard
Cross_Choker_Red+_Ethereum_Ribbon_Red
Tech_Chokerwith_Cross_Solid_Gold
Tech_Chokerwith_Cross_Steel
Bell_Choker+_Ethereum_Ribbon_Blue
Gold_Cross+_Spiked_Choker
Paper_Earring_Necklace_Blackand_Blue
Tech_Chokerwith_Cross_Gold
Rose_Choker+_Ethereum_Ribbon_Green
Dancer_Collarwith_Tie
Spring_Choker+_Ethereum_Ribbon_Pink
Earring_Necklace_Gray
Tech_Chokerwith_Cross_Gold_and_Blue
Bell_Choker+_Ethereum_Ribbon_Yellow

Total unmatched files: 14 out of 53


----------------------------------------------------------

Unmatched files in blend (RibbonsAndBows_FEMALE):

Ribbon_Red

Total unmatched files: 1 out of 22


----------------------------------------------------------

Unmatched files in blend (Sigil_FEMALE):

Spike_Sigil_Gold_+_Sun_Sigil
Angel_Sigil_Purple_Red
Banishment_Sigil_+_Sun_Sigil_Green
Angel_Sigil_Pink_+_Spike_Sigil_Pink
Bullet_Sigil_+_Spike_Sigil
Angel_Sigil_Purple_+_Sun_Sigil_Purple
Angel_Sigil_Pink_+_Bullet_Sigil
Dragon_Blue_Sigill
Fleur_de_Lis_Sigil_+_Sun_Sigil_Black
Angel_Sigil_Pink_+_Spike_Sigil_Purple
Esper_Sigil_+_Sun_Sigil_Pink
Beams_of_Holy_Light_Sigil_+_Esper_Sigil
Energized_Sigil_+_Esper_Sigil
Esper_Sigil_+_Spike_Sigil_Red
Fleur_de_Lis_Sigil_+_Sun_Sigil_Red
Beams_of_Holy_Light_Sigil_+_Sun_Sigil_Blue
Spike_Sigil_White_+_Sun_Sigil_White
Alchemy_Sigil_+_Sun_Sigil_Pink
Spike_Sigil_Pink_+_Sun_Sigil_Pink
Bullet_Sigil_+_Golden_Light_Sigil
Fleur_de_Lis_Sigil_+_Sun_Sigil_Green
Esper_Sigil_+_Galaxy_Sigil
Angel_Sigil_White_+_Beam_Sigil
Spike_Sigil_Red_+_Sun_Sigil_Red
Esper_Sigil_+_Spike_Sigil_White
Angel_Sigil
Esper_Sigil_+_Trident_Sigil
Fallen_Angel_Sigil_+_Spike_Sigil
Angel_Sigil_Gray_+_Spike_Sigil_Gray
Beam_Sigil_+_Esper_Sigil
Red_Dragon_Laser_Sigil_+_Beam_Sigil
Amethyst_Flame_Sigil_+_Esper_Sigil
Fleur_de_Lis_Sigil_+_Trident_Sigil
Esper_Sigil_+_Fleur_de_Esper_Sigil_+_Fleur_de_Lis_Sigil
Fleur_de_Lis_Sigil_+_Sun_Sigil_Blue
Esper_Sigil_+_Sun_Sigil_Blue
Fleur_de_Lis_Sigil_+_Spike_Sigil_Green
Fleur_de_Lis_Sigil_+_Spike_Sigil_White
Angel_Sigil_White_+_Spike_Sigil_White
Sun_Sigil_+_Spike_Sigil_Gold
Angel_Sigil_White_+_Bullet_Sigil
Angel_Sigil_White_Red
Angel_Sigil_+_Spike_Sigil_Gold

Total unmatched files: 43 out of 84


----------------------------------------------------------

Unmatched files in blend (SpecialOther_FEMALE):

Shroom_Pouch_Thunder_Spirits
147_Feminine
Pink_X_Clips
Galaxy_Quiver_Galaxy
Elemental_Aura_Love_Floating_Sakura_Petals
Half _Body_HUD_Green
Banshee_Skin Gray_Restless _Spirits_Shroom_Pouch
Floating_Petals_Meadow_Flowers
Chaos _Spirits_Shroom_Pouch
Galaxy_Half_Body_HUD
Speaker_Brace_Ethereum_Crystal_Chest
Festival_Mask_Friendly_Ninetails_Hip_Skeletal_Hands_Gold_Chest
Shroom_Pouch _Water_Spirits
Galaxy_Half_Body_HUD_Spider_Arms_Galaxy
Nature_Spirits_Shroom_Pouch
Ethereum_Crystal_Chest_Spider_Arms
147_Body
Lantern_Lit_Souls
147_Clothes
Tsunami_Heart_Dual.001
Components.002
Banshee_Skin_White_Bloodbath
Flame_Spirits_Shroom_Pouch
Banshee_Skin_White_Restless_Spirits_Shroom_Pouch
Banshee_Skin_Gray_Ethereum_Crystal_Chest
Magic_Circle_Mystic_Spider_Arms
SPECIAL OTHER-45 Chest Pink X Clips.001
Raging_Flame_Quiver

Total unmatched files: 28 out of 60


----------------------------------------------------------

Unmatched files in blend (Tails_FEMALE):


Total unmatched files: 0 out of 8


----------------------------------------------------------

Unmatched files in blend (Tattoo_FEMALE):

Arms_Dragons_Face_Claw
X_I_I_I_Assassin_Face_Tattoo
Barcode_Eye_Bottom
Scars_Body_Scar_Face
Arms_Circle_Face_Warrior_Paint
Arm_Circle_Face_Warrior_Paint
Arms_Cross_Eye_Edgy_Drip
Face_Tattoo_Whiteand_Red
Face01
Arm_Barcode_Face_Whiskers
Arms_Mystic_Witch_Tattoos_Chest_Snake
Arms_Stripes_Shoulders_Claws
Arms_Waves_Face_Tsunami
Arms_Scars_Eyes_Hunter_Cheeks
Chest_Fleurde_Lis
Face_Claw_Scars_Body
Face_Scar_Scars_Body
Arms_Potions_Chest_Magic_Hands
Arm_Barcode_Scars_Body_Scar_Face
Eye_Bottom_Stomach_Dragon

Total unmatched files: 20 out of 64


----------------------------------------------------------

Unmatched files in blend (WeaponBrace_FEMALE):


Total unmatched files: 0 out of 12


----------------------------------------------------------

Unmatched files in blend (Weapons_FEMALE):

Bolt_Action_Rifle_and_Chainsaw_1
Floating_Shuriken_Giant_Shuriken
Bolt_Action_Rifle_and_Chainsaw_2

Total unmatched files: 3 out of 45


----------------------------------------------------------

Unmatched files in blend (Wings_FEMALE):

Tech_Wings_Pink/Blue
Tech_Wings_Pink
Tech_Wings_Green/Pink
Pheonix_Angel_Wings
Tech_Wings_Black_Purple/Red

Total unmatched files: 5 out of 28

Column 2 of the CSV files here have the renamed version of each trait being used across the project. These are the names that each mesh should have in the blend file.

CSVs of filenames: https://github.com/M3-org/anata/tree/main/metadata/csv/filenames


Remove extra stuff

Many blends have extra stuff like colliders / body meshes we don't need. Possible edge cases depending on category, tattoo may need body mesh.

Check materials

Check shader graph through all the meshes, some may have more than 1 material. If there are mtoon shaders set as materials, then run this script in the blend file via scripting tab to convert all to principled BSDF. If alpha channel was used, will need to fix all of those.

import bpy

# Get all materials in the scene
materials = bpy.data.materials

# Iterate over each material
for material in materials:
    if material.node_tree:
        nodes = material.node_tree.nodes
        
        # Remove all nodes except Image Texture and Material Output
        nodes_to_remove = [node for node in nodes if node.type != "TEX_IMAGE" and node.type != "OUTPUT_MATERIAL"]
        for node in nodes_to_remove:
            nodes.remove(node)
        
        # Check if the material has an Image Texture node
        image_texture = None
        for node in nodes:
            if node.type == "TEX_IMAGE":
                image_texture = node
                break
        
        # If Image Texture node exists, connect it to Base Color
        if image_texture:
            # If Principled BSDF node doesn't exist, add it
            principled_bsdf = nodes.get("Principled BSDF")
            if not principled_bsdf:
                principled_bsdf = nodes.new("ShaderNodeBsdfPrincipled")
            
            # Connect Image Texture to Base Color
            has_connection = False
            for link in material.node_tree.links:
                if link.to_node == principled_bsdf and link.to_socket.name == "Base Color":
                    if link.from_node == image_texture:
                        has_connection = True
                        break
            
            # If the connection doesn't exist, create it
            if not has_connection:
                material.node_tree.links.new(image_texture.outputs["Color"], principled_bsdf.inputs["Base Color"])
            
            # Check if the material has a Material Output node
            material_output = None
            for node in nodes:
                if node.type == "OUTPUT_MATERIAL":
                    material_output = node
                    break
            
            # If Material Output node doesn't exist, add it
            if not material_output:
                material_output = nodes.new("ShaderNodeOutputMaterial")
            
            # Connect Principled BSDF to Material Output
            has_bsdf_connection = False
            for link in material.node_tree.links:
                if link.from_node == principled_bsdf and link.from_socket.name == "BSDF":
                    if link.to_node == material_output and link.to_socket.name == "Surface":
                        has_bsdf_connection = True
                        break
            
            # If the connection doesn't exist, create it
            if not has_bsdf_connection:
                material.node_tree.links.new(principled_bsdf.outputs["BSDF"], material_output.inputs["Surface"])
            # Remove unconnected Image Texture nodes
            for node in nodes:
                if node.type == "TEX_IMAGE" and not node.outputs["Color"].is_linked:
                    nodes.remove(node)

Group collections

Move everything to be under the root Scene Collection, dragging meshes to be parented under their armature. Should look like the right pic.

Final Check

Make sure everything is parented by selecting armatures and moving around. If all looks good, save the blend and check off this list.


Extra Info

Code Notes

Check if the exported glbs from a .blend match the folder names in current directory (like in files/male/HATS/*)

for file in /home/jin/Desktop/Exports/*.glb; do
    base=$(basename "$file" .glb)
    if [ -d "$base" ]; then
        echo -n "."
    else
        echo "$base"
    fi
done

compare_filenames_blender.py

Compares the filenames from the blend file to the canonical references based on project name scheme. The references are generated from column 2 in metadata/csv/filenames/female_BRACE.csv where it has original,renamed versions of all traits.

import sys
import os

def read_file(file_path):
    with open(file_path, 'r') as f:
        lines = f.readlines()
    return {line.strip() for line in lines}

if __name__ == '__main__':
    if len(sys.argv) != 3:
        print("Usage: python compare_files.py <file_a_path> <file_b_path>")
        sys.exit(1)

    file_a_path = sys.argv[1]
    file_b_path = sys.argv[2]

    file_a_lines = read_file(file_a_path)
    file_b_lines = read_file(file_b_path)

    unmatched_blend = file_a_lines - file_b_lines

    unmatched_file_b = [file_name for file_name in file_b_lines if file_name not in file_a_lines]

    file_a_basename = os.path.splitext(os.path.basename(file_a_path))[0]  # Get the basename of file A without extension

    print(f"Unmatched files in blend ({file_a_basename}):")  # Print the basename

    print()
    for file_name in unmatched_blend:
        print(file_name)

    print()
    print(f"Total unmatched files: {len(unmatched_blend)} out of {len(file_b_lines)}")
    print()

compare.sh

This script compares blender mesh filenames and the references in out/category_body.txt then prints out a master list of all the blends and names that don't match.

#!/bin/bash

python3 compare_filenames_blender.py out/Brace_FEMALE.txt references/BRACE.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/ClipsAndKanzashi_FEMALE.txt references/CLIPS_AND_KANZASHI.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Clothing1_FEMALE.txt references/CLOTHING.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Clothing2_FEMALE.txt references/CLOTHING.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Earrings_FEMALE.txt references/EARRING.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Eyes_FEMALE.txt references/EYES.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/FaceOther_FEMALE.txt references/FACE_OTHER.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Glasses_FEMALE.txt references/GLASSES.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Hair1_FEMALE.txt references/HAIR.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Hair2_FEMALE.txt references/HAIR.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/HairAccessoryOther_FEMALE.txt references/HAIR_ACCESSORY_OTHER.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Halos_FEMALE.txt references/HALOS.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Hats_FEMALE.txt references/HATS.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/HeadAccessoryOther_FEMALE.txt references/HEAD_ACCESSORY_OTHER.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Head_FEMALE.txt references/HEAD.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Masks_FEMALE.txt references/MASKS.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Neck_FEMALE.txt references/NECK.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/RibbonsAndBows_FEMALE.txt references/RIBBONS_AND_BOWS.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Sigil_FEMALE.txt references/SIGIL.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/SpecialOther_FEMALE.txt references/SPECIAL_OTHER.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Tails_FEMALE.txt references/TAIL.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Tattoo_FEMALE.txt references/TATTOO.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/WeaponBrace_FEMALE.txt references/WEAPON_BRACE.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Weapons_FEMALE.txt references/WEAPON.txt >> meta.txt
echo >> meta.txt
echo "----------------------------------------------------------" >> meta.txt
echo >> meta.txt
python3 compare_filenames_blender.py out/Wings_FEMALE.txt references/WINGS.txt >> meta.txt