Poses/Animations: make your own

Make your own pose, then import it into photo mode

Summary

Published: September 2023 by manavortex Last Documented Update: Mar 04 2024 by manavortex

This guide will teach you how to create a custom pose in Blender and import it into the game via Wolvenkit.

Since this guide is about creating and imported custom poses, we will make a photo mode replacer. To convert it to a standalone pose pack, follow the guide for either Photo Mode or Appearance Menu Mod.

If you have never done this before, don't do both at once. Or... do whatever, but it might result in unnecessary frustration.

Wait, this is not what I want!

We all stand on the shoulders of giants: this process has first been documented by xbaebsae | Angy, who also provided the original animation templates. Thank you!

Skipping and skimming

This guide will include the minimum amount of fluff and will link background information rather than giving it.

For that reason, you shouldn't skip or skim unless the section tells you that it's optional.

Any links in the text will either

  • provide additional information which you do not need to complete this guide

  • lead to step-by-step instructions for any given process

Follow them if you want to learn more, or if you are unclear on how to complete the current step, then come back here.

Prerequisites

You will need the following software (install at least this version or higher):

Wolvenkit (stable | nightly)

>= 8.13

>= 4.0

>= 1.5.3

Step 0: Preparations

Your Wolvenkit project

To import your pose into Cyberpunk, you need a Wolvenkit project.

  1. Create a project. Give it a name that you can identify later.

  2. Now, your project needs the photo mode .anims file appropriate for your pose(s). The table below shows your options. Search for the correct photo mode file and add it to your project:

body genderfile

female

base\animations\ui\photomode\photomode__female__idle.anims

male

base\animations\ui\photomode\photomode__male__idle.anims

  1. Export the file(s) to GLB via Export Tool. Default settings are fine. (We will overwrite these glb(s) with our new pose, then use Wolvenkit to merge them into the existing .anims file.)

You can not move these .glb files. Wolvenkit needs them to stay where they are so it can splice your new animation into the existing .anims file.

Download the template files

Download the animation template(s) for your rig(s):

Move/copy them somewhere, then open the one you want in Blender.

I'll be using Angy's template for female V, because the other one doesn't exist I happen to have one of those.

Step 1: Posing the mannequin

This step will happen in Blender.

If the written instructions aren't clear enough for you, check the screenshots below them.

  1. Open up the file

  2. Select the armature by clicking on one of the bones in the viewport (the red circle on the screenshot below). They will be highlighted if you did it right.

  1. Switch the viewport to Pose Mode in the dropdown menu at the topleft of the viewport, immediately below the "File" and "Edit" menus. This will turn the armature red.

  1. Now, you need to create your pose. Before you do that, check the box below:

Nice-to-know about creating poses

General

  • The real human skeleton changes pose only via bone rotation — moving bones leads to dislocated joints. Do not move bones.

Tooling

  • Instead of overwriting the entire .anims file, Wolvenkit will splice the NLA tracks that you will create below into the container. For that reason, you can have as many .blend and .glb files as you want and import them in sequence, or have all your poses in a single .blend.

Tool usage

  • You can limit a tool's effect to an axis by pressing x, y or z. Press the key a second time to use the local axis rather than the global one, and a third time to remove the limitation.

  • Viewport zoom matters. Get closer for finer movements!

  1. As of today (September 2023), we can only create poses and animations by adjusting each bone by hand. This is how:

    1. Select a bone by clicking on it (it will appear highlighted)

    2. Rotate the bone by either

      • pressing R to enter rotation mode, then moving the mouse to rotate the bone (read up on axis limitation in the expandable box above) or

      • selecting the Rotate tool from the toolbar on the left, then clicking and dragging along the coloured axes

    3. When you're done with this bone, position the next one.

  1. Now, draw the rest of the owl, then proceed to the next section.

Step 2: Creating the animation

