So we got Jackie out, can we make him move?
Created by @Simarilius Published October 15 2022 Last documented update: December 29 2023
This guide will show you how to add animations to a previously exported character. It assumes that you successfully completed Exporting Characters to Blender.
Cyberpunk 2077 game version 2.1
Blender >= 3.6 (stable) or 4.0
Optional: If you want to get your hands dirty, check this github repository for a selection of Python scripts for Blender. Most users won't need this.
So exported characters are cool, but how do we get them out of that annoying A-pose?
We need the rig, and maybe some animations:
the main body rig
the head/face rig
We're going to export them, bind everything, and attach the head to the body. (recapitate?!?)
You can look it up in the body's entity file. Find it by file name, or right-click on Jackie's body mesh and select "find files using this", then doing the same again on the .app
file.
Open up the .ent file and check the components
array for an entAnimatedComponent
(usually nameddeformations
), which lists the rig:
You will need this for the body mesh export. Additionally, you need to find the head rig — read the next section for how.
Copy the path under rig
and put it somewhere where you can find it later.
The head rig is in the same folder as the head mesh.
Naming conventions:
You will need this for the head mesh export.
Right-click on the .rig
file and select Copy relative path
. Put this with the body rig path.
We now need to re-export the meshes we want to use.
In the first step of the guide, you should have exported them the default setting withMaterials
. That should have created material.json files and images, as the export we will use now won't do that.
In the Export Tool, select the body mesh and adjust its export options. (In Wolvenkit < 8.8, double-click it).
Filter by name: paste the file names (or paths) that you saved in the previous step into the empty row at the top of Available
on the left
Select the rig by name (the same one as in the .ent file)
Move it into the Available
list
Click on Finish
to apply your changes
Repeat the process above, but use the name of the head mesh rather than the body.
Delete the head and body component that you've imported the first time around: we're going to do a reimport. With the Cyberpunk GLTF plugin (File > Import > Cyberpunk GLTF), import both of your files into Blender — the process works exactly like it did the first time, just that there's extra data now.
If the WithRig
has worked, you should notice that rather than the mass of unorganised huge bones, you now have a skeleton structure that kinda makes sense.
I normally change the bone display settings of that armature from Octahedral
to Stick
, as that prevents bones from completely hiding the mesh:
Most characters bring in full bodies; however, Jackie is not one of them. CDPR modelled only his chest and hands, since the rest of his body was never planned to be visible.
Now, we hook up everything by merging all rigs into one.
You can do this either by script or by hand. This guide assumes you will select Option B, using the most recent script from this github repository.
Rename the head's armature to HeadArmature
Rename the body's armature to BodyArmature
Switch to the "Scripting" perspective and create a new empty script
Copy the script from github and paste it into the document
Optional, if you skipped step 1 and 2 because you like making things complicated:
At the top of the script, find ~line 5 head = bpy.data.objects['HeadArmature']
, and put the names of your armatures from the SceneCollection
tab
Click on theBodyArmature
in the 3d viewport
Run the script
The rigs should merge; the head meshes should be without an armature parent now.
Hopefully it looks something like below, with all the bones selected and just the one green dude in the outliner:
If you have a lot of meshes, you might want to skip this step.
For each submesh item, repeat the following steps:
Select it in object mode
Set the Armature Modifier
in the Modifiers tab to BodyArmature
This should snap the item to the body and it will follow with correct weights when animated.
To find animations compatible with the character you just exported, open up their .ent
file and expand the resolvedDependencies
:
Alternatively, search for .anim
in the asset browser.
As of December 2023, facial animations and lipsync (folders lipsync
and animations\facial
) are not supported yet. (We're working on it, though!)
Add the animation you've chosen to your WKit project and export it . If you want to use this animation for editing, you need to check Include Root Motion
in the export settings.
You will end up with a new .glb file, which you can import into Blender.
Now let's apply it:
Select the BodyArmature
Switch to the Animation
perspective
In the panel at the bottom, change the dropdown on the left from Dope Sheet
to Action Editor
In the dropdown in the middle, select one of the animations you just imported.
Click the "play" button
You can keep importing more anim files and the list just grows.
Anyway, cheers Chooms, hope this has been helpful, have fun!
As of December 2023, facial animations and lipsync (folders lipsync
and animations\facial
) are not supported yet. We're working on it, but if one of these exploded on you, you'll just have to wait.
Most of the animations seem to work flawlessly. Occasionally the process gos screwy somewhere and the model freaks out when you attach the anims. In that case, please open an issue on github or tell us about it on Discord in #blender-add-on
.
Please include your .blend file and the full relative path to the animation that was giving you trouble in your report.
Step-by-step guide for exporting to Blender for non-mod use (i.e. cosplay, 3d print, etc.)
Created by & Published: September 03 2022 Last documented update: November 2024
This guide aims to walk you through finding and exporting a character to blender so that its usable for cosplay or 3d printing or whatever. Guide is using nightly WolvenKit, Cyberpunk add-on for Blender, and Blender 3.6.
Cyberpunk 2077 game version 2.1
Blender >= 3.6 (stable) or 4.0
This guide works just the same for guns — add the .ent to your project, run the script, import, profit. Vehicles are more complex and have their own guide: please see Exporting Vehicles for these.
If you want to add a character's animations, you can check the follow-up guide Exporting Rigs & Anims.
This section will tell you how to find and add an NPC's file to your project. If you already have one (because you're exporting an NPV), you can skip it and go straight to #exporting-to-blender.
Before we can export anything, we need to find the .ent
file for the character we want to export. This tutorial will use Jackie, but it works just the same for everyone else.
You can find a list of the entity files for a lot of the main characters over on the Cyberpunk 2077 Modding wiki Here
The easiest way to find a characters ent if their not already in the list on the wiki is to use Red Hot Tools. Once its installed you can simply walk up to an NPC in game and the inspect tab will show you the ent and appearance info you need. With that info you need to find them in wolvenkit.
With our project open in Wolvenkit, we switch to the Asset Browser and search for the right file
You can refine your search, checking only .ent files, by using the following search query:
This will give us plenty of files — we'll sort them by file extension and scroll to the ent
section of the list. jackie_welles.ent
looks promising, so we'll double-check if it's the right file:
Right-click it and select Open without adding to project
Use the entity preview
tab to confirm that it's him
Now, add the file to your project.
With the .ent
file in your project, you can run the script that will handle the actual export, adding all the necessary files to your project and exporting them in a way that Blender can process.
Open the Script Manager (Tools -> Script Manager as of Wolvenkit 8.15), find Export_Ent.wscript
and run it.
Wscript cant export files from other mods currently, if your exporting an NPV which uses other mods you will need to add any used files/materials to the project manually if you want them in Blender.
After the script has successfully run, you will find an .ent.json
file in your project's raw folder.
If you right-click the .ent
file in the project browser and press Shift
and Ctrl
, the context menu will let you copy the path to the file!
Before clicking the import button, please read the next section about #importing-a-specific-appearance.
Point it to the exported .ent.json
in your project's files. For Jackie, the relative path is source\raw\base\characters\entities\main_npc\jackie_welles.ent.json
.
Unless you specify otherwise, the default
appearance will be chosen. If you want another, open the .ent
file in your project and enter the exact appearanceName into the Blender open dialog.
You can find the appearance name in your .ent
file inside the appearances
list:
Now, click the Import Ent from JSON
button and wait while the Blender plugin does its thing.
Blender might need a few minutes to load the materials and bake the shaders. If you aren't getting any errors, just assume that it's still at it.
To double-check, you can select Window -> Toggle System Console to watch Blender work.
Switch to Blender and use the 's from the File -> Import menu.
Find the full documentation on the yellow wiki under -> ->