REAL RACING 3 CAR LIVERY EDITING
REAL RACING 3 CAR LIVERY EDITING
Compiled and Documented by: Compiled and Documented by:
Kiotu of Real Racing 3 Indonesia (RR3I). Kiotu of Real Racing 3 Indonesia (RR3I). Credits to these guys:
Credits to these guys: o
o “Luigi Aurriema”,“Luigi Aurriema”, for QuickBMSfor QuickBMS o
o “Barti”, of Xentax,“Barti”, of Xentax, for QuickBMS scriptsfor QuickBMS scripts o
o ““173future173future”, of Real Racing Tieba,”, of Real Racing Tieba, for basic PVR livery editing.for basic PVR livery editing. o
o EA and FM for the Great Game.EA and FM for the Great Game. BASIC KNOWLEDGE
BASIC KNOWLEDGE
So you want a distinctive livery that even the RR3 latest customization tool can
So you want a distinctive livery that even the RR3 latest customization tool can ’’t provide. Heret provide. Here’’s the how-to of how you can achieves the how-to of how you can achieve that.
that.
For I have in my possession three types of device using three types of GPU that run Real Racing 3, so only these there format of RR3 For I have in my possession three types of device using three types of GPU that run Real Racing 3, so only these there format of RR3 textures are known by me (I don
textures are known by me (I don ’’t have a Tegra device). Each of the GPU uses its own image compression technology and filet have a Tegra device). Each of the GPU uses its own image compression technology and file container.
container. GPU
GPU Image/Texture Image/Texture Compression Compression Image/Texture Image/Texture ContainerContainer PowerVR
PowerVR PVRTC4 PVRTC4 .PVR.PVR
Mali
Mali ETC1 ETC1 .ETC.DDS.ETC.DDS
Adreno
Adreno ATITC ATITC .ATC.DDS.ATC.DDS
After RR3 ver. 1.3.5, the image containers used for RR3 Car Liveries are archieved. So it can
After RR3 ver. 1.3.5, the image containers used for RR3 Car Liveries are archieved. So it can ’’t be directly processed for extracting. Wet be directly processed for extracting. We know it was compressed simply the naming behind those containers.
know it was compressed simply the naming behind those containers. e.g. .PVR.Z, .ETC.DDS.Z, .ATC.DDS.Z.e.g. .PVR.Z, .ETC.DDS.Z, .ATC.DDS.Z.
With different image compression and container used, it can be a headache for some that just want to simply use a ready made With different image compression and container used, it can be a headache for some that just want to simply use a ready made liveries done by others. But the good news is,
liveries done by others. But the good news is, the textures used on the three devices type the textures used on the three devices type are interchangeable. For example, you canare interchangeable. For example, you can use PVR texture in both Adreno and Mali, Mali texture can be read by Adreno devices, and so on (go experiment yourself). So if you use PVR texture in both Adreno and Mali, Mali texture can be read by Adreno devices, and so on (go experiment yourself). So if you feel tired of editing your own textures, you
feel tired of editing your own textures, you can go download those liveries macan go download those liveries ma de by others and use it de by others and use it for your own devicefor your own device – –albeit thealbeit the texture type of origin device.
texture type of origin device.
The key to using interchangeable file format is simple, by file renaming. The key to using interchangeable file format is simple, by file renaming. For example: most of re
For example: most of ready made liveries are done in PVR format, I downloadeady made liveries are done in PVR format, I downloaded a livery d a livery for BMW Z4 with filename:for BMW Z4 with filename: 2012_audi_r8_lms_ext_audi_sport_
2012_audi_r8_lms_ext_audi_sport_black.PVR. So just backblack.PVR. So just back up your original file, simply by up your original file, simply by adding another file extension, for exampleadding another file extension, for example .bak, copy the downloaded file to the original livery folder on your device, and rename it. Files located in:
.bak, copy the downloaded file to the original livery folder on your device, and rename it. Files located in:
AndroidAndroid : “.depot/vehicles/”nameofcar: “.depot/vehicles/”nameofcar””/livery//livery/””
iOSiOS : “RealRacing3.app/res/vehicles/: “RealRacing3.app/res/vehicles/””nameofcarnameofcar””/livery//livery/””
And here
And here’’s the renaming scheme:s the renaming scheme: GPU
GPU Original Original filename filename Rename Rename Downloaded Downloaded File File toto PowerVR
PowerVR 2012_audi_r8_lms_ext_audi_sport_bl2012_audi_r8_lms_ext_audi_sport_black.ptc.pvr.z ack.ptc.pvr.z 2012_audi_r8_lms_ext_audi_sport_b2012_audi_r8_lms_ext_audi_sport_black.ptc.pvrlack.ptc.pvr 2012_audi_r8_lms_ext_audi_sport_black.pvr 2012_audi_r8_lms_ext_audi_sport_black.pvr Mali
Mali 2012_audi_r8_lms_ext_audi_sport_bl2012_audi_r8_lms_ext_audi_sport_black.etc.dds.z ack.etc.dds.z 2012_audi_r8_lms_ext_audi_sport_b2012_audi_r8_lms_ext_audi_sport_black.pvrlack.pvr Adreno
Adreno 2012_audi_r8_lms_ext_audi_sport_bl2012_audi_r8_lms_ext_audi_sport_black.atc.dds.z ack.atc.dds.z 2012_audi_r8_lms_ext_audi_sport_b2012_audi_r8_lms_ext_audi_sport_black.pvrlack.pvr And as you can
And as you can see, RR3 will still read the see, RR3 will still read the unarchieved texture despite the difference in filename extension. With other types ofunarchieved texture despite the difference in filename extension. With other types of container you can experiment with the re-naming fil
container you can experiment with the re-naming fil e within the same scheme.e within the same scheme. BASIC STEPS OF EDITING TEXTURES FILES
BASIC STEPS OF EDITING TEXTURES FILES
So you decided that you want to make your own livery with your own resource files, here
So you decided that you want to make your own livery with your own resource files, here ’’s the steps:s the steps: 1.
1. Un-Archieve the livery texture.Un-Archieve the livery texture. 2.
2. Converting unarchieved livery to editable format.Converting unarchieved livery to editable format. 3.
3. Edit the livery.Edit the livery. 4.
4. Convert back to format readable by RR3.Convert back to format readable by RR3. Those are the basic steps required, since the tools
Those are the basic steps required, since the tools used are varied from one used are varied from one GPU to another, the specific GPU to another, the specific steps will be described persteps will be described per GPU type.
POWERVR DEVICES
Tools required:
QuickBMS, http://aluigi.altervista.org/quickbms.htm
Main tools for un-archieving the texture files.
RR3.bms, script to be used with QuickBMS, this is packed within RR3 tools in:
http://forum.xentax.com/viewtopic.php?f=16&t=10300&sid=21910eb2827dd41618f5c57d1b6d07cd
Texture Packer: http://www.codeandweb.com/texturepacker/download
Tool for converting and repacking the .pvr format
Image editing software, Photoshop, GIMP, or whatever your favorite.
Procedures:
1. Un-Archieve the livery texture.
Copy or pull the livery file(s) to your PC, put it in a distinct location for easy access. Extract the RR3.bms downloaded from the specified link.
Open QuickBMS, select RR3.bms, select livery file (.pvr.z), select folder for extracting. Do note that you can select multiple files for processing.
2. Converting unarchieved livery to editable format.
Open Texture Packer, select Pro Trial if you don ’t wish to buy it a s per now, select PVR Viewer, and pick the extracted .pvr from previous step. Choose File, Save As, select .PNG format, and select the output folder. By now we should ha ve an image file ready for editing.
3. Edit the texture file as however you like. For easier editing, you can also extract the mask file provided in the parent folder of the car livery, use this mask for filtering the selection.
After finish with editing the texture file, f latten the image ’s layer (if you use layers), and we need to flip the image vertically. In Photoshop, choose “Image” – “Image Rotation” – “Flip canvas vertical”. And finally save the image (still in .PNG format).
4. Convert back to format readable by RR3
Open Texture Packer, select from menu Add Sprites, choose the modified “.PNG” file. The texture will then be shown in preview window, from the tab “Sprites” select the name of the “.PNG” file.
- Tab “Output”
o “Texture Format”, select PVR, o Check “PVR Premultification” o “Image Format”, select “PVRTC4” - Tab “Geometry”
o “Max size”, select “1024” - Tab “Layout”
o “Border Padding”, select “0” o “Shape Padding”, select “0”
- Image ready to convert, select menu “Publish”
- Fill in the name in .plist format, it will then produce both “.plist”, dan “.PVR” files, the “.PVR” file is what we are going to use.
Open the output folder, copy the published “.PVR” file to the original location in your device, use the renaming scheme as pointed previously and you’re done, go open the RR3 for testing.
MALI DEVICES
I haven’t found a single documented method of doing texture editing for nativ e Mali device, here ’s all the steps required based on my research and tinkering.
Tools required:
QuickBMS, http://aluigi.altervista.org/quickbms.htm
Main tools for un-archieving the texture files.
RR3.bms and ddsetc2pkm.bms, script to be used with QuickBMS, this is packed into one archieve RR3 Tools in:
http://forum.xentax.com/viewtopic.php?f=16&t=10300&sid=21910eb2827dd41618f5c57d1b6d07cd
Texture Packer: http://www.codeandweb.com/texturepacker/download
Tool for converting and repacking the .pvr format
PVRTexTool from Imagination, download the PowerVR SDK:
http://www.imgtec.com/powervr/insider/powervr-pvrtextool.asp
Hex File Editor, I recommend using HxD (it ’s free.. :D)
http://mh-nexus.de/en/hxd/
Image editing software, Photoshop, GIMP, or whatever your favorite.
Procedures:
1. Un-Archieve the livery texture.
Copy or pull the livery file(s) to your PC, put it in a distinct location for easy access. Extract the RR3.bms downloaded from the specified link.
Open QuickBMS, select RR3.bms, select livery file (.etc.dds.z), select folder for extracting. Do note that you can select multiple files for processing.
You will have then the livery file in .etc.dds format. Note this file location and whatever you do don ’t overwrite this file, make backup if necessary as we need this file later on.
Different from step in PowerVR textures, you n eed to extract this “etc.dds” file once more to have a readable textures. Open QuickBMS, select ddsetc2pkm.bms, select the extracted “etc.dds” file and select the output folder. You will then be prompted for an action, you can select “y” for overwrite or “a” for append (if you are converting multiple files at the same time). The end result will be a file with “.PKM” extension. This file can be converted to PNG.
2. Converting unarchieved livery to editable format.
Open Texture Packer, select Pro Trial if you don ’t wish to buy it a s per now, select PVR Viewer, and pick the extracted “.PKM” file from previous step. Choose File, Save As, select .PNG format, and select the output folder. By now we should have an image file ready for editing.
3. Edit the texture file as however you like. For easier editing, you can also extract the mask file provided in the parent folder of the car livery, use this mask for filtering the selection.
After finish with editing the texture file, f latten the image ’s layer (if you use layers ) and finally save the image (still in .PNG format).
4. Convert back to format readable by RR3
Here’s the trickiest part, we need to first create a set of mipmap for the new texture, which is different than in PowerVR of which can worked just by the main texture size. We need to use the original “.etc.dds” file to do so.
Open PVRTexTool, select “file”. “wrap raw data”. I learned that by doing this we can skip all the texture container ’s header and directly open the raw texture in it s original compression methods (which is ETC1 in this case). Choose the original “.etc.dds” file, and make sure the parameter ’s sets match with the following:
If the correct setting is applied, the Data Offset size should a utomatically changed to 128 bytes, which is the correct header size of .DDS container. Press OK, the original texture will be shown, select from the “Surface Browser” from the left tab, and here’s the result:
As you can see, we have 11 level of mipmaps. Mipmaps are used for decreasing the texture load on the GPU, for example when we are viewing the 3D object from far view then the map used should be the less detailed one (small mipmap), and vice versa.
Now we need to replace each of the mipmap level with the edited image from earlier step. Select each of the mipmap levels, right click and select “load file to surface”, select the edited “.PNG” from previous step. Do this for all the 11 level. If there is a warning about size miss- match just select ok to resize.
After all the mipmaps been replaced, select from button menu “encode the current textures to a new format ”
Select encode and it will popup a new texture window, select save as, choose .dds format, and save in name other than the original, for example I choose to name it “test.dds”.
Ok, so now we have the new texture file, right? No … this file won’t work with RR3, It took me hours to find out how make this work, and after comparing the file with the original “.DDS”, it is very obvious (and simple actually) that the header of ETC compression is different. So we need to copy the original file ’s header to the new one. Here ’s how we can do it. Open both file using Hex Editor tool. Select the new “.dds” file, select the first 148byte of file ’s data (block 00-93), and delete it.
“Paste-insert” the data into the new “.dds” file from offset 00000000. Save.
That’s it, the new “.dds” livery file is ready to be used. Copy it to the original folder on your device, and do the rename as described earlier. Open RR3 and test it.
ADRENO DEVICES
Sorry, due to my lack of time, I haven ’t completely done the research on Adreno texture, It probably near identical the steps on Mali devices except for different extraction and compressing tools required.
So… be a Racer, and an Artist … Happy Racing Guys… (and Gals).