Author Topic: Costume File Formats  (Read 28470 times)

Arachnion

  • Elite Boss
  • *****
  • Posts: 642
  • Professional Cynic
Costume File Formats
« on: June 14, 2013, 10:37:19 PM »
Hello.

This thread is for looking over Sentinel and Demo costume sections, to possibly make them into their own .costume files.

EDIT:
Linking this here since goodtime brought it up below in the thread http://paragonwiki.com/wiki/Costume_File

EDIT 2:
I feel this needs to be said. DO NOT EDIT SENTINEL XML FILES. They will break and become unusable.

EDIT 3:
To go with the above warning, I highly recommend (on Windows) right clicking and copying the Sentinel XML you want the costume from.

Be sure you choose "Copy" not "Cut". For other OS simply copy the file how you would normally, or google for help if you need info.

Then put your new copy somewhere you'll find it easily.

You will be able to extract your costume from the copy later, when you want to.

Doing this will effectively backup your original XML files and help keep them safe.

EDIT 4:
Found that list of demo part names I mentioned. Credit for the list goes to Codewalker. ;D

Parts List:
Code: [Select]
These are PARTSNAME identifiers in a demo record player costume area.

Numbers correspond to each block.

Third PARTSNAME line is Head, etc.

   1 Pants
   2 Chest
   3 Head
   4 Gloves
   5 Boots
   6 Belt
   7 Hair
   8 Face
   9 Eye Detail
   10 Chest Detail
   11 Shoulders
   12 Back
   13 Right Weapon
   14 Neck
   15 Right Upper Arm
   16 Collar
   17 Broach
   18 Cape
   19 Aura
   20 Skirt
   21 Top
   22 Sleeves
   23 Cranium
   24 Jaw
   25 Left Weapon
   26 Two Handed Left Weapon
   27 Two Handed Right Weapon
   28 Tail


Demo Costume Block:
Code: [Select]
0   54  COSTUME 1 9bb2ff -7.563277 0.174603 -0.015873 -0.269841 0.269841 -0.492063 -0.301587 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873 -0.015873
0   54  PARTSNAME Tight !X_Hips_FireIce_02 none 0000cc01 00ff5700
0   54  PARTSNAME Jackets_Sleeves skin_tights Top_8 0000cc01 00ff5700
0   54  PARTSNAME V_fem_Head.GEO/GEO_Head_V_Asym_Standard !X_Organic_Armor_Fem_Skin_Face_01 !v_sf_face_Lips 0000cc01 00ff5700
0   54  PARTSNAME Smooth !X_Fem_Gloves_Skin_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME N_Fem_Steampunk_01.geo/GEO_N_LlegR_Boots_Clsc_Steampunk_01 !X_N_Fem_Boots_Clsc_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME N_Fem_Steampunk_01.geo/GEO_N_Belt_Clsc_Steampunk_01 !X_N_Fem_Belt_Clsc_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME Gunslinger_Fem_Port.geo/GEO_N_Hat_Gunslinger_01 !X_Hat_Gunslinger none 0000cc01 00ff5700
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 0000cc01 00ff5700
0   54  PARTSNAME N_Fem_Steampunk_01.geo/GEO_N_Emblem_Bustier_Clsc_Steampunk_02 !X_N_Fem_Emblem_Clsc_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME none none none 0000cc01 00ff5700
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 0000cc01 00ff5700
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME N_Fem_Steampunk_01.geo/GEO_N_Top_Jacket_Clsc_Steampunk_01 !X_N_Fem_Jacket_Clsc_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME N_Fem_Steampunk_01.geo/GEO_N_Sleeves_Jacket_Clsc_Steampunk_01 !X_N_Fem_Sleeve_Skin_Clsc_Steampunk_01 none 0000cc01 00ff5700
0   54  PARTSNAME none none none 0000cc01 00ff5700
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 00000000 00000000
0   54  PARTSNAME none none none 0000cc01 00ff5700 0000cc01 00ff5700 WEAPONS/Custom_Pistols/Fem_PistolLeft_SemiAuto01.fx
0   54  PARTSNAME none none none 0000cc01 00ff5700 0000cc01 00ff5700 WEAPONS/Custom_Pistols/Fem_PistolRight_SemiAuto01.fx
0   54  PARTSNAME none none none 0000cc01 00ff5700

