rdngmikey Posted August 30, 2014 Share Posted August 30, 2014 (edited) This is a basic guide for changing the color of Armor, Skin and Hair in XCom Long War. (Note; This should work for XCom-EU and EW Vanilla, but as I did the coding in Long War I don't know that the string locations for the other two are the same.) Two programs are needed to start, a Decompressor and a Hex Editor. I use these two, http://www.gildor.org/downloads http://mh-nexus.de/en/hxd/ MAKE SURE YOU MAKE BACKUPS OF ANY FILES YOU PLAN ON CHANGING! First step is to Decompresse the startup.upk file in the XCom-Enemy-Unkown/XEW/XComGame/CookedPCConsole Folder.(after you are all finished you don't need to recomprese the file, simply replace the original startup.upk with the uncompressed file you just modded and delete the startup.upk.uncompressed_size file.) Next you're going to open it with the Hex Editor and should see this https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfa1/v/t1.0-9/10559663_707119632692810_4294987689056818049_n.jpg?oh=4d30c42a31b71da853a28b4de42c4d65&oe=5477A53F&__gda__=1417345289_0e43bfd8d1e1411a0d8c838c190d2d8c As long as your Bytes per row say 16, thean we will be looking for row 00074B10.You should see a series of numbers that go like this ---- 01 00 00 00 28 02 00 00 00 00 00 00 22 00 00 00 00 00 00 00 04 0D 00 00 00 00 00 00 20 00 00 00 This is the file Header that contains all of the armor codes. The next string looks like this ----- DE 03 00 00 00 00 00 00 02 0B 00 00 00 00 00 00 10 00 00 00 00 00 00 00 40 03 00 00 00 00 00 00 This is the indavidual armor container, each container starts with DE 03 and will end with the closing container codes which look like this ---- 92 03 00 00 00 00 00 00 The closing string always starts with 92 03 and is only 8 Bytes long. in between these two string is the armor codes, the first is for the Primary color and the second is the secondary color. Each string for the colors will be 16 Bytes(there are more numbers that sandwich these codes, mostly 0's, DON'T CHANGE THESE) The string we're after will look like this---- 2B 22 59 3E FF 69 95 40 C1 EF B4 3E 00 00 80 41 (I can't use the actual first string due to the fact that I've Already modded the values.) Now, we are only interested in 6 Bytes, the THIRD and FOURTH Byte segments in each of the four groupings;Looking at the numbers above that would be 59 and 3E, 95 and 40, B4 and 3E.I haven't seen the last four nore the first two in each segment do anything, so don't worry about them. What the Numbers DO.These are the color and brightness values.The fourth number controls the saturation levels of the color;i.e. what color it is.The number values for this range from 3A(black) to 40ish(Neon)The numbers are arranged RGBSo using values ** ** ** 3F ** ** ** 3A ** ** ** 3A will give you a bright red. The Third number controls the brightness level, this is in stardard hexso a low number 11 will give you a dark color and a high number EE will make it brighter. Note that going above a 3F with the fourth number, or color saturation level,you will get a Neon color and will not be able to adjust the brightness levels. And that is that, but I did mention in the opening that you can do skin and hair too.In the hex editor look for the following ranges to change their values.For any palette other than Armor their is no Secondary code, so these values are filled in with a bunch of c'scc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc This can actually make them fairly easy to spot. The following values are for where you will see the first DE in the color containersimply follow the line to the beginning segment of numbers after that. SKIN - RACE 1 - 00075AC0SKIN - RACE 3 - 00075870SKIN - RACE 4 - 00077100HAIR - - - - 00076790SKIN - RACE 2 - 00074870(the values for Race 2 have already been modded some, there have been two added the last to do NOT have the cc cc secondary codes, in fact, they don't have ANY secondary codes so just mod each string as it's own segment.) Here is a screenshot I took. https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/10648839_707151869356253_4998266155295236436_o.jpg Here is the formula for finding any color you want.First the number chart for hex, this is an easy one to use. (I took this from google, you can find others)https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xpf1/t31.0-8/10571945_707305222674251_8368483838038214508_o.jpg Take the hex number, say for Goldenrod-DAA520- and break out the colors, we'll start with Red.DAA520DA=218Now we are going to assign values to those used in game(3A-3F)0=3A,1=3B, 2=3C, 3=3D, 4=3E, 5=3FNow since there are 256 hex values and 6 in game values(for the fourth pair) we are going to divide 256 by 6 = 42.66Now we are going to divide the above value by 42.66218/42.5=5.1094The first number is going to be assigned to the fourth pairing, 5=3FThe rest of the number is going into the third pair.First we are going to multiply by 100 to get the number we want..1094*100=10.94Now we are going to multiply by 2.56 (256/100)10.94*2.56=28we are now going to convert this into Hex28=1CThat is our third pair.I'll now do the math without all of the talking for GreenDAA520A5=165 165/42.66=3.86779 3=3D(fourth pair).86779*100=86.779 86.779*2.56=222=DE(third pair)BlueDAA52020=32 32/42.66=0.75 0=3A(fourth pair).75*100=75 75*2.56=192 192=CO(third pair) And here is Orchid without the math- DA70D6** ** 1C 3F ** ** A0 3C ** ** 04 3F And what they look like.https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/1518927_707322542672519_6108942319807077631_o.jpg If you notice the guy on the right has a different skin color than his head....I have no idea how I got that, I might have modded a different number segment that controls the head values, I will investigate at a later date and see if I can find something. If anyone else figures it out, please let me know. Edited August 31, 2014 by rdngmikey Link to comment Share on other sites More sharing options...
Zyxpsilon Posted August 30, 2014 Share Posted August 30, 2014 (edited) Wow... heartfelt thanks for this thorough guide.I've always been after the exact RGB values of all Armor-Tints and you've just provided (us all) a solid method to find anything we want.It's more obvious now than it ever was from the initial Wiki Article.All that remains to obtain is wghost81's ((overdue)) patcher function (or custom code component) that could allow anyone to expand the pool of available color-sets beyond the defaults limit (0-32).Imagine the variety and personal creativity this would open up; Silver Metallic, Gold plating, Charcoal blacks, Psi-Purples, nearly millions of possibilties! :cool: Edited August 30, 2014 by Zyxpsilon Link to comment Share on other sites More sharing options...
zeppelin1717 Posted August 30, 2014 Share Posted August 30, 2014 (edited) The reason the last guy's head looks normal is because it's one of the "cheat" characters, based on one of the creators (Ken Levine) of the game. You can't change those faces at all. I forget which head values they are, but I'm pretty sure there are 4 around 18-22 or something. Look up sid meier's face and that will be the first custom head of the 4. The custom heads are 15, 16, 17, and 18 (15 is sid meier, if you've ever wondered what he looks like). Edited August 31, 2014 by zeppelin1717 Link to comment Share on other sites More sharing options...
rdngmikey Posted August 30, 2014 Author Share Posted August 30, 2014 (edited) This is the best silver I can do. https://scontent-a-dfw.xx.fbcdn.net/hphotos-xap1/t31.0-8/10644600_707281826009924_4794705117592967923_o.jpg Thanks Zeppelin1717 for the info, keeps me from digging around in the files fulitly. Here is a quick Gold, mind you there aren't going to be any true Metallic colos, but there are plenty of options for the moment. https://scontent-b-dfw.xx.fbcdn.net/hphotos-xpa1/t31.0-8/10659014_707287222676051_8794695508913769163_o.jpg Edited August 30, 2014 by rdngmikey Link to comment Share on other sites More sharing options...
dubiousintent Posted August 31, 2014 Share Posted August 31, 2014 (edited) Indeed, that's a welcome addition to our game knowledge; and a tutorial to boot. :dance: Unless you object, I'll turn it into it's own wiki article, so it doesn't get lost in the forum scroll: unless you or others think it belongs within an existing one? We usually give in-depth pieces their own page and cross reference in related articles (i.e. "Modifying Textures" and "Adding and changing art assets". Additional suggestions welcomed.) -Dubious- Edited August 31, 2014 by dubiousintent Link to comment Share on other sites More sharing options...
wghost81 Posted August 31, 2014 Share Posted August 31, 2014 I took a quick look at Startup.upk with DeserializeAll utility and found an object rdngmikey is talking about: it's UnitPalettes object. UnitPalettes object has 10 child objects of XComLinearColorPalette type: 0x00000114 (276): XComLinearColorPalette'UnitPalettes.AfricanSkin' 0x00000115 (277): XComLinearColorPalette'UnitPalettes.ArmorTint' 0x00000116 (278): XComLinearColorPalette'UnitPalettes.AsianSkin' 0x00000117 (279): XComLinearColorPalette'UnitPalettes.CaucasianSkin' 0x00000118 (280): XComLinearColorPalette'UnitPalettes.EyeColor' 0x00000119 (281): XComLinearColorPalette'UnitPalettes.FormalClothesColor' 0x0000011A (282): XComLinearColorPalette'UnitPalettes.HairColor' 0x0000011B (283): XComLinearColorPalette'UnitPalettes.HispanicSkin' 0x0000011C (284): XComLinearColorPalette'UnitPalettes.PantsColor' 0x0000011D (285): XComLinearColorPalette'UnitPalettes.ShirtColor' All 10 objects are ArchetypeObjects, i.e. contain a list of default properties only. So, they're easily readable and editable. For example, UnitPalettes.ArmorTint object can be deserialized into: 0x00000115 (277): XComLinearColorPalette'UnitPalettes.ArmorTint' TypeRef: 0xFFFFFFE5 -> XComLinearColorPalette ParentClassRef: 0x00000000 -> OwnerRef: 0x000000B4 -> UnitPalettes NameIdx: 0x00000021 (Index) 0x00000000 (Numeric) -> ArmorTint ArchetypeRef: 0x00000000 -> ObjectFlagsH: 0x00000400 0x00000400: ArchetypeObject ObjectFlagsL: 0x000F0005 0x00000001: Transactional 0x00000004: Public 0x00010000: LoadForClient 0x00020000: LoadForServer 0x00040000: LoadForEdit 0x00080000: Standalone SerialSize: 0x00000D44 (3396) SerialOffset: 0x00074B19 ExportFlags: 0x00000001 0x00000001: ForcedExport NetObjectCount: 0 GUID: 00000000000000000000000000000000 Unknown1: 0x00000000 UObject: PrevObjRef = 0x00000001 -> DOFAndBloomEffect_0 UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000228 (Index) 0x00000000 (Numeric) -> Entries TypeIdx: 0x00000022 (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x00000D04 ArrayIdx: 0x00000000 NumElements = 0x00000020 = 32 ArrayInnerType = None Entries[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D17AB36, 0x3E116348, 0x3E9CFF3B, 0x3F800000) = (0.0370285, 0.14198, 0.306635, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3BB4EFC1, 0x3D367CD1, 0x3D5F9C27, 0x3F800000) = (0.00552174, 0.0445526, 0.0545923, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[1]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E59222B, 0x3E59222B, 0x3E0B5D6B, 0x3F800000) = (0.212044, 0.212044, 0.136099, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D0C34F9, 0x3DD43E1D, 0x3E3F79EA, 0x3F800000) = (0.0342302, 0.103634, 0.186989, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[2]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C78A190, 0x3D86A9F8, 0x3D587076, 0x3F800000) = (0.0151752, 0.0657539, 0.0528416, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E190953, 0x3EC3846E, 0x3ECBA938, 0x3F800000) = (0.14945, 0.38187, 0.397775, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[3]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C42A9EE, 0x3E0B5D6B, 0x3EC1E1DB, 0x3F800000) = (0.0118813, 0.136099, 0.378676, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D1D9599, 0x3D17AB36, 0x3D0C34F9, 0x3F800000) = (0.0384727, 0.0370285, 0.0342302, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[4]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3EDFA5EC, 0x3EE54F54, 0x3EEB0C85, 0x3F800000) = (0.436813, 0.447871, 0.45908, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C350832, 0x3C2F240F, 0x3C258ED8, 0x3F800000) = (0.0110493, 0.0106897, 0.0101049, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[5]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3BB4EFC1, 0x3B9569FF, 0x3E59222B, 0x3F800000) = (0.00552174, 0.00455975, 0.212044, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D1D9599, 0x3D0C34F9, 0x3D06A8E6, 0x3F800000) = (0.0384727, 0.0342302, 0.0328759, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[6]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D1D9599, 0x3EAB3E0E, 0x3EF0DD8B, 0x3F800000) = (0.0384727, 0.334458, 0.47044, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D1D9599, 0x3CABA1B5, 0x3D013C08, 0x3F800000) = (0.0384727, 0.0209511, 0.0315514, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[7]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E849F3B, 0x3E4A41BF, 0x3D301326, 0x3F800000) = (0.259027, 0.197516, 0.042987, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3BD7C6A0, 0x3D367CD1, 0x3DCA1D90, 0x3F800000) = (0.00658496, 0.0445526, 0.0986892, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[8]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CD97CA0, 0x3D4A7ABD, 0x3D43B082, 0x3F800000) = (0.0265487, 0.0494335, 0.0477758, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E358EF3, 0x3E5CE197, 0x3E67F27F, 0x3F800000) = (0.177303, 0.215704, 0.226511, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[9]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C2A5B8B, 0x3C1EDD5A, 0x3C2A5B8B, 0x3F800000) = (0.0103978, 0.00969633, 0.0103978, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F4F1B7D, 0x3F581052, 0x3F5B37EC, 0x3F800000) = (0.809013, 0.843999, 0.856322, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[10]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CE24A3E, 0x3C6AB35A, 0x3BC30F86, 0x3F800000) = (0.0276233, 0.014325, 0.00595278, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F60E02E, 0x3F515523, 0x3F4A8361, 0x3F800000) = (0.878421, 0.817705, 0.791067, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[11]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DF440B1, 0x3D013C08, 0x3D013C08, 0x3F800000) = (0.119264, 0.0315514, 0.0315514, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CCA8964, 0x3CCA8964, 0x3CE24A3E, 0x3F800000) = (0.0247237, 0.0247237, 0.0276233, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[12]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E828455, 0x3D06A8E6, 0x3E1DDA17, 0x3F800000) = (0.254916, 0.0328759, 0.154152, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F25431C, 0x3F25431C, 0x3F25431C, 0x3F800000) = (0.645555, 0.645555, 0.645555, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[13]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E4DEC0A, 0x3D82B15F, 0x3F2FE140, 0x3F800000) = (0.201096, 0.0638149, 0.687031, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F25431C, 0x3F25431C, 0x3F25431C, 0x3F800000) = (0.645555, 0.645555, 0.645555, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[14]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CABA1B5, 0x3CABA1B5, 0x3CB45499, 0x3F800000) = (0.0209511, 0.0209511, 0.022013, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CBD43AB, 0x3F0DE1D4, 0x3F57E714, 0x3F800000) = (0.0231036, 0.554227, 0.84337, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[15]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CBD43AB, 0x3F0DE1D4, 0x3F57E714, 0x3F800000) = (0.0231036, 0.554227, 0.84337, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CABA1B5, 0x3CABA1B5, 0x3CB45499, 0x3F800000) = (0.0209511, 0.0209511, 0.022013, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[16]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D4A7ABD, 0x3CC66F31, 0x3C6A76AB, 0x3F800000) = (0.0494335, 0.0242229, 0.0143105, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E8B0C32, 0x3E93DFB0, 0x3E9CFF3B, 0x3F800000) = (0.271577, 0.288816, 0.306635, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[17]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3B00ACA8, 0x3A82128E, 0x3EB29E69, 0x3F800000) = (0.00196342, 0.000992374, 0.348865, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x00000000, 0x3F4C02B9, 0x3F796BBD, 0x3F800000) = (0, 0.796917, 0.9743, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[18]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3EDA1042, 0x3CA32ABC, 0x3C5CBF86, 0x3F800000) = (0.425905, 0.0199178, 0.0134734, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x00000000, 0x3EDA1042, 0x3F800000, 0x3F800000) = (0, 0.425905, 1, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[19]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D17AB36, 0x3D75E3B4, 0x3ECF1FFA, 0x3F800000) = (0.0370285, 0.0600316, 0.404541, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DE94F61, 0x3E147393, 0x3C5CBF86, 0x3F800000) = (0.113921, 0.144972, 0.0134734, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[20]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DFF782E, 0x3CBD43AB, 0x3BA4C3A1, 0x3F800000) = (0.124741, 0.0231036, 0.0050282, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3B58722A, 0x3D367CD1, 0x3E96206D, 0x3F800000) = (0.0033027, 0.0445526, 0.293216, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[21]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C9AEF67, 0x3C9AEF67, 0x3BC5F02C, 0x3F800000) = (0.018913, 0.018913, 0.00604059, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3C42A9EE, 0x3C9AEF67, 0x3D5F9C27, 0x3F800000) = (0.0118813, 0.018913, 0.0545923, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[22]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DB6AB16, 0x3EAB3E0E, 0x3EF9BC5C, 0x3F800000) = (0.0891935, 0.334458, 0.487765, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D8ECD13, 0x3DC5272C, 0x3DEEBF48, 0x3F800000) = (0.0697271, 0.0962661, 0.116576, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[23]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DA8C8C7, 0x3ADD1B7C, 0x3DE94F61, 0x3F800000) = (0.0824142, 0.00168692, 0.113921, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3B58722A, 0x3E8F6C76, 0x3E60C9C7, 0x3F800000) = (0.0033027, 0.280124, 0.21952, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[24]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E88E328, 0x00000000, 0x3F59EBA1, 0x3F800000) = (0.267358, 0, 0.851252, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F600904, 0x3EDCD8A0, 0x00000000, 0x3F800000) = (0.875138, 0.43134, 0, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[25]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x00000000, 0x3EA66B3F, 0x3F800000, 0x3F800000) = (0, 0.325037, 1, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F800000, 0x00000000, 0x3EA4090D, 0x3F800000) = (1, 0, 0.320382, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[26]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x00000000, 0x3E0867D0, 0x3E0867D0, 0x3F800000) = (0, 0.133209, 0.133209, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x00000000, 0x3CED7EED, 0x3E0867D0, 0x3F800000) = (0, 0.0289912, 0.133209, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[27]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3EA4090D, 0x3E9AB031, 0x3E60C9C7, 0x3F800000) = (0.320382, 0.302125, 0.21952, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F091FCF, 0x3F160253, 0x3F111A71, 0x3F800000) = (0.535642, 0.585973, 0.56681, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[28]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E9AB031, 0x3ED1D4AE, 0x3EF3CD82, 0x3F800000) = (0.302125, 0.409826, 0.476177, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3F51E924, 0x3F685503, 0x3F796BBD, 0x3F800000) = (0.819964, 0.907547, 0.9743, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[29]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D8ECD13, 0x3E27916C, 0x3E806E22, 0x3F800000) = (0.0697271, 0.163641, 0.25084, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E806E22, 0x3EE54F54, 0x3F201697, 0x3F800000) = (0.25084, 0.447871, 0.625345, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[30]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3D86A9F8, 0x3E789F9B, 0x3DD43E1D, 0x3F800000) = (0.0657539, 0.242796, 0.103634, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3E555C3C, 0x3EDCD8A0, 0x3E806E22, 0x3F800000) = (0.20836, 0.43134, 0.25084, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None Entries[31]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000003DE (Index) 0x00000000 (Numeric) -> Primary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3CB50832, 0x3CB50832, 0x3CB50832, 0x3F800000) = (0.0220986, 0.0220986, 0.0220986, 1) UDefaultProperty: NameIdx: 0x00000492 (Index) 0x00000000 (Numeric) -> Secondary TypeIdx: 0x00000B02 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000010 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000340 (Index) 0x00000000 (Numeric) -> LinearColor LinearColor (R, G, B, A) = (0x3DE24A3E, 0x3DE24A3E, 0x3DE24A3E, 0x3F800000) = (0.110493, 0.110493, 0.110493, 1) UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x00000055 (Index) 0x00000000 (Numeric) -> BaseOptions TypeIdx: 0x0000030E (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000020 = 32 UDefaultProperty: NameIdx: 0x00000392 (Index) 0x00000000 (Numeric) -> None It has 32 elements, each element consists of Primary and Secondary object of LinearColor type: struct LinearColor { var() config float R, G, B, A; structdefaultproperties { A=1.f } }; Link to comment Share on other sites More sharing options...
wghost81 Posted August 31, 2014 Share Posted August 31, 2014 Here's PatcherGUI mod file to change ArmorTint colors: UPK_FILE=Startup.upk OBJECT=UnitPalettes.ArmorTint REL_OFFSET=32 [MODDED_CODE] // entry #0 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0370285> <%f 0.14198> <%f 0.306635> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.00552174> <%f 0.0445526> <%f 0.0545923> <%f 1.0> // (R, G, B, A) <None> // entry #1 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.212044> <%f 0.212044> <%f 0.136099> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0342302> <%f 0.103634> <%f 0.186989> <%f 1.0> // (R, G, B, A) <None> // entry #2 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0151752> <%f 0.0657539> <%f 0.0528416> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.14945> <%f 0.38187> <%f 0.397775> <%f 1.0> // (R, G, B, A) <None> // entry #3 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0118813> <%f 0.136099> <%f 0.378676> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0384727> <%f 0.0370285> <%f 0.0342302> <%f 1.0> // (R, G, B, A) <None> // entry #4 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.436813> <%f 0.447871> <%f 0.45908> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0110493> <%f 0.0106897> <%f 0.0101049> <%f 1.0> // (R, G, B, A) <None> // entry #5 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.00552174> <%f 0.00455975> <%f 0.212044> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0384727> <%f 0.0342302> <%f 0.0328759> <%f 1.0> // (R, G, B, A) <None> // entry #6 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0384727> <%f 0.334458> <%f 0.47044> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0384727> <%f 0.0209511> <%f 0.0315514> <%f 1.0> // (R, G, B, A) <None> // entry #7 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.259027> <%f 0.197516> <%f 0.042987> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.00658496> <%f 0.0445526> <%f 0.0986892> <%f 1.0> // (R, G, B, A) <None> // entry #8 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0265487> <%f 0.0494335> <%f 0.0477758> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.177303> <%f 0.215704> <%f 0.226511> <%f 1.0> // (R, G, B, A) <None> // entry #9 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0103978> <%f 0.00969633> <%f 0.0103978> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.809013> <%f 0.843999> <%f 0.856322> <%f 1.0> // (R, G, B, A) <None> // entry #10 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0276233> <%f 0.014325> <%f 0.00595278> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.878421> <%f 0.817705> <%f 0.791067> <%f 1.0> // (R, G, B, A) <None> // entry #11 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.119264> <%f 0.0315514> <%f 0.0315514> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0247237> <%f 0.0247237> <%f 0.0276233> <%f 1.0> // (R, G, B, A) <None> // entry #12 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.254916> <%f 0.0328759> <%f 0.154152> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.645555> <%f 0.645555> <%f 0.645555> <%f 1.0> // (R, G, B, A) <None> // entry #13 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.201096> <%f 0.0638149> <%f 0.687031> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.645555> <%f 0.645555> <%f 0.645555> <%f 1.0> // (R, G, B, A) <None> // entry #14 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0209511> <%f 0.0209511> <%f 0.022013> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0231036> <%f 0.554227> <%f 0.84337> <%f 1.0> // (R, G, B, A) <None> // entry #15 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0231036> <%f 0.554227> <%f 0.84337> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0209511> <%f 0.0209511> <%f 0.022013> <%f 1.0> // (R, G, B, A) <None> // entry #16 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0494335> <%f 0.0242229> <%f 0.0143105> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.271577> <%f 0.288816> <%f 0.306635> <%f 1.0> // (R, G, B, A) <None> // entry #17 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.00196342> <%f 0.000992374> <%f 0.348865> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0> <%f 0.796917> <%f 0.9743> <%f 1.0> // (R, G, B, A) <None> // entry #18 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.425905> <%f 0.0199178> <%f 0.0134734> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0> <%f 0.425905> <%f 1.0> <%f 1.0> // (R, G, B, A) <None> // entry #19 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0370285> <%f 0.0600316> <%f 0.404541> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.113921> <%f 0.144972> <%f 0.0134734> <%f 1.0> // (R, G, B, A) <None> // entry #20 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.124741> <%f 0.0231036> <%f 0.0050282> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0033027> <%f 0.0445526> <%f 0.293216> <%f 1.0> // (R, G, B, A) <None> // entry #21 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.018913> <%f 0.018913> <%f 0.00604059> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0118813> <%f 0.018913> <%f 0.0545923> <%f 1.0> // (R, G, B, A) <None> // entry #22 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0891935> <%f 0.334458> <%f 0.487765> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0697271> <%f 0.0962661> <%f 0.116576> <%f 1.0> // (R, G, B, A) <None> // entry #23 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0824142> <%f 0.00168692> <%f 0.113921> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0033027> <%f 0.280124> <%f 0.21952> <%f 1.0> // (R, G, B, A) <None> // entry #24 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.267358> <%f 0.0> <%f 0.851252> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.875138> <%f 0.43134> <%f 0.0> <%f 1.0> // (R, G, B, A) <None> // entry #25 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0> <%f 0.325037> <%f 1.0> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 1.0> <%f 0.0> <%f 0.320382> <%f 1.0> // (R, G, B, A) <None> // entry #26 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0> <%f 0.133209> <%f 0.133209> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0> <%f 0.0289912> <%f 0.133209> <%f 1.0> // (R, G, B, A) <None> // entry #27 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.320382> <%f 0.302125> <%f 0.21952> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.535642> <%f 0.585973> <%f 0.56681> <%f 1.0> // (R, G, B, A) <None> // entry #28 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.302125> <%f 0.409826> <%f 0.476177> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.819964> <%f 0.907547> <%f 0.9743> <%f 1.0> // (R, G, B, A) <None> // entry #29 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0697271> <%f 0.163641> <%f 0.25084> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.25084> <%f 0.447871> <%f 0.625345> <%f 1.0> // (R, G, B, A) <None> // entry #30 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0657539> <%f 0.242796> <%f 0.103634> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.20836> <%f 0.43134> <%f 0.25084> <%f 1.0> // (R, G, B, A) <None> // entry #31 <Primary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.0220986> <%f 0.0220986> <%f 0.0220986> <%f 1.0> // (R, G, B, A) <Secondary> <StructProperty> <%u 0x00000010> <%u 0x00000000> <LinearColor> <%f 0.110493> <%f 0.110493> <%f 0.110493> <%f 1.0> // (R, G, B, A) <None> Since I used floating-point values, result is slightly different from vanilla code. I haven't tested it in actual game, I've only verified Startup.upk changes. Link to comment Share on other sites More sharing options...
Zyxpsilon Posted August 31, 2014 Share Posted August 31, 2014 (edited) Amazing stuff. These formal RGB references can be "exploited" to provide anyone with superb custom Armor Tints of their own! Must they absolutely be floating values, though? The most commonly used systems would have to be Decimal-RGBA(0-255) or even HSL (but that's not a true match with code source data, i gather). And... wghost81, IIRC weren't you the coder that had previous plans to create some new tricky code functions to expand the available Tint sets beyond the default (0-32) limit? Dubious, even wg's facts (or code methods) could be integrated in a much more precise Wiki Article... indeed. We're making huge progress, that's for sure. Edited August 31, 2014 by Zyxpsilon Link to comment Share on other sites More sharing options...
rdngmikey Posted August 31, 2014 Author Share Posted August 31, 2014 (edited) Thanks for all of the info ghost. Here is a mod to change Asian skin colors. I'll post more later, a little busy at the moment. BACK UP FILES FIRST!!! THIS MOD HAS RANDOM COLORS!! UPK_FILE=Startup.upk OBJECT=UnitPalettes.AsianSkinREL_OFFSET=32[MODDED_CODE]// entry #0<Primary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f 0.0277553> <%f 0.0528416> <%f 0.103634> <%f 1.0> // (R, G, B, A)<Secondary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f -1.07374e+008> <%f -1.07374e+008> <%f -1.07374e+008> <%f 1.0> // (R, G, B, A)<None>// entry #1<Primary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f 0.602044> <%f 0.902044> <%f 0.136099> <%f 1.0> // (R, G, B, A)<Secondary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f -1.07374e+008> <%f -1.07374e+008> <%f -1.07374e+008> <%f 1.0> // (R, G, B, A)<None>// entry #2<Primary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f 0.02> <%f 0.02> <%f 0.03> <%f 1.0> // (R, G, B, A)<Secondary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f -1.07374e+008> <%f -1.07374e+008> <%f -1.07374e+008> <%f 1.0> // (R, G, B, A)<None>// entry #3<Primary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f 1.1118813> <%f 0.136099> <%f 0.998676> <%f 1.0> // (R, G, B, A)<Secondary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f -1.07374e+008> <%f -1.07374e+008> <%f -1.07374e+008> <%f 1.0> // (R, G, B, A)<None>// entry #4<Primary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f 0.906813> <%f 0.907871> <%f 0.90908> <%f 1.0> // (R, G, B, A)<Secondary><StructProperty><%u 0x00000010><%u 0x00000000><LinearColor><%f -1.07374e+008> <%f -1.07374e+008> <%f -1.07374e+008> <%f 1.0> // (R, G, B, A)<None> This is completely based off of wghost's work on armor tints.Mod tested and works(as well as wghosts armortints mod) Edited August 31, 2014 by rdngmikey Link to comment Share on other sites More sharing options...
wghost81 Posted August 31, 2014 Share Posted August 31, 2014 Zyxpsilon, Unreal Engine can use both LinearColor, which is floating-point RGBA structure, and Color, which uses fixed-point 8-bit RGBA. XCOM palettes, defined in Startup.upk, use LinearColor. It wasn't me who was planning to expand Tints set, but I think it's doable. Object can be expanded, NumElements can be increased (as well as PropertySize) and BaseOptions value can be changed too. But isn't 32 existing entries enough? :smile: Link to comment Share on other sites More sharing options...
Recommended Posts