# Poses/Animations: make your own

## Summary <a href="#summary" id="summary"></a>

**Published:** September 2023 by [mana vortex](https://app.gitbook.com/u/NfZBoxGegfUqB33J9HXuCs6PVaC3 "mention")\
**Last Documented Update: June** 19 2024 by LadyLea

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](https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/animations/animations/archivexl-adding-photo-mode-poses) or [Appearance Menu Mod](https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/animations/animations/amm-collab-anims-poses).

{% hint style="warning" %}
If you have never done this before, don't do both at once. Or... do whatever, but it might result in unnecessary frustration.
{% endhint %}

### **Wait, this is not what I want!**

* For an overview of all poses in photo mode, check [cheat-sheet-photo-mode](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/references-lists-and-overviews/cheat-sheet-photo-mode "mention")
* For more general knowledge, check the [..](https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/animations "mention")section.

{% hint style="warning" %}
We all stand on the shoulders of giants: this process has first been documented\
by [xbaebsae | Angy](https://xbaebsae.jimdofree.com/cyberpunk-2077-tutorials/cp2077-custom-poses-and-animations/), who also provided the [original animation templates](https://drive.google.com/file/d/1kL04dQy9xmK_yRsvsS4Sn83joPzrljAr/view). You can find a link to their version of the guide in the menu on the left.

Thank you!
{% endhint %}

### 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.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-c0644f3e5cc8cc1c33372cfb97dd55fbbb715c28%2Fslow_down_kitten.jpg?alt=media" alt=""><figcaption></figcaption></figure>

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):

<table><thead><tr><th width="289"></th><th></th></tr></thead><tbody><tr><td>Blender version</td><td><a href="https://www.blender.org/download/">5.0</a></td></tr><tr><td>Plugin version</td><td><a href="https://github.com/WolvenKit/Cyberpunk-Blender-add-on/releases/tag/1.8.0">1.8.0</a></td></tr><tr><td>Wolvenkit version</td><td>>= 8.17.1 <a href="https://github.com/WolvenKit/WolvenKit/releases/tag/8.15.0">stable</a> | <a href="https://github.com/WolvenKit/WolvenKit-nightly-releases/releases">nightly</a> (<a href="https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/getting-started/download#downloading-wolvenkit">install guide</a>)</td></tr></tbody></table>

## Step 0: Preparations

### Your Wolvenkit project

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