Standard Costume File Excerpt:
Code: [Select]
{
Scale -8.824
BoneScale -0.9675
ShoulderScale -0.2361
ChestScale -0.1114
WaistScale -0.3318
HipScale -0.507
LegScale 7.003e-005
HeadScales  -1,  0.72,  -1.585e-005
BrowScales  -0.47,  0.04,  -0.62
CheekScales  -0.44,  -0.5,  0.44
ChinScales  -1,  0.41,  -0.12
CraniumScales  -0.29,  0.7,  0.02
JawScales  -0.72,  -1,  1
NoseScales  -0.48,  0.47,  0.38
SkinColor  247,  200,  170
NumParts 28
BodyType 1
CostumePart ""
{
Geometry n_fem_t9i24_01.geo/geo_hips_t9i24_01
Texture1 !x_hips_t9i24_01
Texture2 none
DisplayName P3237373182
RegionName "Lower Body"
BodySetName Armored
Color1  0,  0,  0
Color2  0,  0,  0
Color3  0,  0,  0
Color4  0,  0,  0
}


CostumePart ""
{
Geometry V_FEM_TOP.GEO/GEO_Chest_Jackets_Clockwork_01
Texture1 !X_Clockwork_Chest_01
Texture2 !Chest_V_Clockwork_01_Mask
DisplayName P566009771
RegionName "Upper Body"
BodySetName Jackets
Color1  0,  0,  0
Color2  0,  0,  0
Color3  0,  0,  0
Color4  0,  0,  0
}

Sentinel+ XML Costume Block:
Code: [Select]
<costume>
<bodytype>0</bodytype>
<skincolor>ff6b98dd</skincolor>
<scales>25.000000 1.000000 0.000000 0.668498 0.505495 0.617888 0.000000 0.020000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</scales>
<parts count="28">
<part>Armored !X_Enforcer_Hips_Mask !Hips_V_Enforcer_01_Mask 00ffffff 00000000</part>
<part>Tight !X_Enforcer_Chest_Mask !Chest_V_Enforcer_01_Mask 00ffffff 00000000</part>
<part>V_Male_Head.GEO/GEO_Head_V_Asym_Robot !X_Face_Robot_Mask V_Robotic_01_Dual 00ffffff 00000000</part>
<part>V_MALE_GLOVE.GEO/GEO_Larm*_Enforcer_01 !X_Enforcer_Glove_02 none 00ffffff 00000000</part>
<part>V_MALE_BOOT.GEO/GEO_LlegR_Enforcer_01 !X_Enforcer_Boot none 00ffffff 00000000</part>
<part>V_MALE_BELT.GEO/GEO_Belt_Enforcer_01 !X_Enforcer_Emblem !Emblem_v_Enforcer_01_Mask 00ffffff 00000000</part>
<part>V_MALE_HAIR.GEO/GEO_Hair_Enforcer_01 !X_Enforcer_Hair none 00ffffff 00000000</part>
<part>none none none 00000000 00000000</part>
<part>V_MALE_EYES.GEO/GEO_Eyes_Enforcer_01 !X_Enforcer_Hair none 00ffffff 00000000</part>
<part>V_MALE_EMBLEM.GEO/GEO_Emblem_Enforcer_01 !X_Enforcer_Emblem !Emblem_v_Enforcer_01_Mask 00ffffff 00000000</part>
<part>V_MALE_SPADR.GEO/GEO_SpadR_Enforcer_01 !X_Enforcer_spadr none 00ffffff 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00ffffff 00ffffff 00000000 WEAPONS/Custom_AssaultRifle/Male_AssaultRifle_Mastermind03.fx</part>
<part>V_MALE_NECK.GEO/GEO_Neck_Enforcer_03 !X_Enforcer_Hair none 00ffffff 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none !X_Wings_Tech_01 none 00ffffff 00000000 00ffffff 00000000 GENERIC/FX_wings_TECH.fx</part>
<part>none none none 00ffffff 00000000 00ffffff 00000000 Auras/Male/Electricity/ElectricBody.fx</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
<part>none none none 00000000 00000000</part>
</parts>
</costume>

Demo Costume Format Info from an old FAQ, a bit outdated, credit goes to whoever originally wrote it (Zloth/Sloth?):
http://privatepaste.com/c17d269890
« Last Edit: June 23, 2013, 10:21:53 PM by Arachnion »
I'm all dressed up with nowhere to go
Walkin' with a dead man over my shoulder

Waiting for an invitation to arrive
Goin' to a party where no one's still alive

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #1 on: June 15, 2013, 05:23:24 PM »
I think being able to convert Sentinel files into .costume files would be fantastic. I did play with the files I have a little, and was not encouraged.

It seemed to me that there was information in the .costume files, that was missing in the Sentinel files...but in my case at least the costume files are from all sort of different versions of the game client, so that could be a factor.

I think it would be helpful to have a Sentinel and a .costume file of the same character and outfit, from the same game client (ideally I24 or I23). Maybe someone can share this here. That way we should be easily able to compare it line by line and see what is what.

If everything matches, converting the formatting should be fairly easy.

Phaetan

  • Elite Boss
  • *****
  • Posts: 250
Re: Costume File Formats
« Reply #2 on: June 15, 2013, 05:40:34 PM »
Well, sentinel/demorecord files reproduce your character model, so it must have all of the relevant data in there.

blackjak

  • Elite Boss
  • *****
  • Posts: 517
Re: Costume File Formats
« Reply #3 on: June 15, 2013, 07:32:53 PM »
Will this help? Here is Blackjak.
COH (.costume) file

{
Scale 10.56
BoneScale -0.6383
ShoulderScale -0.3191
ChestScale -0.3989
WaistScale -0.2872
HipScale -0.3196
HeadScales  0,  0,  0
BrowScales  0,  0,  0
CheekScales  0,  0,  0
ChinScales  0,  0,  0
CraniumScales  0,  0,  0
JawScales  0,  0,  0
NoseScales  0,  0,  0
SkinColor  221,  152,  107
NumParts 28
CostumePart ""
{
   Geometry Tight
   Texture1 leather_01
   Texture2 !Hips_V_Pattern_Thin_Stripe_02
   DisplayName P887196332
   RegionName "Lower Body"
   BodySetName Tight
   Color1  0,  0,  61
   Color2  0,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Tight
   Texture1 leather_01
   Texture2 !chest_Angelic
   DisplayName P566009771
   RegionName "Upper Body"
   BodySetName Tight
   Color1  0,  0,  61
   Color2  0,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry V_MALE_HEAD.GEO/GEO_Head_V_Asym_Standard
   Texture1 skin_v_head_73
   Texture2 !V_Face_Mask_2
   DisplayName P687117166
   RegionName Head
   BodySetName "Full Masks"
   Color1  0,  0,  0
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Flare
   Texture1 smooth_01
   Texture2 none
   DisplayName P3937616722
   RegionName "Upper Body"
   BodySetName Tight
   Color1  0,  0,  0
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Smooth
   Texture1 Tights
   Texture2 none
   DisplayName P2104750136
   RegionName "Lower Body"
   BodySetName Tight
   Color1  0,  0,  0
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Tactical
   Texture1 tactical_02a
   Texture2 tactical_02b
   DisplayName P177456852
   RegionName "Upper Body"
   BodySetName Tight
   Color1  0,  20,  61
   Color2  0,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry none
   Texture1 none
   Texture2 none
   DisplayName P2793026233
   RegionName Head
   BodySetName "Full Masks"
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry none
   Texture1 none
   Texture2 none
   DisplayName P2371314042
   RegionName Head
   BodySetName "Full Masks"
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Strap_01
   Texture1 Strap_01a
   Texture2 Strap_01b
   DisplayName P2281134661
   RegionName "Upper Body"
   BodySetName Tight
   Color1  0,  0,  0
   Color2  0,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry none
   Texture1 none
   Texture2 none
   DisplayName P772741860
   RegionName "Upper Body"
   BodySetName Tight
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry Beard_Van_Dyke
   Texture1 Beard_01a
   Texture2 Beard_01b
   DisplayName P2488029243
   RegionName Head
   BodySetName "Full Masks"
   Color1  0,  0,  0
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry none
   Texture1 none
   Texture2 none
   DisplayName P1848153390
   RegionName Head
   BodySetName "Full Masks"
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  0
   Color2  0,  0,  0
   Color3  0,  0,  0
   Color4  0,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  0
   Color2  0,  0,  0
   Color3  0,  0,  0
   Color4  0,  0,  0
}


CostumePart ""
{
   Fx none
   Geometry none
   Texture1 none
   Texture2 none
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Geometry none
   Texture1 none
   Texture2 none
   DisplayName P546439883
   RegionName "Lower Body"
   BodySetName Tight
   Color1  0,  0,  102
   Color2  127,  0,  0
   Color3  0,  0,  102
   Color4  127,  0,  0
}


CostumePart ""
{
   Color1  0,  0,  0
   Color2  0,  0,  0
   Color3  0,  0,  0
   Color4  0,  0,  0
}


CostumePart ""
{
   Color1  0,  0,  0
   Color2  0,  0,  0
   Color3  0,  0,  0
   Color4  0,  0,  0
}


}

Sentinel+ (.xml) file (relevent costume part):
<costumes count="3">
      <costume>
         <bodytype>0</bodytype>
         <skincolor>006b98dd</skincolor>
         <scales>10.560003 -0.638300 0.000000 -0.319100 -0.398900 -0.287200 -0.319600 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</scales>
         <parts count="28">
            <part>Tight leather_01 !Hips_V_Pattern_Thin_Stripe_02 003d0000 00000000</part>
            <part>Tight leather_01 !chest_Angelic 003d0000 00000000</part>
            <part>V_MALE_HEAD.GEO/GEO_Head_V_Asym_Standard skin_v_head_73 !V_Face_Mask_2 00000000 0000007f</part>
            <part>Flare smooth_01 none 00000000 0000007f</part>
            <part>Smooth tights none 00000000 0000007f</part>
            <part>Tactical tactical_02a tactical_02b 003d1400 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>Strap_01 Strap_01a Strap_01b 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>Beard_Van_Dyke Beard_01a Beard_01b 00000000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
         </parts>
      </costume>
      <costume>
         <bodytype>0</bodytype>
         <skincolor>006b98dd</skincolor>
         <scales>10.560003 -0.638300 0.000000 -0.319100 -0.398900 -0.287200 -0.319600 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</scales>
         <parts count="28">
            <part>Tight leather_01 !Hips_V_Pattern_Thin_Stripe_02 003d0000 00000055</part>
            <part>Tight leather_01 !chest_Angelic 003d0000 00000055</part>
            <part>V_MALE_HEAD.GEO/GEO_Head_V_Asym_Standard skin_v_head_73 !V_Face_Mask_2 0000007f 0000007f</part>
            <part>Flare smooth_01 none 00000000 0000007f</part>
            <part>Smooth smooth_01 none 00000000 0000007f</part>
            <part>Tactical tactical_02a tactical_02b 003d1400 00000055</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>Strap_01 Strap_01a Strap_01b 00ffffff 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>Beard_Van_Dyke Beard_01a Beard_01b 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
         </parts>
      </costume>
      <costume>
         <bodytype>0</bodytype>
         <skincolor>006b98dd</skincolor>
         <scales>10.560003 -0.638300 0.000000 -0.319100 -0.398900 -0.287200 -0.319600 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000</scales>
         <parts count="28">
            <part>V_MALE_PANTS.GEO/GEO_Hips_Pants_Biz_Slacks_01 !Hips_V_Suit_Slacks_01 !Hips_V_Suit_Slacks_01_Mask 00000000 00000000</part>
            <part>Jackets_Sleeves !Chest_FancyShirt_01 none 00ffffff 00000000</part>
            <part>V_MALE_HEAD.GEO/GEO_Head_V_Asym_Standard skin_v_head_73 none 00000000 0000007f</part>
            <part>Smooth skin_bare none 00000000 0000007f</part>
            <part>V_MALE_BOOT.GEO/GEO_Lleg*_Cowboy_Boot_02 !Boot_V_Cowboy_01 !Boot_V_Cowboy_01_Mask 00000000 00000000</part>
            <part>Standard leather_01 none 003d1400 00000000</part>
            <part>Style_01 Style_01a Style_01b 00000000 001f1f1f</part>
            <part>none none none 00000000 00000000</part>
            <part>Glasses_05 Glasses_01a Glasses_01b 00000000 001f1f1f</part>
            <part>V_MALE_EMBLEM.GEO/GEO_Emblem_Dress_Tie_01 !Emblem_V_Tie_02 !Emblem_V_Tie_02_mask 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>Beard_Van_Dyke Beard_01a Beard_01b 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>V_MALE_TOP.GEO/GEO_Top_3_Button_01 !Top_V_3_Button_01 !Top_V_3_Button_01_Mask 00000000 00ffffff</part>
            <part>V_MALE_SLEEVES.GEO/GEO_Sleeves_Dress_Shirt_04 !Sleeves_V_Suit_Coat_01 !Sleeves_V_Suit_Coat_01_Mask 00000000 00ffffff</part>
            <part>none none none 00660000 0000007f</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00000000 00000000</part>
            <part>none none none 00660000 0000007f</part>
         </parts>
      </costume>
   </costumes>

Sorry for the lengthy post, but the code written this way in txt.
Virtue: Moonsun, Dynamo Jr., Crimson Fury, Sabre Kat, Double Sixxes, Quantum Stranger, Mystic Kirin, Pink.Eye Champion: Blackjak, Redwing Blackbird Justice: Shield Marshal Guardian: White Talon Triumph: Gosuto Union: Stellar Girl

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #4 on: June 15, 2013, 08:21:26 PM »
Thanks for sharing this, Blackjak.

If you look closely at the Sentinel file, you'll notice that it actually lists 3 costumes. The first two are almost identical, and the third must have been your alter ego version. I am fairly certain that your .costume file represents the first costume in the Sentinel file, but it might be helpful if you could also share a screenshot of the costume (if you have one handy).

Some of things that stick out to me:

bodytype (which sets your body type, ie. male/female/huge).
There is no reference to bodytype in the .costume file. It's missing in my .costume files as well, even though it is in Arachnion's file. So how does it define your bodytype?

Color.
For every costume part, the .costume file defines 4 colors (Color1, Color2, Color3, Color4). The Sentinel file defines 2 colors. They use different color systems (Hexdecimal vs. RGB, but that is easy enough to translate. I am guessing that Color3 and Color4 are some sort of default values that don't really matter, as they are almost always identical for all the parts in the .costume file (except when they are not). I'll try a few variables and see what happens.

DisplayName, RegionName & BodySetName.
These are all missing in the Sentinel file. Again, some of these may not matter...I'll try a few variables there as well and see what happens.

Arachnion

  • Elite Boss
  • *****
  • Posts: 642
  • Professional Cynic
Re: Costume File Formats
« Reply #5 on: June 15, 2013, 08:56:14 PM »
bodytype (which sets your body type, ie. male/female/huge).
There is no reference to bodytype in the .costume file. It's missing in my .costume files as well, even though it is in Arachnion's file. So how does it define your bodytype?

1 is Female, 2 is Huge, and 0 is Male, I think.

There should be no distinction between I23/I24 costume files, why would there be?

Not sure on the body type numbers, though.
I'm all dressed up with nowhere to go
Walkin' with a dead man over my shoulder

Waiting for an invitation to arrive
Goin' to a party where no one's still alive

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #6 on: June 15, 2013, 09:31:31 PM »
1 is Female, 2 is Huge, and 0 is Male, I think.

Actually it's 0 = Male, 1 = Female, 4 = Huge (yep, makes you wonder about 2 and 3...).

Maybe there are no differences between I23 and I24 (or earlier versions), but looking at my .costume files, there are differences in how bodytype is defined.

I have versions that declare the BodyType:

Code: [Select]
Scale 9.003
BoneScale -1
ShoulderScale -0.2905
ChestScale -0.5864
WaistScale -0.8763
HipScale -0.9701
LegScale 0.01389
HeadScales  0,  0,  0
BrowScales  0,  0,  0
CheekScales  0,  0,  0
ChinScales  0,  0,  0
CraniumScales  0,  0,  0
JawScales  0,  0,  0
NoseScales  0,  0,  0
SkinColor  255,  223,  201
NumParts 27
BodyType 1

I have versions that don't have a BodyType declared (I am assuming that those must all be males, and that male must be the default, hence no need to declare it):

Code: [Select]
Scale 7.462
BoneScale -0.3566
ChestScale -0.373
WaistScale -0.3237
HeadScales  0,  0,  0
BrowScales  0,  0,  0
CheekScales  0,  0,  0
ChinScales  0,  0,  0
CraniumScales  0,  0,  0
JawScales  0,  0,  0
NoseScales  0,  0,  0
SkinColor  239,  173,  132
NumParts 28

And I have versions that additionally have a CostumeFilePrefix, which also seems to define gender:

Code: [Select]
CostumeFilePrefix fem
HeadScales  0,  0,  0
BrowScales  0,  0,  0
CheekScales  0,  0,  0
ChinScales  0,  0,  0
CraniumScales  0,  0,  0
JawScales  0,  0,  0
NoseScales  0,  0,  0
SkinColor  255,  178,  155
NumParts 28
BodyType 1

goodtime

  • Boss
  • ****
  • Posts: 170
    • my videos
Re: Costume File Formats
« Reply #7 on: June 15, 2013, 11:08:09 PM »
I posted about this in the titan icon thread at one point.   Some of the values generated by the costume editor aren't in the Sentinel files.  Presumably they are identifiers for the UI itself (I say this because there doesn't seem to be any rhyme nor reason to the order in which the PARTNAME info appears) - BodySetName and RegionName.   

Without that information the costume file the game will still display it on a character model in the 'load' screen, but it shows you the red "Failed to Load XXX Costume Creator may not have access to parts" message, and will ask you if you want to try and fix it.   Then it just reverts those parts to the default.

I would imagine ICON would load the file onto a model okay, though.   You could test this by making a copy of a UI created costume file, removing BodySetName and RegionName values, then firing up ICON.

Also, don't forget the http://paragonwiki.com/wiki/Costume_File page on Paragon Wiki.   

Arachnion

  • Elite Boss
  • *****
  • Posts: 642
  • Professional Cynic
Re: Costume File Formats
« Reply #8 on: June 15, 2013, 11:12:16 PM »
Also, don't forget the http://paragonwiki.com/wiki/Costume_File page on Paragon Wiki.

Ah, I was unaware the wiki had such a page.

Added it to the OP so it's not buried under code as much.

:D
I'm all dressed up with nowhere to go
Walkin' with a dead man over my shoulder

Waiting for an invitation to arrive
Goin' to a party where no one's still alive

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #9 on: June 16, 2013, 01:14:17 AM »
I think ultimately the question is how to make up the the values that are "missing" in the Sentinel file.

So here's what I think I know at this point:

Color3, Color4 don't seem to matter. No matter what valid BRG (yeah, I know it's backwards) value I put in there, it makes no visible change on the costume. So one could just have that be 0, 0, 0.

