Difference between revisions of "Character Appearance (Sequence)"

From SWGANH Wiki
Jump to: navigation, search
(Xeno's TRAC Docs)
(Profile File Structure)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Character Appearance - Base Packets]]
 
[[Character Appearance - Base Packets]]
  
on character creation the appearance of the character (minus the height) is send to the server in the following binary form :
+
=Blend Attributes=
Please note that the settings here are those that we are able to do on character creation. From what I know we will be able to heve more options through image design
+
 
<pre>
 
<pre>
 +
Any attribute that is blend_whatever_# (see chart below) is a 2 part system.
 +
0x17 blend_lipfullness_0
 +
0x18 blend_lipfullness_1
  
[BASE Character - All options set to 255, first colour option, no hair, name = Base]
+
They are believed to be a percentage/ratio of each other.
 +
when the value is 0
 +
17 FF 01
 +
18 FF 02
  
01 23
+
When the Value is 100 they are
 +
17 FF 02
 +
18 FF 01
 +
Swapping the 01 and 02.
  
17 FF 01  
+
When the value is 50%
 
+
17 FF 01
18 FF 02
+
18 FF 01
 
+
1C FF 01  
+
 
+
1B FF 02
+
 
+
05 FF 02
+
 
+
1A FF 02 19 FF 01 0D FF 01 09 FF 02 12 FF 02   
+
13 FF 01 20 FF 02 10 FF 02 21 FF 01 0F FF 01 14   
+
FF 01 11 FF 02 0E FF 02 03 FF 01 0B FF 01 0C FF   
+
01 06 FF 02 08 FF 01 15 FF 01 16 FF 02 04 FF 02   
+
07 FF 01 0A FF 02 23 11 25 04 24 03 01 FF 01 1D   
+
FF 01 1F FF 01 1E 06 FF 03                       
+
 
+
basically the different appearance options are represented through a short value, which is followed by a short or (!!) word value.
+
Max and min values are either represented through the word value FF 01 or FF 02. The values in between are represented through a short value.
+
Descriptors yet recognized are :
+
 
+
Decimal
+
 
+
4  : Muscle Mass
+
5  : weight
+
8  : Nose protrusion
+
9  : Noselength
+
10 : eyesize
+
12 : eye angle
+
15 : Nosewidth
+
20 : skin color
+
24 : age
+
32 : eyeshape
+
  
 +
Any other values result in them being Uint16
 +
17 9B = 155
 +
18 64 = 100
 +
Thought to be a ratio.
  
 
</pre>
 
</pre>
  
 +
=Index Attributes=
 
<pre>
 
<pre>
01 FF  // Eye Colour
+
Any attribute prefixed with index are single part attributes only having one value.
02 FF
+
0x24 index_age range from 0 - 3
03 FF
+
 
04 FF // Muscle / Torso
+
Any index with the word color are linked to the color pallet for that attribute.
05 FF  // Weight
+
0x14 index_color_skin
06 FF
+
07 FF  // Eye Size
+
08 FF  // Nose Protrusion
+
09 FF
+
0A FF
+
0B FF  // Cheek Size
+
0C FF  // Eye Angle
+
0D FF  // Trunk Height (Ithorian)
+
0E FF
+
0F FF  // Nose Width
+
10 FF
+
11 FF
+
12 FF
+
13 FF  // Jaw Size
+
14 FF  // Skin Colour
+
15 FF  // Mouth Size
+
16 FF
+
17 FF  // Lip Size
+
18 FF
+
19 FF  // Ear Size
+
1A FF
+
1B FF
+
1C FF  // Chin Size (Gullet in MonCal)
+
1D FF  // Nose Colour (Rodian)
+
1E FF  // Eyebrow Type
+
1F FF  // Facial Hair Colour
+
20 FF
+
21 FF  // Eye Shape
+
22 FF
+
23 FF  // Facial Hair Type (Human Only)
+
24 FF  // Age
+
25 FF  // Freckles
+
26 FF  // Marking Pattern Type
+
27 FF  // Sensor Size (Rodian) / Jowl (Sullasian)
+
28 FF
+
29 FF
+
2A FF
+
2B FF
+
2C FF  // Eyeshadow Colour
+
2D FF  // Eyeshadow
+
2E FF  // Lip Colour
+
2F FF
+
30 FF
+
31 FF
+
32 FF  // Center Beard Colour (Ithorian)
+
33 FF
+
34 FF
+
35 FF
+
36 FF
+
37 FF
+
38 FF
+
39 FF  // Head Size (Sullastian)
+
3A FF
+
3B FF  // Marking Pattern Colour (MonCal)
+
3C FF
+
3D FF
+
3E FF // Ear Shape (Sullastian)
+
3F FF
+
40 FF
+
41 FF
+
42 FF
+
43 FF  // Brow (Wookiee)
+
44 FF
+
45 FF
+
46 FF
+
47 FF
+
48 FF  // Marking Colour (Wookiee)
+
49 FF  // Fur Colour (Wookiee)
+
4A FF
+
4B FF
+
4C FF
+
4D FF
+
4E FF  // Chin Length (Sullastian)
+
4F FF
+
50 FF
+
51 FF
+
52 FF
+
53 FF
+
54 FF
+
55 FF
+
56 FF
+
57 FF
+
58 FF
+
59 FF
+
5A FF
+
5B FF
+
5C FF
+
5D FF
+
5E FF
+
5F FF
+
60 FF
+
61 FF
+
62 FF
+
63 FF  // Markings Colour (Sullastian)
+
64 FF
+
65 FF  // Markings Pattern (Sullastian)
+
66 FF
+
67 FF
+
68 FF
+
69 FF
+
6A FF
+
6B FF
+
6C FF
+
6D FF
+
6E FF  // Center Beard Type (Ithorian)
+
6F FF
+
70 FF  // Side Beard Type (Ithorian)
+
 
