arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

First Person Perspective Fixes

Common Problems and How to Fix Them

Published: October 08 2023 by Last documented update: February 18 2024 by

In this guide, I will do my best to address the most common first person issues I've seen, and how to fix them.

hashtag
Prerequisite and other relevant Guides

This guide assumes that you have an already working in-game item, and at least a basic understanding of WolvenKit.

circle-exclamation

To implement anything in this guide, you will need with the mod's files. You already have that if you're fixing your own mod (hopefully). If not, check out this guide on how to

hashtag
Index

circle-exclamation

If you are modifying someone else's mod:

If you are changing someone else's mod, the easiest thing is to the same as the mod's .archive file and add all the files from the original mod. You can do that by switching to the and for archive:name_of_file

circle-check

If you're creating a fix for someone else's asset, why not drop them the final files - or a link to this guide?

hashtag
Problem #1: Your sleeves render behind your arms

This is probably the most common problem I've seen, and is also thankfully the easiest to fix.

hashtag
Solution

  1. Open up the (.ent) file for the item you need to fix:

  2. Expand the components array, then find any components with Mesh in their types, and check if they require fixing. In my example project, it's both the jacket and the sleeves.

circle-info

Instead of renderPlane, you can also use renderPlaneLeftArm and renderPlaneRightArm individually.

  1. Repeat this process for any other component, as needed

  2. When finished, save the file (either Ctrl + S or the Save button top left).

  3. Install and test the mod in-game. If you did it correctly, your sleeves should now render properly.

hashtag
Problem #2: It's in your face (#justStormtrooperThings)

To fix this problem, you need to hide your item in first person perspective.

This part of the guide will show you how to turn the entire item invisible. If you don't want that, check

