A Journey through the Wardrobe ****

PsiweaponPsiweapon Posts: 49
edited September 2013 in Art and Sound
HAI GUISE :mrgreen:

Okay, since I want, someday, to be able to make new armor, after looking around the wardrobe directories, and not being able to make much sense of them, I thought "What the ****, the Ogre import/export plugin for Blender exists for some reason".

So I fired Blender up and imported the Fur Hide armor set, and then took a peek at the Pimp (bwa ha ha ha... way to name stuff, Runic :D ) armor set. There are things I can make sense of, and there are things I can't.

Things I can't make sense of:

Textures:
-Why do most of the areas in the toon have "null_01.dds" assigned as a texture when there's a perfectly serviceable and correctly mapped texture lying around?
-Why are said textures in .png format when apparently everything else in the game spits to your face anything not in .dds format?
-Even more intriguing, in the Fur Hide armor set, why are the tufts of white fur in say, the gloves, understandably assigned to their texture while the rest of the gloves aren't?

Bones:
-What's the bone in the middle of the face for? Is it simply a counterpart to the lower jaw bone?
-What's the BIG **** MAMMOTH BONE in the floor for? Some sort of character orientation reference?

Comments

  • ArkhamArkham Posts: 3,296 ✭✭✭
    Can't answer all of these but I'll get what I can.

    - is null_01 assigned to the "skin" areas of the character? If so it might just be saying to the engine "use whatever's already there by default."
    - The appearance of .png might have to do with how GUTS handles things vs. how the game handles things. Alternatively, TL1 used PNGs and DDSes, so those might be holdovers from the transition between developing for the first game and the second. For what it's worth I have noticed that the file extension doesn't matter; if a .material file calls on a PNG, and the actual file is in DDS format, it doesn't appear to make a difference so long as the pre-extension part of the filename is correct.
    - The bone in the middle of the face is most likely the eyes, specifically the pupil/iris part, so the character can look around and such during idle and fidget animations, and not just blankly stare forward the way TL1 characters did. (I think there might be an eyelid bone as well? I forget exactly how these are set up, but there is definitely at least one bone and possibly more doing something involving the eyes.)
    Kv2n8MF.jpg

    Mods:
    Arkham's Armory (TL2) | Lego Wizard pet (TL1)

    Check out the Torchlight fan group #The-Lure-of-Ember on dA!
  • Arkham wrote:
    Can't answer all of these but I'll get what I can.

    - is null_01 assigned to the "skin" areas of the character? If so it might just be saying to the engine "use whatever's already there by default."
    - The appearance of .png might have to do with how GUTS handles things vs. how the game handles things. Alternatively, TL1 used PNGs and DDSes, so those might be holdovers from the transition between developing for the first game and the second. For what it's worth I have noticed that the file extension doesn't matter; if a .material file calls on a PNG, and the actual file is in DDS format, it doesn't appear to make a difference so long as the pre-extension part of the filename is correct.
    See below :) :ugeek:
    - The bone in the middle of the face is most likely the eyes, specifically the pupil/iris part, so the character can look around and such during idle and fidget animations, and not just blankly stare forward the way TL1 characters did. (I think there might be an eyelid bone as well? I forget exactly how these are set up, but there is definitely at least one bone and possibly more doing something involving the eyes.)

    I can't see any eyelid bones. Maybe the same bone handles both looking around and blinking? Looking around with horizontal movement, blinking with vertical movement?
    Correction: I have seen the eyelid bone now. I must assume that in the previous model I was looking at, it was superimposed to the eye bone.

    *********************************************

    FURTHER ANALYSIS:

    Apparently we can divide wardrobe sub-meshes into two broad categories, for now I'll be calling them ANATOMY and EXTRAS.


    =ANATOMY
    -Everything that either conforms to or substitutes base model geometry
    -Assigned to the "null_01.dds" texture in the .mesh file, and as such show up in white when imported to Blender
    --Null_01.dds is a "nominal" placeholder texture file: it is all white and as small as possible while conforming to the (X=2^z)&(Y=2^z) rule (textures must be square and the X and Y sizes must be a power of two), in this case z=2 as "null_01.dds" is 4x4 pixels in size.
    --The game engine must employ some external method to assign to these sub-meshes their proper texture files, since the relevant texture files, although present in the wardrobe folder and apparent in-engine, are not referenced in the .material file.
    ---This may be a reason why 1) these textures are in .png format 2) the wardrobe system uses a rigid naming scheme.
    -We can safely hypothesize that anatomy sub-meshes are mandatory, i.e.: Present in every wardrobe model.
    --With the exception of sub-meshes completely obscured by extras, which are then either not present or stumped, probably for reasons of resources economy and to avoid clipping.
    -The proper textures for these sub-meshes can be (roughly?) mapped on top of the base model textures, even if the geometry is not the same.
    -We can safely hypothesize that anatomy sub-meshes are symmetrical, since apparently they map to base model textures and these are consistently symmetrical.
    --Correction: They are usually symmetrical but apparently symmetry is not mandatory.
    -We can safely hypothesize that anatomy sub-meshes are meant to be flexible

    =EXTRAS
    -Everything that "juts out", I.E., doesn't substitute or conform to the base model geometry, but which in turn can obscure it.
    -Assigned to the "HU_(WARDROBEMODELNAME)_EXTRA.DDS", and properly showing up in Blender
    --Correspondingly, this texture file is referenced "as usual" in the "HU(G)_(WARDROBEMODELNAME).MATERIAL" file
    -We can safely hypothesize that these sub-meshes are optional, i.e.: Not present in every wardrobe model.
    --Still, when present, they will follow a rigid naming scheme.
    ---Caveat: What use is made of the EXTRA submeshes depends entirely on the wardrobe model: the boots in the Sturmbeorn wardrobe (STURM_01) use calf extras "Hum_F/ExCalf" for kneepads, which apparently is the norm, but also uses foot extras "Hum_F/ExFoot" for the main part of the shin guards (!) instead of the calf "Hum_F/Calf" submesh, which in this case is completely obscured by extras, deprecated and reduced to a stump. The forearm guards in the default berserker wardrobe are hand extra meshes as well, instead of forearm anatomy meshes.
    -We can safely hypothesize that extra sub-meshes *can* be asymmetrical.
    -We can safely hypothesize that extra sub-meshes are meant to be rigid, save for pauldron linking parts and belt tassets.

    NOTE: Further analysis of wardrobe models seems to indicate that it makes little difference whether anatomy submeshes have their proper textures or the null texture referenced in the .material file: The default embermage wardrobes have all their textures properly assigned, while the default berserker wardrobes use the anatomy-null texture / extra-proper texture system I proposed above. It assume it must be some sort of product of the specific workflow followed by the artist, or conditioned by some factor not yet unveiled. On the other hand, this effectively confirms that the game engine must have some texture assignment procedure that bypasses .material file texture assignation, at least when the texture referenced in the .material file is the null texture.
  • PhanjamPhanjam Posts: 3,297 ✭✭✭
    In spite of your use of the "****" word, I think you are actually enjoying this in a twisted sort of way :twisted:
    Torchmodders
    Torchlight 1 Class Pack (TL1CP) Mod for TL2: Steam | RGF
Sign In or Register to comment.