</pre>
 
</pre>
  
 
+
=Profile File Structure=
=Xeno TRAC Docs=
+
Used by the client to display the toon in the '''Character Selection Screen'''.
 +
*Note '''Height''' isn't stored in this file, as all toons are scaled to 1 in this screen.
 +
**True height is stored on the server and sent in a game packet.
 +
**If a''' Helment''' is worn hair isnt stored in this file.
  
 
<pre>
 
<pre>
Customization features are stored in a data string following this format:
+
FORM
[DATATYPE:SIZE] - explaination
+
CADF
 
+
FORM
(header)
+
0000
[SHORT:2] - size - this stores the size of the data string, in a host byte short integer (uint16)
+
DATA
[BYTE:1] - start counter - this byte is the start counter for recursing through, usually always a 0x01
+
int32 for the Count to the end of the Appearance Attributes Section
[BYTE:1] - end counter - this byte is the end counter for recursing through
+
String of the Species
        - usually always the total number of elements
+
Version Byte  01 for pre-NGE, 02 for NGE
 
+
Attribute Count Byte  example: 22 means thier are 34 attributes
(repeated data)
+
Female Flag Byte AB Only on Female characters
[BYTE:l] - id - this is an id number that represents a customization feature for an item or character
+
Appearance Attributes
              - the term ID and index are used interchangably for this
+
End Flag FF 03 00 means end of section of the Form
 
+
PLAN
[VALUE] - value - value normally appears as a single unsigned byte after the id, except for the cause of 0xFF
+
String of Planet the last planet the character was on upon last logout
        - if it is 0xFF, a byte following it appears to be an extended set of numbers
+
FORM
        - 0xFF, 0x01 = 0x00 as a numeric
+
WEARITEM
        - 0xFF, 0x02 = 0xFF as a numeric
+
Count of String count for each following string
 
+
String of items last worn  This includes the Hair all as ASCII
(footer)
+
End Flag
the footer appears at the end of the data segments normally as a 0xFF, 0X03
+
Items attributes  These are color attributes assoc. to the item, very similar to the above skin colors
It is believed that use of 0xFF as an index triggers the extended set again, and 0x03 is the "end" type flag
+
ITEM
 
+
This reapeats for each item worn.
 
+
EXAMPLE(all numbers are in hexadecimal):
+
 
+
0E 00 01 04 04 AB 10 FF 01 0D FF 02 09 FE FF 03
+
 
+
breakdown:
+
0E 00 - size, in the example 14 bytes
+
01 - beginning counter
+
04 - end counter, total elements are 4
+
 
+
04 AB - ID of 04, with a value of AB
+
10 FF 01 - ID of 10,with value of 0(extended set)
+
0D FF 02 - ID of 0D, with a value of FF(extended set)
+
09 FE - ID of 09, value FE
+
 
+
FF 03 - footer, assumed to be extended index number that is an "end" flag
+
 
</pre>
 
</pre>
  
 +
=Attributes=
 
<pre>
 
<pre>
 
0x01 index_color_2
 
0x01 index_color_2
Line 321: Line 185:
 
0x72 blend_head_0
 
0x72 blend_head_0
 
0x73 blend_head_1
 
0x73 blend_head_1
 +
</pre>
 +
 +