hashtag
Solution

  1. This fix starts in the .yaml file (which should live under your Wolvenkit project's resources folder in the subfolder r6/tweaks, perhaps in a subfolder).

    • If you are editing someone else's mod, you need to copy their .yaml to your project. If you don't know which file that is, check their Nexus mod files, as it will be part of the original .zip file.

circle-info

If you don't have a yaml because you're changing an in-game item for some reason, you need to start at . If you , you can stick to these parts in the rest of the guide.

  1. Open the file in any text editor (recommended: )

  2. Helpful documentation on .yaml files resides . Hopefully it looks something like this:

  3. Check if there is something called $instances

hashtag
Legacy variants: hiding FPP

circle-info

For dynamic appearances (if the yaml has a key called $instances), go to

  1. Switch back to Wolvenkit.

  2. Open the file (it should have an array called appearances)

You now have two ways of hiding the item in first person:

hashtag
Hiding FPP via tag

circle-exclamation

This will not work with !

  1. Find the array tags at the end of the list.

  2. In the panel on the right, click "add new item" (the yellow +) until you have an empt text field.

  3. In the text field, enter EmptyAppearance:FPP

hashtag
Hiding FPP via appearance definition

  1. Find and expand the appearances array.

  2. For each entry in there, you need to complete the following steps (the example project has only one entry).

    1. Select each entry

hashtag
Dynamic variants: Hiding FPP

circle-info

For legacy appearances (if the yaml does not have a key called $instances), go to

  1. Switch back to Wolvenkit.

  2. Pick one of the two options below (we recommend)

  3. Complete the section under

hashtag
Hiding FPP in the .app

  1. Open the in Wolvenkit

  2. Open the appearances array

  3. Select each appearance and add &camera=tpp to the name.

hashtag
Hiding FPP in the mesh_entity

  1. Open the in Wolvenkit

  2. Open the components array

  3. Select each component with Mesh in its type and add &camera=tpp to the name

circle-info

Alternatively, you can duplicate the component and have two for different meshes. This will be covered in

hashtag
Checking the root entity

circle-info

If your yaml file had an $instances block, the item is already dynamic and you can skip this step.

  1. Find and open the . If you have no idea which one it is, you can open the .csv and find the file paths in there.

  2. Inside the file, make sure that you have a DynamicAppearance entry in your tags array (for a full guide with screenshot, see -> )

  3. If you don't, add it. Congratulations, you're good to go!

hashtag
Testing

Save and close the file. Repeat the whole process for any other items that need to be obliterated in first person. Install and test. If all went well, no more obstructed vision!

hashtag
Problem #3: Partial hiding (#justDraculaThings)

Fixing this is very similar to Problem #2, just with a few extra steps.

hashtag
Solution

  1. Create an additional FPP appearance by following the steps in . Skip 2.4.3 and 2.4.4.

  2. The depotPath should point at the same .app file as the &TPP appearance.

  3. Change the value for appearanceName. For example, add _fpp

  1. Open your .app file and expand the appearances array.

circle-info

You need to repeat the following steps for every appearance in the .app.

  1. Select an appearance and duplicate it

  2. Change its name to correspond to the appearanceName that you used in your root entity (Step 3)

At this point, it can be done in a few ways, depending on some factors:

hashtag
Finding the right submesh

  1. Open up the appearance's partsValue array

  2. Open the .ent file that is linked inside

  3. In the .ent file, open the components array and check any component with Mesh in its name:\

  1. In the right-hand panel, you will see a list of checkboxes.

circle-info

If there is only one submesh, you need to edit it in Blender to split off or delete the offending parts - complete the section before proceeding. I'll wait.

  1. Toggle them off until the part that is in your face turns invisible. In my example, submesh 01 hides the upper collar.

  2. Remember the number (01 in the example below)

  1. Proceed to the section for .

hashtag
Chunk Masks

circle-info

You can learn more about chunk masks under -> . This is not necessary for the purpose of this guide.

  1. Switch back to the appearance (.app) file

  2. Expand your first person appearance.

  3. Expand the partsOverrides array. If it's empty, click on the array itself, then in the right pane, click create item in array.

  1. Optional: If you need to hide more parts or affect more components/meshes, rinse and repeat.

  2. Save the appearance (.app) file and install the mod to test. If all went well, there should no longer be parts clipping into view.

hashtag
Creating a second mesh

circle-info

The clean way to do this is to split the original mesh into submeshes, which you can then hide via chunkmasks. If you want to do that, skip straight to

To show a different item (one with the clipping bits removed) in first person perspective, we need to create a second .mesh file and a corresponding meshentity .ent that we can display. This guide will show you how.

  1. Duplicate the .mesh file that's clipping in first person. For my example, I'm using the jacket mesh

  2. Duplicate the meshentity .ent file that belongs to the .mesh file.

  1. In the .app file, open your first person appearance.

  2. Add a partsOverride by following the steps under (skip step 9)

  3. Change the depotPath to your new _fpp meshentity file.

  1. Save and close the .app – it is now pointing at your new _fpp meshentity.

  2. In the _fpp meshentity file, open the components array

  3. Select the component with Mesh in its name, open it and change the depotPath for the mesh to your new _fpp mesh file.

  1. Save and close the .ent - it is now pointing at your _fpp mesh.

hashtag
Editing the .mesh

For the next step, we need to export our .mesh file and edit it. You can use any 3d editing program, but this guide will use and the .

  1. Optional, but recommended: If you don't have the installed, do that now.

  2. In Wolvenkit, find the

  3. Export your _fpp .mesh file.

Now, hit up the page and edit your mesh.

When you are done, use the to import back the .glb file.

circle-info

If you stuck to the guide, you shouldn't run into any errors. If you do, check the page, or reach out to us on in #mod-dev-chat.

  1. the project

  2. ???

  3. Profit

hashtag
Technical detes

for a mesh to disappear in FPP we must set the component's visibilityAnimationParam = n"invisible_in_fpp"

Exporting and importing meshesarrow-up-right
For more information on this, read here.
You might have to hunt around to find the right component, depending on how many there are.
  • Scroll down and find the array renderingPlaneAnimationParam, which will most likely be grayed out.

  • Click on it. In the right pane, change None to renderPlane.

    Make sure to follow the same capitalization, otherwise it won't work!
  • . If yes, the mod is using
    and you are done here — go to
  • Find the line appearanceSuffixes. IIf it is missing or empty, do not add it – use Dynamic variants: Hiding FPP instead.

  • If you have itemsFactoryAppearanceSuffix.Camera in your appearanceSuffixes array, you are dealing with Legacy variants: hiding FPP.

    Hopefully, you won't find this in there. If you do: be careful, this mod is an antiquity! :D
  • Duplicate it via right-click menu

  • For the old entry: Change its name to end in &TPP (third person perspective)

  • For the new entry:

    1. Change the name to end in &FPP (first person camera)

    2. Change the depotPath to base\characters\appearances\player\items\empty_appearance.app

    3. change the appearanceName to default

  • Should look like this now.
    You might have to hunt around to find the right component, depending on how many there are.
  • Open the linked .mesh file in Wolvenkit

  • Select Mesh Preview

  • Select componentsOverrides by clicking on it.
  • In the right panel, click on the yellow + to create a new item in array.

  • Open up the mesh entity (.ent) file and expand the components array.

  • Find the component that needs its parts hidden and copy the name. In my example, the component is examplejacket1_fur.

  • Back to the appearance (.app) file. Paste the component's name from the mesh entity into the componentName field.

  • Click on chunkMask and uncheck the submeshes that you want to hide. (You found out which ones that were in Finding the right submesh - In my example it was submesh 01)

  • Change their names to end in _fpp to indicate that this is a mesh for the
    first person perspective
    (or do whatever you want, but this guide assumes...)
  • If the export throws an error, uncheck the Export Materials option in the settings panel (you don't need it)

  • You now have a .glb file in your project's raw folder. You can find it like this:

    1. Switch the Project Explorer to the source or raw tab

    2. Right-click on your exported file

    3. Select the option to show it in Windows Explorer

  • WolvenKitarrow-up-right
    Adding new itemsarrow-up-right
    File Formatsarrow-up-right
    analyze other mods!arrow-up-right
    Your sleeves render behind your arms
    Head/Face/Glasses/Mask/Helmet visible and obstructing vision
    You only need to hide a certain part of the clothing, like the collar/fur/stitching
    mesh entityarrow-up-right
    convert it to a dynamic appearance
    Notepad++arrow-up-right
    herearrow-up-right
    root entity (.ent)arrow-up-right
    ItemAdditions: Dynamic Appearances
    .app filearrow-up-right
    https://github.com/CDPR-Modding-Documentation/Cyberpunk-Modding-Docs/blob/main/for-mod-creators-theory/files-and-what-they-do/file-formats/entity-.ent-files#mesh-component-entity-simple-entity
    root entityarrow-up-right
    ItemAdditions: Dynamic Appearances
    Chunk Masks
    https://github.com/CDPR-Modding-Documentation/Cyberpunk-Modding-Docs/blob/main/for-mod-creators-theory/files-and-what-they-do/file-formats/3d-objects-.mesh-files
    Submeshes, Materials and Chunks
    Blender 3.6arrow-up-right
    Wolvenkit Blender IO Suite
    Wolvenkit Blender IO Suite
    3d editing: Submeshes
    Troubleshooting your mesh edits
    Discordarrow-up-right
    (This can also present itself as rendering behind the body when you look down, for shirts, pants, shoes, etc.)
    There are no appearances in a mesh entity file!
    Oh look, sleeves!
    Still better than wearing a real helmet.
    This is my example .yaml file with only one entry. Yours might have more.
    I can see clearly now!
    I probably could have chosen a better example, but I'm sure you can see the big clump of fur on the right.
    My example mesh, a lovely fur collar.
    Results may vary depending on the item, but this is much better, no?
    Problem #3: Partial hiding (#justDraculaThings)
    First Person Perspective Fixes
    Dynamic variants: Hiding FPP
    Legacy variants: hiding FPP
    Hiding FPP in the .app
    Checking the root entity
    Problem #3: Partial hiding (#justDraculaThings)
    Hiding FPP via appearance definition
    First Person Perspective Fixes
    Editing the .mesh
    Chunk Masks
    ItemAdditions: Dynamic Appearances
    Dynamic variants: Hiding FPP
    <figure><img src="../../.gitbook/assets/files.png" alt=""><figcaption></figcaption></figure>
    <figure><img src="../../.gitbook/assets/app.png" alt=""><figcaption></figcaption></figure>
    <figure><img src="../../.gitbook/assets/ent.png" alt=""><figcaption></figcaption></figure>
    mana vortex
    FronkenZeepa
    ItemAdditions: Dynamic Appearances
    a Wolvenkit project
    name your Wolvenkit project
    Mod Browser
    searching
    Export Tool
    Wolvenkit Import Tool
    Install and launch