You now need to create an animation that Wolvenkit can add into the existing file. For that purpose, we will create a nonlinear animation in Blender.

  1. In the panel at the bottom, click on <No Action> to select it.

  2. In the Armature -> Animation Data panel, click on the New button.

  1. Now, we need to add keyframes, one for the fallback position and one for the pose.

    1. Make sure that the keyframe selected in the animation timeline is 0 (see "Animation Timeline" screenshot below)

    2. Click into the main viewport next to the armature

    3. Press I to open the keyframe menu

    4. Press W to insert the whole character

    5. Press the right arrow to select the next keyframe

    6. Press I and then W again

    7. After you have done that, click on the Push Down Action button

  1. Now, rename both your NLA strip and your animation to idle_stand_01. This will overwrite the "Tabula Rasa" animation. (Find a list of animations and their associated names here.) If you aren't planning on replacing the in-game idle poses (i,e., Tabula Rasa), it is still required that your NLA strip and your animation have the same name.

This is important!

This step is crucial. If you don't do this, then Wolvenkit won't import your animation.

The names must be the same, and they must match the name in your .anim file.

  1. Go back and read the warning box under step 4.

  2. Double-check the names. (Yes, this is that important)

  3. Optional: To add another pose, you can go back to Step 1, then rinse and repeat.

  4. Now that you're sure that you have the correct names, switch the viewport back to Object Mode (the same way you switched to pose mode). Your armature should still be selected. TODO: This step will be made optional when the Blender plugin update hits. Update guide when it does.

  5. From the File -> Export menu, select Export Selection to GLB for Cyberpunk

  1. This will open a file picker. Do the following things:

    • Check the Animations box on the right

    • Navigate the to the path of the file you exported in the previous step and click on it to overwrite it

  2. When you're done, hit "Export for Cyberpunk".

Now it's time to import the file back into Wolvenkit.

Step 3: Importing and testing

  1. Switch back to Wolvenkit and open the Import Tool.

  2. Click on photomode__female__idle.glb to select it and open the import settings panel.

  3. In the panel on the right, change Target File Format to Anims:

  1. Hit the Import Selected button.

Youc an now test your mod: Install your Wolvenkit project by clicking the green button on the taskbar, and launch the game.

If all went well, entering photo mode will show your new pose.

Troubleshooting

My pose is twitching!

  1. Open your .anims file in Wolvenkit

  2. expand the animations array at the top of the file

  3. For each animAnimSetEntry, change the property animation -> animBuffer -> numTracks to 2

  1. If that doesn't work, change the numTracks to 0

  2. If that still doesn't work, make sure that your pose has at least two keyframes by going back to Step 2: Creating the animation and not skimming this time.

Can't import: No extra data

If Wolvenkit's console tells you something like this:

animation `anim_name` has no extra data, can't import!
  1. To make sure that the .glb file that you want to import into is okay, do a fresh Wolvenkit export of your .anim with a Wolvenkit version from after February 10 2024 (>8.13 should be ok)

  2. Use the Wolvenkit Blender IO suite 1.5.3 or greater to export as animation. If the error does not go away, update the plugin.

  3. Import the .glb file into Wolvenkit again.

My pose doesn't import!

I have no idea how to tell you this, choomba, other than stressing thrice that it's important and putting a big red box, but the NLA strip and the animation must have the same name. Go back to "this is important" and double-check. The animation might have trailing numbers, e.g. be called photomode__female__idle.001, that will already do it.

Very funny, but it wasn't that

If you're really 100% sure, then you might have a broken NLA strip. That happens sometimes — simply recreate it:

  1. If your armature isn't selected anymore, click on it to select it

  2. Switch into Pose Mode

  3. Press A to select all bones

  4. Press Ctrl+C to copy their positions

  5. Create a new NLA strip by repeating Step 2 — but instead of posing the armature, you can simply press Ctrl+V to paste the bone positions from your previous animation.

  6. Export the new NLA strip, then import it via Wolvenkit. This should work now.

Nope, still borked

We're reaching the end of the rope here. Go back and check the animation names. If that wasn't it,

  1. create a new copy of the .blend file you downloaded (but keep yours open)

  2. In your old Blend file, repeat 1-4 of the previous step

  3. In your new Blend file, repeat 5+6 of the previous step

Noesis Layer: Invalid Joint

When trying to import into Wolvenkit, you get an error message like this:

$fst_root.001|Noesis Frames|Noesis Layer: Invalid Joint Transform, joint Armature not present in the associated rig 

That is because there is ancient data in the template, which Wolvenkit doesn't know how to handle. Delete everything called "Noesis" from the list of animations below:

Last updated