Post tutorial Report RSS Official Skin Tutorial

This is an archive of the official Skin tutorial created by Remedy.

Posted by on - Advanced Skinning

This is an archive of the official skin tutorial for Max Payne 2. Created by Remedy. It has been archived here due to Rockstar taking down the official Max Payne 2 website recently. I've taken the liberty of fixing all of the links here to ones that work.

Skin Tutorial

This tutorial explains you step by step how to create and export your own character skins
to the game by using 3D Studio Max 5.1, Character Studio 4 and Remedy 3D Studio Plugins.
The tutorial requires that you already have some working experience with both 3DS Max and
Character Studio.

Related files are available in here: Skin_examples.zip

NOTE: If you want to skip the skin-to-skeleton attachment process and just try out
the KF2-Exporter, there is a _ExportPose.max-file for every example skin included
in the tutorial. The files contain a pre-weighted skin attached to a skeleton that
is ready for export.

Configuring 3D Studio Max

Before starting, set your 3DS Max units to Centimeters.

  • Customize/Unit Setup->Metric/Centimeters

Skeleton Setup

Load the "Male" or "Female"-skeleton (Male_SkinModeling_Pose.max or
Female_SkinModeling_Pose.max)

  • Select "Bip01"
  • Under "Keyframing Tools" uncheck "Body Space Neck rotation"
  • Turn on Figure Mode by clicking on the "FigureMode On/Off"-icon. The icon turns
    yellow when Figure Mode is on.

skin remedytoolsicons

Merging your Skin to the scene

From the File Menu click Merge. Browse to your character model and merge it.

Alternatively you can merge one of the included character skins. The available skins are:

  • MaxPayne_Skin.max (male)
  • Cleaner_A_Skin.max (male)
  • MonaSax_B_Skin.max (female)

If you choose to use one of these skins, you can skip the following steps and go straight to
"Merging your Skin to the Skeleton".

  • Collapse your skin into a single "Editable Mesh"-object
  • Select all faces and assign them all to Smoothing Group 1
  • Check that your character's joints conform to the skeleton joints as well as possible.
  • Clean up your mesh: unify normals, remove double faces, edges and stray vertices.
    Use "STL Check" and "Normal"-modifiers to do this.
  • Reset Xform. From the Utilities tab click on "Reset Xform" to reset the character
    scale and transforms. Go to the modifier stack and collapse the stack again to Editable
    Mesh.
  • Move the skin's Pivot to World origin. From Hierarchy/Pivot/Adjust Pivot click
    "Affect Pivot Only" and move the pivot to World origin (0,0,0). Under AdjustPivot/Alignment click "Align to World".

Materials

Open the Material Editor and choose "KF Material" as the material type. The
"KF Material" is the only material type supported by the game's skins.

skin material 1

Check "Diffuse", click on the material slot next to it and choose "Bitmap" from
the list.

skin material 2

The only supported bitmap type is .DDS. Apply the material to the skin.

Use the "Multi/Sub-Object" material to apply multiple KF materials on one skin
The Multi/Sub-Object material slot numbers correspond to the "Material ID" numbers
under Editable Mesh. Open one of the included skin files for further reference.

Merging your Skin to the Skeleton

  • Select your skin
  • Apply Physique modifier
  • From the Physique Level of Detail/Skin Update choose Deformable and uncheck all
    except Link Blending. From Stack Updates check "Reassign Globally"

skin physiqueinitiliazation1

  • Click "Attach to Node" and from the rollout choose "Bip01"
  • From the Physique Initialization/Link Settings uncheck Continuity and from
    Vertex - Link Assignment/Blending Between Links choose "4 links" and uncheck Create
    Envelopes. Click "Initialize".

skin physiqueinitiliazation2

  • Disable the unused links. This is done in order to avoid any problems while
    loading/saving the skin's vertex weights. Under Physique/Link choose the unused links
    and disable them by unchecking Active from the Link Settings. The deactivated links
    will turn black.

skin skeleton unused 1
skin skeleton unused 2
skin skeleton unused 3
skin skeleton unused 4

Vertex Weighting

The vertex weighting is done the same way as any other character skinning in Character
Studio. The only limitations are that you can 1) only weight your vertices to a maximum
of four bones and 2) none of the vertices' weight values can go to zero. You can check
if your model meets these limitations by using the "Remedy Physique Tool".

NOTE: If you chose to use one of the skins we provided for the this tutorial, you can
load their weighting directly from the _weights.txt-files. Jump to the next chapter to
learn how to Load and Save vertex weights.

  • Select Editable Mesh from your skin's modifier stack
  • Click the "Remedy Physique Tool"-icon

skin rmd phytool

