NPV - Tutorial - Part 3


Part 3 Overview - Building the App (Head)


Now that the pieces for your NPV's custom head have been shaped and imported into a game-ready format, the next step in the NPV project process is to begin assembling the files that will facilitate loading these components into the game. The first of the files is the .app file, or appearance file. This file contains all of the information about each appearance that the NPV has, including details about which .mesh, .rig, and .animgraph files must be loaded, what materials must be applied to those .mesh files, and more.

A .app file can contain a great amount of information, and may take quite some time to assemble in full, especially if the NPV in question will ultimately posess many different appearances. For the purposes of this tutorial, .app file assembly will be handled in two segments. In this first segment, you will create the basic structure to support the .app and add just enough information to allow for testing. Further .app expansion will be covered in a later Part of the tutorial.



Building Your Project


Before any meaningful work can be done on assembling the .app file itself, the underlying project structure must be established, and files must be assembled into that structure so that they can be referenced later in the .app file's contents.


Starting your WolvenKit Project

Before any other further steps can be taken in assembling your NPV, you first must create your new project's workspace in WolvenKit.

  1. Open the WolvenKit app.
  2. On the right hand side of the initial screen, select the 'Create a New Project' option.
  3. Type a Project Name in the first text input.
    • A good project name might follow the format: YourUsername_NPVFirstName_NPVLastName_NPV , though there are no specific naming rules.
    • If you follow the above format, be sure to fill in your username, and your character's first and last names, instead of leaving it generic.
  4. Select a Creation Location, a destination for your project folder to be saved.
  5. Click the Create button.

Creating Your Project Structure

An NPV project may ultimately be quite large and file-dense; by creating an organized structure for the project early on, this section ensures that later complexity won't become overwhelming.

  1. In the Project Explorer panel on the left side of the screen, right-click the archive folder.
  2. Select Open in File Explorer.
    • This will open a new File Explorer window, with your project's empty archive folder open. You will use this window in the next steps as you create additional folders.
  3. Create a new folder inside the archive folder. To name it, follow the generic format: yourusername_npvfirstname_npvlastname .
    • As before, both here and moving forward, be sure to fill in your username, and your character's first and last names, instead of leaving it generic.
    • Certain characters can cause problems with folder and files names later on. To be safe, avoid spaces and use only lowercase letters, numbers, hyphens (-) and underscores (_) in your folder and file names.
  4. Inside of this new folder, create two additional new folders: app_and_ent and head .

Preparing Your Project Files

Before the more in-depth work in your WolvenKit project can begin, there are certain files that must be added to the project.

  1. Download the app and ent pair that matches your V's physical frame from the NPV Resources page.
  2. Place the downloaded .app and .ent files in your project's app_and_ent folder.
  3. Rename both the .app and .ent files, following the generic format: npvfirstname_npvlastname .
    • Certain characters can cause problems later on. To be safe, avoid spaces and use only lowercase letters, numbers, hyphens (-) and underscores (_) in your file names.
  4. Place the shaped head part .mesh files that you created in Part 2 in your project's head folder.
    • You may wish to also rename these shaped head part .mesh files, for clarity and brevity.
    • If you choose to rename these files, you may wish to follow the generic format: npvfirstname_prefix_parttype .
    • For example, you might name the head .mesh file npvfirstname_h0_head.mesh and the eye makeup .mesh file npvfirstname_hx_eyemakeup.mesh .


Editing The App


Now that the WolvenKit project has been created, organized, and populated with the needed files, it is time to edit the .app file itself. This file will be revisited several times later in the NPV creation process; in this first interaction with the file, you will make only enough changes to allow the file to load your NPV's shaped head parts, while other parts will need to be added later.


Adding Head Parts To The App

The first set of edits to the .app will allow it to load the correct head .mesh files, using their correct appearances.

  1. In Wolvenkit, locate the .app file in the Project Explorer panel and double-click it to open it for editing.
  2. Expand the appearances entry.
  3. Expand the appearanceAppearanceDefinition entry for npv_appearance_00 .
  4. Expand the components entry.
  5. Click on the entSkinnedMeshComponent entry for npv_component_mesh_01, so that its details are visible in the right side panel.
  6. Locate the name data box in the right side panel and change the contents to match the part you are adding.
    • The first part you add should be the head; you might change the name to something like npvfirstname_head .
    • To be safe, avoid spaces and use only lowercase letters, numbers, hyphens (-) and underscores (_) in data boxes like this.
  7. In the Project Explorer panel, locate the .mesh file for the part that you are adding; right-click it and select Copy Relative Path.
  8. Locate the DepotPath portion of the mesh data box in the right side panel. Erase the existing path and paste in the new path that you copied in the previous step.
  9. Locate the chunkMask data box in the right side panel. The chunkMask can be set using one of two methods:
    • You may use the dropdown list and check the box next to all submeshes which you would like to appear; submeshes with an unchecked box will not be visible.
    • If you know the numerical code for your desired chunkMask, you may paste or type it into the text box portion of the data box. For some components, the NPV Part Picker Utility will provide a specific chunkMask code to be used. The chunkMask code which will cause all existing submeshes of a .mesh to be displayed is: 18446744073709551615
  10. Review your saved results from the NPV Part Picker Utility, completed in Part 1 of this guide. Find and copy the meshAppearance that corresponds to the component that you are currently adding.
  11. In WolvenKit, locate the meshAppearance data box in the right side panel. Replace the text in that field with the meshAppearance you copied in the last step.
  12. In the central panel, click on the entSkinnedMeshComponent entry for npv_component_mesh_02, so that its details are available to edit in the right side panel.
  13. Repeat steps 6 through 11, this time adding a different part, such as the teeth.
  14. Repeat steps 6 through 11 for all of the remaining head components, as listed in your saved results from the NPV Part Picker Utility.
    • Move to a new entSkinnedMeshComponent for each new head part, so that you do not overwrite the previously added part.
    • Your NPV Part Picker Utility results may list the same .mesh file as corresponding to multiple different head components; for example, it may list the same .mesh for cheek makeup and cyberware. This is normal. Multiple different entSkinnedMeshComponent entries may path to the same shaped head part .mesh file, and may use different name, chunkMask, and meshAppearance data as needed.
  15. Near the top of the WolvenKit window, click Save File to save your changes to the .app file.