The value for DisplayName does not seem to matter either. The DisplayName is a 10 digit string (Pxxxxxxxxxx). But even if you replace that value with a single number or a single letter, it seems to work.

The RegionName seems to be a set value for each costume part. The first CostumePart is "Lower Body", the second is "Upper Body", the third is Head, etc. You need the RegionName (unless a character does not use that CostumePart, eg. a weapon). But because they seem to be consistent, that should not be a problem to figure out.

BodySetName is more complicated to make up. It seems to represent whichever group of parts a CostumePart belongs to, eg. Tight, "Full Masks", TuckedIn, etc. And again, it's a value that is required. What we would need is a Look Up Table (LUT), that would show what group each specific costume part is part of...which would be fairly extensive. That is the most complicated translation to map out.

Ideas anyone?

September

  • Underling
  • *
  • Posts: 2
Re: Costume File Formats
« Reply #10 on: June 16, 2013, 05:54:37 PM »
Just a wild guess that color 3 and 4 are the colors used when in supergroup mode.

blackjak

  • Elite Boss
  • *****
  • Posts: 517
Re: Costume File Formats
« Reply #11 on: June 16, 2013, 07:12:28 PM »
Thanks for sharing this, Blackjak.

If you look closely at the Sentinel file, you'll notice that it actually lists 3 costumes. The first two are almost identical, and the third must have been your alter ego version. I am fairly certain that your .costume file represents the first costume in the Sentinel file, but it might be helpful if you could also share a screenshot of the costume (if you have one handy).