A window opens, displaying the skin's vertex-to-bone influence distribution. In our
example picture we can see how MonaSax_B's 2399 vertices are weighted: 1824 vertices
are weighted to one bone, 521 to two bones, 53 to 3 bones and 1 vertex
to 4 bones. No vertices are weighted to more than 4 bones or are below the tolerance
weight or zero. If your skin has any of these problematic vertices do the following:

  • Click the + button next to the ">4 Bones" to select and show the problem vertices.
  • Click "Kill Lowest Influence Node" to remove the least affecting bone from the
    vertices' weighting.
  • Click the + button next to the "Below Tolerance" to select and show the problem
    vertices.
  • Click "Kill Nodes Below Tolerance" to remove any zero weights from the weighting.
  • Click Refresh and check if any vertices have appeared that have "0 bone" weights.
    Every vertex must be weighted to at least one bone.

Tip: Lock vertices before modifying the underlying skin. This way you avoid messing
up the vertex weights when making modifications.

Loading/Saving Vertex Weights

To Save and Load your skin's vertex weights click the "MP2_SaveLoad" icon.

skin mp2saveload

In the bottom of the rollout there are three buttons. The Save/Load vertex weights are
self-explanatory. You can load old skin weights to any new model, but the results will
not be predictable if the new model varies greatly from the original.
"Load indexed weights" works only if the skin's vertex count hasn't been changed (no
vertices have been added or deleted).

Exporting .KF2

Before exporting, check that all the skin transforms are reset (Position [0,0,0], Rotation
[0,0,0] and Scale [100,100,100]). If not, choose Hierarchy->Adjust Transform and click
Reset: Transform and Scale. Check also that the pivot is still located at the origo
(0,0,0).

  • Remove zero vertex weights and >4 bone weight assignments by using the "Remedy Physique
    Tool"
  • Select "Bip01"
  • Apply Figure Mode
  • Load the Male or Female SkinExport_Pose.fig, depending on your base skeleton type.
    The skin's fingers curl up to the export pose. You can revert your biped back to its
    original modeling pose by loading Male or Female SkinModeling_Pose.fig.
  • From the File Menu choose "Export". Browse to your desired export directory.
    Under "Save as Type" choose "KF2 Exporter". Use the following settings:
  • [KF2_Exporter.psd].
  • Press OK.

Adding a new Skin to the game

If you want the skin to be a player controllable character (like Max Payne orMona Sax), you should begin by duplicating the "database\skins\MaxPayne.txt" toa new file name such as "database\skins\MySkin.txt". Then create a new foldercalled "MySkin" and copy your 3dsmax exported "MySkin.kf2" and "MySkin.skd"files there. Then edit (at the bottom of the file) the "MySkin.txt" to use yourown .kf2 and .skd files.

If you want to add a new enemy to the game, you should use the same process,
but begin with one of the Cleaner skins for example. This is as the player
skins require very different skeletal movement and other definitions to work
properly.

Post comment Comments
miller11568
miller11568 - - 4 comments

I have 3DS Max 5.1 SP1 with Character Studio 4.1, but I got an error named "Unknown property: "getphysiquemodifier" in undefined" (Unable to convert: undefined to type: String" if you have IPhysique.gup)

Do you know what I could fix this error or can I try Milkshape 3D instead?

Reply Good karma Bad karma+1 vote
LithTechGuru Author
LithTechGuru - - 406 comments

Unfortunately I don't know. This tutorial was originally created by Remedy in the early 2000s.

Reply Good karma+1 vote
Sanderfol
Sanderfol - - 4 comments

Is it possible to export the model, location to max payne from new versions of 3dmax? I refuse to model in maxed, because I understand that it is very far from the 3dmax level. In addition, it is more convenient to model in 3dmax.

Reply Good karma Bad karma+1 vote
LithTechGuru Author
LithTechGuru - - 406 comments

MaxEd is for mapping specifically. You can export prefabs from 3dsmax but as far as I know there isn't a more modern plugin for it. There is a Milkshape plugin for meshes but I don't think it applies to prefabs.

If I remember correctly the developer of Payne Evolution used a more modern version of 3dsmax and used Milkshape to export meshes into MP2.

Reply Good karma+1 vote
Sanderfol
Sanderfol - - 4 comments

Is it possible to find a tutorial on exporting a model from 3dsmax 5 in .asi format? The plugin includes a tool for exporting models in this format. No matter how much I tried to export the model, the plugin gives an error related to materials and textures. I can't figure out what's wrong.

Reply Good karma Bad karma+1 vote
minatchi
minatchi - - 2 comments

thank you so much for posting this! helped me get a model rigged and in game. Has anyone ever figured out how to rig the face in Max Payne 2? I spent hours and hours fighting with it but everytime i import it into milkshape and export it the character's bones are like a billion units off their face.

Reply Good karma Bad karma+1 vote
LithTechGuru Author
LithTechGuru - - 406 comments

I've seen some custom models with custom face rigs but it's very rare. Most people reuse Max or Mona's and just modify it.

Reply Good karma+1 vote
miller11568
miller11568 - - 4 comments

How can I fix this error named "No readvalue function for undefined" when I use "export biped animation v2"?

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: