Character Appearance (Sequence)

From SWGANH Wiki
Revision as of 10:59, 23 November 2011 by Rouse (Talk | contribs)

Jump to: navigation, search

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.
Work in Progress

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