This is a guide to make player faces for Rugby 08 using Blender and a plugin called Facebuilder. In this rough guide I will be creating Johnny Sexton's head to use in Rugby 08. Special thanks to Dmitri who has done most of the actual work on this at this thread:
https://www.therugbyforum.com/threads/otools-for-editing-o-and-fsh-files.47704/, I'm just writing down step-by-step instructions here.
Tools used:
Blender 2.83.5
Facebuilder plugin 2021.2.0 (30 day free trial)
BigGUI
FshEd with "Graphic Importer" plugin
OTools GUI 0.171
Woosah's Rugby 08 roster editor
An image editor such as Photoshop, GIMP etc.
Woosah's editor usually comes with a list of real player heads already in Rugby 08, their ID number and the file the head is stored in.
The in game models are all stored in data.gob in Rugby 08/Data/motion. Use BigGUI to access this folder and extract your file to a new folder/workspace. The .big file for a player's head contains "model.o" and "textures.fsh". Again use BigGUI to extract the model and texture to your workspace folder.
Using FshEd to open texture.fsh, for the model I'm replacing there is only a face texture linked, other models may have a seperate texture for additional objects on the model (scrum caps, seperate hair objects etc.) Extract the textures to your workspace.
Otools GUI is used to convert the data in model.o into a format that can be recognised by Blender, and later to repack our custom model to use in Rugby 08. There is more information on this tool here:
https://www.therugbyforum.com/threads/otools-for-editing-o-and-fsh-files.47704/. Use OTools in "Export .o, .ord, .orl to .gltf" mode and export the model.o file. You must use the additional command
-skeleton "data\skeleton\rugby\head_temp.o" to export the model with a skeleton which will be necessary for "rigging" the custom head. We may need to refer to this file later so don't combine it with your custom model's .gltf. My workspace folder now looks like this:
View attachment 10560 View attachment 10561
Now it's over to Blender. For this guide I will be using the Facebuilder plugin to generate Sexton's head model and a base texture to work on later. There's other tutorials on using the Facebuilder plugin online so I won't go into too much detail, however there are some things we can do here in advance:
Rugby 08 won't be showing us much detail on our custom object, so in the options for the plugin, under model, use the "low poly" topology. This will give us more than good enough detail in-game, it will be easier to manipulate the low-poly model later and it keeps our file sizes small. I'd also advise setting the "scale" of the head to 6.0 or 6.5, to match the head/body from Rugby 08.
Rugby 08 will expect a texture for the player's face that has dimensions that are powers of 2, ie. 128*128px, 256*256px etc. so we should make sure the texture Generated by Facebuilder is square. I find a 512*512 in Rugby 08 gives enough detail. The game will crash if the texture is an incorrect size. Also under the texture options I recommend changing the UV map mode to "maxface", to keep as much detail on our model's face texture as possible. I recommend leaving the autofill option off when texture generating as it makes the textures very blurry.
After playing around with the generator and different images of Johnny, I end up with this:
View attachment 10563
Export this generated texture to your workspace.
At this point I open up a new instance of Blender to begin working on the model from Rugby 08. Go to file/import/gltf 2.0 and import the .gltf file generated earlier. Once this is done copy the model from Facebuilder into this scene. I use the model from Rugby 08 as a guide to position the Facebuilder head, to match up where the neck, eyes, ears etc go. Once everything's roughly positioned, select the your custom head and press ctrl+A and apply all transforms. If this isn't done the head may appear in-game at the player's feet.
View attachment 10565
In the scene collection menu at the top right of Blender, shift-select the Facebuilder head, keep shift held and drag the object on top of the skeleton below, then release left-click, to make the skeleton the "parent" of the Facebuilder head.
Go into the Basehead object and copy its texture name (most likely "
mat1 [LitTexture2IrradSkinSubSurfSpec,tex1:dirt]") we will need to apply this name to the texture on our custom head to get the correct lighting on the model in-game. Make sure Blender doesn't change this after renaming the texture. At this point the head from Rugby 08 can be deleted from the scene.
In the object data properties of our head, add a vertex color (click the + icon in the sub-menu), and enable "Auto smooth normals". In the material properties menu of the texture change the Specular to 0.500 and the Roughness to 1.000. Whilst here change the base color to open a "image texture" then select "face.png" from your workspace. This is the point where you must make you players new face texture. I use GIMP but any other image editor should work. One handy tool I use in Blender is the "stencil brush" mode, to paint face features from real photos directly onto the model.
View attachment 10567 View attachment 10568
Once you have a suitable texture save it in face.png, make sure it is at the correct scale for importing back into Rugby 08 (I recommend 512*512px).
Now we're going to be lazy and "cheat" merging the head model to the game skeleton. If we were being thorough we would look up some guides online for vertex/mesh rigging to a skeleton/armature. Instead we're going to have Blender give us a "best guess" of where everything attaches to the skeleton. In the scene preview, click on the head, then shift click the skeleton, then right click->"Parent"->"With automatic weights". When rigging the head this way, there is a visual error in-game when a custom player tries to talk, the whole head bubbles instead. This is something to look into in the future. At this point the model is ready to test in Rugby 08.
Export as gltf 2.0 and switch the export format to "separate" before exporting. I'd recommend exporting to a new file instead of overwriting the original model.gltf. Use OTools GUI to import the custom .gltf to model.o, using the additional command "
-skeletonData none". Use FshEd to import your new face texture into textures.fsh, and save the file. Use BigGUI to import your edited model.o and textures.fsh into the .big file for your player, then rebuild the .big file and copy it into your Rugby 08 master folder.
Finally edit the roster file to apply our head model onto Sexton in-game, using Woosah's Rugby 08 editor. Using Woosah's list from earlier I assign Sexton with Face ID 6202, be careful when using the editor as it usually forgets to apply the correct body skin texture, kicking foot, and player perks to your player when editing.
Once all this is done run Rugby 08 and check your custom model in the game:
View attachment 10569
View attachment 10570
As you can see there's a bit of further editing to be done to this model (adding the neck, fixing the texture etc.) but this was a first draft. I need to look into skeleton rigging to get the animations correct. Another one I've done:
View attachment 10571
So far I'm trying to edit players to replace others from their country, eg. Sexton over Ronan O'Gara's model, Farrell over J Wilkinson, Biggar over R Sidoli, to stop any conflicts in the future. Feel free to offer any advice/ask questions below.