He did have several costumes (no SG though). The code should be for this costume:
Virtue: Moonsun, Dynamo Jr., Crimson Fury, Sabre Kat, Double Sixxes, Quantum Stranger, Mystic Kirin, Pink.Eye Champion: Blackjak, Redwing Blackbird Justice: Shield Marshal Guardian: White Talon Triumph: Gosuto Union: Stellar Girl

Leandro

  • Elite Boss
  • *****
  • Posts: 310
Re: Costume File Formats
« Reply #12 on: June 17, 2013, 03:05:21 AM »
You want to take a demo costume data (or Sentinel data, it's the same thing) and make a .costume file?

This isn't hard to do, but the main problem is that you need to get the RegionName for the pieces (this can be obtained from costume.bin but it's not trivial); otherwise the costume creator will display it, but it won't let you actually load the costume. If you only want to use it for Icon with the costume loading command, it might not need it, though.

I can probably put together a script that does this, ignoring RegionNames, somewhat quickly. I have one that does the opposite, and these two lines are basically all you need to know the order stuff is in the header:

COSTUME $cBodyType $cSkinColor $cScale $cBoneScale 0.000000 $cShoulderScale $cChestScale $cWaistScale $cHipScale $cLegScale 0.000000 $cHeadScales $cBrowScales $cCheekScales $cChinScales $cCraniumScales $cJawScales $cNoseScales