thks to cR for additions
 +
 +
=Out Dated - Xeno TRAC Docs=
 +
 +
<pre>
 +
Customization features are stored in a data string following this format:
 +
[DATATYPE:SIZE] - explaination
 +
 +
(header)
 +
[SHORT:2] - size - this stores the size of the data string, in a host byte short integer (uint16)
 +
[BYTE:1] - version number
 +
[BYTE:1] - end counter - this byte is the end counter for recursing through
 +
        - usually always the total number of elements
 +
 +
(repeated data)
 +
[BYTE:l] - id - this is an id number that represents a customization feature for an item or character
 +
              - the term ID and index are used interchangably for this
 +
 +
[VALUE] - value - value normally appears as a single unsigned byte after the id, except for the cause of 0xFF
 +
        - if it is 0xFF, a byte following it appears to be an extended set of numbers
 +
        - 0xFF, 0x01 = 0x00 as a numeric
 +
        - 0xFF, 0x02 = 0xFF as a numeric
 +
 +
(footer)
 +
the footer appears at the end of the data segments normally as a 0xFF, 0X03
 +
It is believed that use of 0xFF as an index triggers the extended set again, and 0x03 is the "end" type flag
 +
 +
 +
EXAMPLE(all numbers are in hexadecimal):
 +
 +
0E 00 01 04 04 AB 10 FF 01 0D FF 02 09 FE FF 03
 +
 +
breakdown:
 +
0E 00 - size, in the example 14 bytes
 +
01 - version
 +
04 - counter, total elements are 4
 +
 +
04 AB - ID of 04, with a value of AB
 +
10 FF 01 - ID of 10,with value of 0(extended set)
 +
0D FF 02 - ID of 0D, with a value of FF(extended set)
 +
09 FE - ID of 09, value FE
 +
 +
FF - escape
 +
FF 01 = 0 (actual 0 is NULL = terminate string)
 +
FF 02 = 0xff
 +
FF 03 - footer, assumed to be extended index number that is an "end" flag
 
</pre>
 
</pre>

Latest revision as of 16:04, 16 December 2011

Character Appearance - Base Packets

Blend Attributes

Any attribute that is blend_whatever_# (see chart below) is a 2 part system.
0x17	blend_lipfullness_0
0x18	blend_lipfullness_1

They are believed to be a percentage/ratio of each other.
when the value is 0 
17 FF 01
18 FF 02

When the Value is 100 they are
17 FF 02
18 FF 01
Swapping the 01 and 02.

When the value is 50%
17 FF 01
18 FF 01

Any other values result in them being Uint16
17 9B = 155
18 64 = 100
Thought to be a ratio.

Index Attributes

Any attribute prefixed with index are single part attributes only having one value.
0x24	index_age  range from 0 - 3

Any index with the word color are linked to the color pallet for that attribute.
0x14	index_color_skin

Profile File Structure

Used by the client to display the toon in the Character Selection Screen.

  • Note Height isn't stored in this file, as all toons are scaled to 1 in this screen.
    • True height is stored on the server and sent in a game packet.
    • If a Helment is worn hair isnt stored in this file.
FORM
CADF
FORM
0000
DATA
int32			for the Count to the end of the Appearance Attributes Section
String of the Species
Version Byte  		01 for pre-NGE, 02 for NGE
Attribute Count Byte  	example: 22 means thier are 34 attributes
Female Flag Byte 	AB Only on Female characters
Appearance Attributes
End Flag 		FF 03 00 means end of section of the Form
PLAN
String of Planet 	the last planet the character was on upon last logout
FORM
WEARITEM
Count of String		count for each following string
String of items 	last worn  This includes the Hair all as ASCII 
End Flag
Items attributes  	These are color attributes assoc. to the item, very similar to the above skin colors
ITEM
This reapeats for each item worn.

Attributes

