About this mod
Want to make your own body shape? Here's a guide for you! And some fixes that allows further customization!
I roughly go over how to modify a .rig file to shape a base body for Cyberpunk 2077, and some limitations.
- Permissions and credits
NOTE: This guide assumes you can install and use any and all prerequisites yourself.
Tools:
(optional but recommended) Blender and the plugin required to import .glb files to preview your changes, or download the blender project(s).
(required) WolvenKit OR 010 Editor. For editing the .rig files.
(required) WolvenKit or some other tool for unpacking files & packing your project.
THIGH_1 MODIFICATION NOW POSSIBLE FOR WOMAN_BASE!
Support incoming for male rigs soon. Also Thiccc Mod available in optional downloads.
Basically, I changed to a non-modifiable parent for a few joints (in both .rig and .animgraph) and changed their transforms to be relative to their new parent. And made a Unity project where I can easily let some code calculate the new local position & rotation for me.
I'll also upload Blender files so you can skip both step 1 and parts of step 2, as above, when it works again.
THIGH_1 should now work better, along with THIGH_0.
All connected animation joints/groups have been reparented from (l/r)_thigh_(0/1)_JNT joints.
Process:
- Step 1: Modifying the rig in Blender as reference (RECOMMENDED, but can be skipped):
UPDATE: I've provided a blender project with the female base mesh in the downloads. If you're using it, go to Step 1, Part 2.
I'd recommend exporting a character base mesh using WolvenKit so you can preview/plan your changes.This requires you to already have installed the blender plugin to import/export *.qlb-files.
I recommend using:
base/characters/common/base_bodies/woman_average/t0_000_wa_base__full.mesh
Use the Import Export Tool to export it with Mesh Export Type set to WIthRig, and in WithRig Settings add woman_base_deformations.rig as your rig. Press Confirm, then press Confirm again to get back to the Import Export Tool.
Tick the file in the Import Export Tool and press Process Selected.
You will receive (usually helpful) errors if you choose the wrong rig. If you want to modify a multi-rig character, use Multi-Mesh export and add ALL mesh files (included the one you're editing export settings of) and rigs needed in the multi-mesh settings. Rig Settings can only hold one rig. Import your file into Blender.
Step 1, Part 2
In the Blender project select the Armature and go into pose mode. Transform around as you wish,but only the changes to some joints transfer to in-game. Using scale seems safest, but try out position and rotation, no guarantees it will work though.
NOTE: If you're using the animgraph file(s) provided, reparent (l/r)_thigh_1_JNT to the upperleg of their side for correct visual representation.
Update: It does indeed seem like modifying the position has (in most cases) no effect.
Known, tested and well functioning modifiable joints(only had time for lower body):
- (l/r)_lowLeg_back_(A/B)_mscl
- (l/r)_leg_back_(A/B)_mscl
- (l/r)_thigh_0_JNT
- (l/r)_leg_buttock_mscl_JNT
Supported by downloading fixed .rig and .animgraph files (currently base_woman only, no player support):
- (l/r)_thigh_1_JNT
Generally it seems like the directly animated (main-) joints are not possible to transform by editing .rig files.
Also translation/position is also often non-modifiable, or only modifiable in some specific axis.
- Step 2: Preparing your files in WolvenKit
If you want to support (l/r)_thigh_1_JNT modifications, download the fixed .rig(s) and .animgraph(s) you want,
Otherwise make a project in WolvenKit (and do all other necessary setup), or in some other way get the below files into a mod structure.
So far I can't checked if you actually can have different modifications for the player vs everyone else somehow.
UPDATE: You can, for first and third person camera, but not inventory view, which uses the same base rig as everyone else.
Female rig files:
base/characters/base_entities/woman_base/deformation_rigs/
- woman_base_deformations.rig
- woman_base_deformations.animgraph
- player_woman_base_deformations.rig
- player_woman_base_deformations.animgraph
- Step 3: Modifying the rig
Using either WolvenKit or 010 Editor, you can modify what is called "Bone Positions" in 010 Editor, or "Unk2" in WolvenKit.
You only need to modify the woman_base_deformations.rig for changes to all woman-body characters (including player)
If you're in 010, you can see which joint you're on, which data is position, rotation and scale, and it's quite easy to modify. Just make sure you already know how to use 010 Editor for modding first.
In WolvenKit (as of writing), you can find joint transforms in Unk2, which contains indexed info. To find out which index is which joint, you can look at "boneNames", to find the correlating name. The data is ordered in [0] Position, [1] Rotation, [2] Scale.
NOTE: WolvenKit doesn't have a save button for file modification, so it's difficult to know when changes have been saved. Closing the file sometimes asks you to save the file. Also it crashes quite often so I've been using 010 Editor since it's better for text editing.
If you did Step 1(highly recommended!), you can simply transfer your values to the .rig file.
HOWEVER, x and y values are seemingly flipped compared to Blender so, from Blender values.
NOTE: Applies to Position/Translation and Scale, seemingly NOT to Rotation(?).
X -> Y
Y -> X
Z -> Z
Leave W-values as is since they're only relevant to rotation, unless you know what you're doing and know something I don't.
ALSO, the x values for translation/position, are correct on the LEFT side, but needs to be inverted on the RIGHT side (in the .rig file).
Finally, pack your project when you're satisfied, make sure your archive is in the mod folder, and try it out in-game!
KNOWN ISSUES (& LIMITATIONS)
(l/r)_thigh_1_JNT, or put simply the second thigh joint, has BIG issues due to related jiggle physics/dynamic animation joints (l/r)_leg_back_(A/B)_mscl seemingly being transformed along if this joint is modified. So if you're a follower of thighdeology, you sadly can't make them legs thiccc all the way down yet. This is one of my personally biggest gripes.I was wondering why the only body mod for Cyberpunk 2077 had real skinny legs, but such a large butt, there's the answer. I've tried re-parenting the joint but that just causes other issues, and moving the affected joints around, but to no avail.- Likely to cause clipping where modified, especially bigger changes.
- Thigh_1 fix has some odd glitches when LOD's change.
- The bones that can be modified are very limited. Basically "lesser" bones are used to modify the shape, which results in clipping being a bit worse than it would need to be otherwise.
I'll keep my eyes on this for a little while, so if you have any questions I'll try to answer and update the guide as needed. If I get the time I'll add some pictures too.
Thanks to spawn0 for showing that it's possible, and the WolvenKit team for making life a little bit easier.
~Have fun!