PARTSNAME $cGeometry $cTexture1 $cTexture2 $cColor1 $cColor2 $cColor3 $cColor4 $cFX

Leandro

  • Elite Boss
  • *****
  • Posts: 310
Re: Costume File Formats
« Reply #13 on: June 17, 2013, 03:08:04 AM »
bodytype (which sets your body type, ie. male/female/huge).
There is no reference to bodytype in the .costume file. It's missing in my .costume files as well, even though it is in Arachnion's file. So how does it define your bodytype?

No BodyType = male. BodyType 1 is Female, and I think BodyType 3 is huge (not entirely sure on that).

For every costume part, the .costume file defines 4 colors (Color1, Color2, Color3, Color4). The Sentinel file defines 2 colors. They use different color systems (Hexdecimal vs. RGB, but that is easy enough to translate. I am guessing that Color3 and Color4 are some sort of default values that don't really matter, as they are almost always identical for all the parts in the .costume file (except when they are not).

Color 3 and 4 are user for the inner color of capes among other things.

DisplayName, RegionName & BodySetName.
These are all missing in the Sentinel file. Again, some of these may not matter...I'll try a few variables there as well and see what happens.

These can be derived from data in costume.bin, and the costume creator will not load the costume if it's missing. Icon might still load them into an NPC, but I haven't tested it.

Codewalker

  • Hero of the City
  • Titan Network Admin
  • Elite Boss
  • *****
  • Posts: 2,740
  • Moar Dots!
Re: Costume File Formats
« Reply #14 on: June 17, 2013, 05:21:51 AM »
I'm on vacation at the moment and only checking the internet every once in a while, but happened to see this.

BodySetName is more complicated to make up. It seems to represent whichever group of parts a CostumePart belongs to, eg. Tight, "Full Masks", TuckedIn, etc. And again, it's a value that is required. What we would need is a Look Up Table (LUT), that would show what group each specific costume part is part of...which would be fairly extensive. That is the most complicated translation to map out.

A lookup table would not be sufficient. Think about something like the chest patterns that can show up below jackets, or the boots in different categories. The geo and texture name is the same for most versions of those, but the Bodyset is different, because they're in a different category. Mismatching them will seriously confuse the editor. If you have a jacket in the appropriate slot, then the chest piece also needs to come from the correct Bodyset to match. Same for gloves.

Deriving it is possible most of the time. I've sketched out an algorithm before to do it -- you need to read in the master costume piece list from costumes.bin, then go through each region of the costume file being loaded and do an exhaustive search for valid combinations within that region's Bodysets which include all of the items used in that region of the costume. You also have to take into account masks (i.e. patterns), which can vary one of the textures for the costume piece. Keeping track of which match is the closest is also a good idea for cases where the .costume file references pieces which don't actually exist in costumes.bin anymore.

That information is needed for the editor to function correctly, no way around it. Neither demorecords nor sentinel exports have it; only costume files.

For simply loading a costume onto an NPC in Icon, it should work even if omitted. The region and bodyset names are needed to edit a costume, but not to simply display it.

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #15 on: June 17, 2013, 06:23:59 AM »
These can be derived from data in costume.bin, and the costume creator will not load the costume if it's missing. Icon might still load them into an NPC, but I haven't tested it.

Thanks for checking in Leandro and Codewalker.

So it seems like I really need to look into the costumes.bin.

I have not really examined the COH files before this, but am I correct in assuming that the costumes.bin is part of the bin.pigg? I am a Mac user, so running a pigg viewer is a little more involved. I'll get one running, but it would help to know that that is where I need to look.

Thanks for all the insights.

Arachnion

  • Elite Boss
  • *****
  • Posts: 642
  • Professional Cynic
Re: Costume File Formats
« Reply #16 on: June 17, 2013, 08:52:18 PM »
Thanks for checking in Leandro and Codewalker.

So it seems like I really need to look into the costumes.bin.

I have not really examined the COH files before this, but am I correct in assuming that the costumes.bin is part of the bin.pigg? I am a Mac user, so running a pigg viewer is a little more involved. I'll get one running, but it would help to know that that is where I need to look.

Thanks for all the insights.

Yes.

You are right.

Codewalker made a plain text Costume.bin extraction, I've uploaded my copy of it below.

It is around 79 MB unpacked.

Can't find the original link for it.

https://www.sugarsync.com/pf/D0133125_936_48375484
« Last Edit: June 17, 2013, 09:08:15 PM by Arachnion »
I'm all dressed up with nowhere to go
Walkin' with a dead man over my shoulder

Waiting for an invitation to arrive
Goin' to a party where no one's still alive

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #17 on: June 17, 2013, 09:47:47 PM »
Codewalker made a plain text Costume.bin extraction, I've uploaded my copy of it below.

Thank you very much for reposting this...and holy smokes, that's a lot of costume pieces!  :o

Once you start lifting the veil....oy vey!

Arachnion

  • Elite Boss
  • *****
  • Posts: 642
  • Professional Cynic
Re: Costume File Formats
« Reply #18 on: June 18, 2013, 10:08:20 PM »
Hmmm...

DisplayName, RegionName & BodySetName.
These are all missing in the Sentinel file. Again, some of these may not matter...I'll try a few variables there as well and see what happens.

That information is needed for the editor to function correctly, no way around it. Neither demorecords nor sentinel exports have it; only costume files.

For simply loading a costume onto an NPC in Icon, it should work even if omitted. The region and bodyset names are needed to edit a costume, but not to simply display it.

I will need to investigate this (costume loading without those values, DisplayName RegionName BodySetName) myself when I can get to it.

You want to take a demo costume data (or Sentinel data, it's the same thing) and make a .costume file?

COSTUME $cBodyType $cSkinColor $cScale $cBoneScale 0.000000 $cShoulderScale $cChestScale $cWaistScale $cHipScale $cLegScale 0.000000 $cHeadScales $cBrowScales $cCheekScales $cChinScales $cCraniumScales $cJawScales $cNoseScales

PARTSNAME $cGeometry $cTexture1 $cTexture2 $cColor1 $cColor2 $cColor3 $cColor4 $cFX

What Leandro wrote above corresponds to the first line of a costume block from a demo.

The PARTSNAME line corresponds with demo parts.

We can probably work something out from this, manually (hand editing) though.

:)
I'm all dressed up with nowhere to go
Walkin' with a dead man over my shoulder

Waiting for an invitation to arrive
Goin' to a party where no one's still alive

Xenos

  • Lieutenant
  • ***
  • Posts: 67
Re: Costume File Formats
« Reply #19 on: June 19, 2013, 01:25:41 AM »
I don't have it all solved yet, but here's where I am at in recreating the information that is missing from the Sentinel file (I am sharing it in case it helps someone else):

DisplayName. For the process of creating a costume in Icon, having a random value there, has not given me any problems so far (as long as there is some information). A proper solution could probably be created from the costume.bin information (but that's a lot of stuff to walk through). My mind currently is on finding a working solution, rather than a perfect one. So I am ignoring it for now.

RegionName. This seems to be fairly consistent for each of the 28 costume part sections. Epic archetypes have some variations there, and the section for your left hand will also vary depending on whether there's a shield or a weapon there, but I think that is pretty straight forward.

BodySetName is the tricky one for now. BodySetName corresponds to BoneSet Name in the costume.bin file. There are a lot of instances of BoneSet Name in the costume.bin file (500+). But here's where we might be able to cheat a little...

There are basically 3 regions on a character: Head, UpperBody and LowerBody. The first 3 CostumePart section in the .costume file represent LowerBody, UpperBody and Head. Later CostumePart sections will mostly be part of those 3 regions. Think choosing "Tights" in the first selection for the Upper Body in the Character Creation tool. All the other options for the Upper Body will be determined by that choice (eg. Gloves, Belt, Shoulders, Chest Detail, etc.). What's interesting for our purposes, is that all the CostumePart sections will share the same BodySetName as the initial choice. So by determining the BodySetName for the first 3 CostumePart sections, we will solve a lot of the subsequent sections. Exceptions to that are Capes, Auras and Weapons. They each have their own BodySetName.

I am pretty much trying to simplify the complexity of recreating the missing info. Not perfect, but if it works...who cares.

Next I will try to recreate one of my costumes from the Sentinel file based on what I know so far...I'll let you know how it turns out.