0x01	index_color_2
0x02	index_color_1
0x03	blend_skinny
0x04	blend_muscle
0x05	blend_fat
0x06	blend_nosedepth_1
0x07	blend_eyesize_0
0x08	blend_nosedepth_0
0x09	blend_noselength_1
0x0A	blend_eyesize_1
0x0B	blend_cheeks_0
0x0C	blend_eyedirection_0
0x0D	blend_noselength_0
0x0E	blend_eyedirection_1
0x0F	blend_nosewidth_0
0x10	blend_nosewidth_1
0x11	blend_cheeks_1
0x12	blend_jaw_1
0x13	blend_jaw_0
0x14	index_color_skin
0x15	blend_lipwidth_0
0x16	blend_lipwidth_1
0x17	blend_lipfullness_0
0x18	blend_lipfullness_1
0x19	blend_ears_0
0x1A	blend_ears_1
0x1B	blend_chinsize_1
0x1C	blend_chinsize_0
0x1D	index_color_3
0x1E	index_style_eyebrow
0x1F	index_color_facial_hair
0x20	blend_eyeshape_1
0x21	blend_eyeshape_0
0x22	index_color_0
0x23	index_style_beard
0x24	index_age
0x25	index_style_freckles
0x26	index_texture_1
0x27	blend_sensor_0
0x28	blend_sensor_1
0x29	blend_asian_0
0x2A	index_color_skin
0x2B	blend_flat_chest
0x2C	index_color_eyeshadow
0x2D	index_style_eyeshadow
0x2E	index_color_lips
0x2F	index_texture_1
0x30	index_color_pattern
0x31	index_color_4
0x32	index_color_hair
0x33	blend_nosesize_1
0x34	blend_nosesize_0
0x35	index_style_tattoo
0x36	index_color_tattoo
0x37	index_color_tat
0x38	index_color_0
0x39	blend_headsize_0
0x3A	blend_headsize_1
0x3B	index_color_pattern
0x3C	index_color_eye
0x3D	muscle_fat
0x3E	blend_ear_0
0x3F	blend_ear_1
0x40	index_color_eyebrow
0x41	index_color_5
0x42	blend_brow_1
0x43	blend_brow_0
0x44	index_style_eyebrows
0x45	index_color_test
0x46	index_color_107
0x47	index_color_4
0x48	index_color_3
0x49	index_color_1
0x4A	index_color_blade
0x4B	index_color_fur
0x4C	blend_robe_belt
0x4D	blend_eyeslant_0
0x4E	blend_chin_1
0x4F	index_color_2
0x50	blend_chin_0
0x51	blend_robe_bandolier
0x52	blend_jacket_belt
0x53	blend_chest_backpack
0x54	blend_jacket_bandolier
0x55	index_glide
0x56	index_turn_rate_max
0x57	index_speed_max
0x58	index_banking
0x59	index_hover_height
0x5A	index_accel_max
0x5B	index_accel_min
0x5C	index_decel
0x5D	index_damp_height
0x5E	index_turn_rate_min
0x5F	index_slope_mod
0x60	index_damp_roll
0x61	index_auto_level
0x62	index_damp_pitch
0x63	index_color_patterns
0x64	index_style_hair
0x65	index_patterns
0x66	index_texture
0x67	index_style_beard_2
0x68	blend_lipfulness_0
0x69	blend_lipfulness_1
0x6A	index_style_eyebrow
0x6B	index_texture
0x6C	index_style_hair
0x6D	blend_robe
0x6E	index_style_beard
0x6F	blend_jacket
0x70	index_style_beard_2
0x71	blend_jacket_robe
0x72	blend_head_0
0x73	blend_head_1

thks to cR for additions

Out Dated - Xeno TRAC Docs

Customization features are stored in a data string following this format:
[DATATYPE:SIZE] - explaination

(header)
[SHORT:2] - size - this stores the size of the data string, in a host byte short integer (uint16)
[BYTE:1] - version number 
[BYTE:1] - end counter - this byte is the end counter for recursing through
         - usually always the total number of elements

(repeated data)
[BYTE:l] - id - this is an id number that represents a customization feature for an item or character
              - the term ID and index are used interchangably for this

[VALUE] - value - value normally appears as a single unsigned byte after the id, except for the cause of 0xFF
        - if it is 0xFF, a byte following it appears to be an extended set of numbers
        - 0xFF, 0x01 = 0x00 as a numeric
        - 0xFF, 0x02 = 0xFF as a numeric

(footer)
the footer appears at the end of the data segments normally as a 0xFF, 0X03
It is believed that use of 0xFF as an index triggers the extended set again, and 0x03 is the "end" type flag


EXAMPLE(all numbers are in hexadecimal):

0E 00 01 04 04 AB 10 FF 01 0D FF 02 09 FE FF 03

breakdown:
0E 00 - size, in the example 14 bytes
01 - version
04 - counter, total elements are 4

04 AB - ID of 04, with a value of AB
10 FF 01 - ID of 10,with value of 0(extended set)
0D FF 02 - ID of 0D, with a value of FF(extended set)
09 FE - ID of 09, value FE

FF - escape
FF 01 = 0 (actual 0 is NULL = terminate string)
FF 02 = 0xff
FF 03 - footer, assumed to be extended index number that is an "end" flag