1. [Create a project](https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/wolvenkit-app/usage/wolvenkit-projects#creating-a-new-wolvenkit-mod-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](https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/wolvenkit-app/usage/wolvenkit-search-finding-files) for the correct photo mode file and add it to your project:

| body gender | file                                                           |
| ----------- | -------------------------------------------------------------- |
| female      | base\animations\ui\photomode\photomode\_\_female\_\_idle.anims |
| male        | base\animations\ui\photomode\photomode\_\_male\_\_idle.anims   |

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-a6ab3f06baf565ff8a740fe61af38c3d9c5aaf29%2Fadd%20anims%20file%20to%20project.png?alt=media" alt=""><figcaption><p>This is what adding your .anims to your project may look like</p></figcaption></figure>

3. Export the file(s) to GLB via [Export Tool](https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/wolvenkit-app/usage/import-export#ui-location-tools). 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.)

{% hint style="danger" %}
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.
{% endhint %}

### Download the template files

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

* for [single characters](https://drive.google.com/file/d/1kL04dQy9xmK_yRsvsS4Sn83joPzrljAr/view): from Angy's Google Drive or check [Easy IK based Posing](https://xbaebsae.jimdofree.com/cyberpunk-2077-guides/cp2077-easy-ik-based-posing/)
* To pose multiple characters, just put two characters into one .blend file (the command is called [append](https://blenderartists.org/t/append-a-whole-blend-file-in-one-go/1468736))

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

## Step 1: Posing the mannequin

This step will happen in **Blender**.

{% hint style="info" %}
If the written instructions aren't clear enough for you, check the screenshots below them.
{% endhint %}

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.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-58499fd45f5579d642d4eb0fb82eeb0646ceb0cf%2Fanimations_tutorial_blender_viewport.png?alt=media" alt=""><figcaption><p>Your viewport directly after opening the file.</p></figcaption></figure>

3. 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.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-d9b22a9fb48084f76bba7b07c33ed7a80e1f2c92%2Fpose%20mode.png?alt=media" alt=""><figcaption><p>"Pose Mode" dropdown looks like this</p></figcaption></figure>

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

<details>

<summary>Nice-to-know about creating poses</summary>

**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!

</details>

5. 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.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-4a3665b2bb3dcfe601c51529dca86e86356486f9%2Fanimations_blender_rotate_bone.png?alt=media" alt=""><figcaption></figcaption></figure>

6. Now, [draw the rest of the owl](https://knowyourmeme.com/memes/how-to-draw-an-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.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-be518d261bfb46209e7630f92438e679dc6f6467%2Farmature%20to%20animation%20data.png?alt=media" alt="" width="222"><figcaption><p>Armature -> Animation Data panel looks like this</p></figcaption></figure>

3. 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. Open the Keyframe menu (Pose -> Animation -> Insert Keyframe, Hotkey: `I)`
   4. Select `Whole Character` (Hotkey: `W).` The menu will close now.
   5. Press the right arrow to select the next keyframe
   6. Repeat the steps 3 and 4
   7. After you have done that, click on the `Push Down Action` button

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-484d44c5e9d41913349156061fe958816eac3399%2Fanimations_blender_keyframe_1.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-f551a6070b7a272411553a99aa41fd68419edfe1%2Fanimations_blender_keyframes_2.png?alt=media" alt=""><figcaption><p>Animation timeline</p></figcaption></figure>

4. 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](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/references-lists-and-overviews/cheat-sheet-photo-mode#idle).)\
   \
   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!

{% hint style="danger" %}
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.
{% endhint %}

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-5b633d5ca7078ea3266d8737892a18a1f0bd8d3b%2Fanimations_blender_name_anims.png?alt=media" alt=""><figcaption><p>Before</p></figcaption></figure>

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-af367a3c0ddddac9d4afc906c573f181d3b97a2d%2Fanimations_blender_name_anims_2.png?alt=media" alt=""><figcaption><p>After</p></figcaption></figure>

5. Go back and read the warning box under step 4.
6. Double-check the names. (Yes, this is **that** important)
7. **Optional:** To add another pose, you can go back to Step 1, then rinse and repeat.
8. 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.\
   \&#xNAN;*TODO: This step will be made **optional** when the Blender plugin update hits. Update guide when it does.*

### **Exporting**

Use the Wolvenkit Blender Plugin to [export your animation](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/modding-tools/wolvenkit-blender-io-suite/wkit-blender-plugin-import-export#exporting-from-blender-1) as a .glb file. If the instructions below don't match, check [wkit-blender-plugin-import-export](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/modding-tools/wolvenkit-blender-io-suite/wkit-blender-plugin-import-export "mention") -> [#animations](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/modding-tools/wolvenkit-blender-io-suite/wkit-blender-plugin-import-export#animations "mention") for the up-to-date workflow.

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](#your-wolvenkit-project) 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](https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/wolvenkit-app/usage/import-export#ui-location-tools).
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:

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-f3c4453aca53f90e4dd8486a508359c5f9f4da06%2Fanimations_blender_wolvenkit_import.png?alt=media" alt=""><figcaption></figcaption></figure>

4. Hit the **Import Selected** button.

{% hint style="success" %}
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.
{% endhint %}

## 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

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-5995e63d1216e1cdae4ddeaae8d6f0d18ec70c93%2Fanimations_fix_twitching.png?alt=media" alt=""><figcaption></figcaption></figure>

4. If that doesn't work, change the numTracks to `0`
5. 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](#step-2-creating-the-animation "mention") 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](https://app.gitbook.com/s/-MP_ozZVx2gRZUPXkd4r/wolvenkit-app/tools/tools-import-export#export-tool) 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**](https://github.com/WolvenKit/Cyberpunk-Blender-add-on/releases/tag/v1.5.3) **or greater** to [export as animation](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/modding-tools/wolvenkit-blender-io-suite/wkit-blender-plugin-import-export#importing-into-wolvenkit). 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](#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](#step-2-creating-the-animation) — 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](#step-3-importing-and-testing). This should work now.

### Nope, still borked

We're reaching the end of the rope here. Go back and [check the animation names](#this-is-important). 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](#very-funny-but-it-wasnt-that)
3. In your new Blend file, repeat 5+6 of the [previous step](#very-funny-but-it-wasnt-that)

### Noesis Layer: Invalid Joint

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

{% code overflow="wrap" %}

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

{% endcode %}

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:

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fgit-blob-d6f25b173d5e58b929142d135368176c6db3b42c%2Fanimation_poses_delete_noesis.png?alt=media" alt=""><figcaption></figcaption></figure>

### "Look at camera" (from PhotoMode-EX, etc.) does not seem to have the correct range of motion

*Note: CDPR seems to have fixed this issue in the Photo Mode updates in game version 2.3+.*

It seems that look at only works in the *positive-Y* direction (there's a [long thread](https://discord.com/channels/717692382849663036/813768799358156880/1328882879262101548) debugging this on the Discord). The fix is to have your pose's head point roughly in the positive-Y direction in Blender; in other words use the head, facing positive-Y, as the point of reference for the rest of the body. (For example, if your pose is a standing V with his/her head turned to the right, you should have the head facing positive-Y and then the body turned to the left of the head, rather than having the body point positive-Y and the head turned to the right of the body.) Usually, you can make this happen by taking the root bone and rotating it in Edit mode, but with the IK poser it's not that simple.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/animations/animations/poses-animations-make-your-own.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
