Tool Unity Tutorial Creating a Pleasure Party Plus compatible mod bundle for custom animations

asdfgghjkg

Newbie
Oct 18, 2018
74
109
This guide will describe the process of making a bundle for Pleasure Party Plus which allows players to import custom animations and use them in the game Pleasure Party.

This guide's main focus are the game and mod specific details.

The general process is:
  1. Extract models
  2. Create animations and import them into Unity
  3. Build asset bundle in Unity
  4. Create bundle configuration file
Extract Models

Pleasure Party uses custom rigs, so you'll need to extract them if you want to make animations. You can do this using Asset Studio. I used to work through the process. You only need to do steps 1-4. You'll be importing the .fbx file, no need to convert to .dae.

You will want to extract one Male_ and one Female_ model each, as they use different rigs. Most of the levels have all of the character models in them. Here's Asset Studio with level2 imported:

1651881651556.png

Create Animations

If you have your favorite animation software, feel free to give that a try.

Animation is new to me, so I just used Unity's built in animation editor to make some basic keyframe animations.

If the textures don't show up correctly on your imported model in Unity, you can correct them by hand. First, select the imported asset from your project files. The click the "Extract Textures..." button in the inspector:

1651882283070.png

The folder they are extracted to will contain textures and materials. I had to go into each material and manually select the corresponding texture.

Select a material:

1651882585424.png

Then click the circle next to Albedo:

1651882666040.png

And from there select the correct texture:

1651882713994.png

You might also need to change the material's shader.

Build Asset Bundle in Unity

Once you have your animations created and imported into Unity, you should have something that looks like this:

1651883185705.png

A couple important notes:

  1. The mod's asset bundle loader expects the animations to be in the Assets folder. Every animation should be in top level of that folder.
  2. Every animation needs to have a globally unique name. If an animation in your bundle matches the name of an already loaded animation the entire bundle will fail to load. This is a limitation within Unity. I recommend prepending the bundle name or your username to each animation name.
You then need to add all of the animations to an asset bundle within Unity. I use to configure and build my asset bundles.

Create Configuration File

The mod expects a configuration file along with your asset bundle to tell it what animations are in the bundle and what to do with them. The config file is in JSON format. Below is an example of a basic config file followed by an explanation of each field.

JSON:
{
    "configVersion": "1.0.0",
    "name": "PPP Asset Bundle",
    "author": "asdfgghjkg",
    "type": "animation",
    "assetBundle": "pppassetbundle",
    "idleAnimations": [
        {
            "name": "PPPDabAnim",
            "gender": "female"
        },
        {
            "name": "PPPMaleSitting",
            "gender": "male"
        }
    ],
    "positions": [
        {
            "name": "PPP Handjob",
            "animations": [
                {
                    "gender": "female",
                    "audioType": "LickingGive",
                    "slow": "PPPGirlHandjobSlow",
                    "fast": "PPPGirlHandjobFast",
                    "exhausted": "PPPGirlHandjobExhausted"
                },
                {
                    "gender": "male",
                    "slow": "PPPGuyHandjobSlow",
                    "fast": "PPPGuyHandjobFast",
                    "exhausted": "PPPGuyHandjobExhausted"
                }
            ]
        }
    ]   
}
name and author are currently optional. They are not used by the mod.

assetBundle is the name of the asset bundle file you built in Unity. It must be in the same directory as the config file.

idleAnimations contains a list of animations that are not used for any "positions" in the game. They are only for character idle animations. It is an array where each object contains the name of an animation and the gender of the animation. The name must match the name of the animation in the Unity editor. Gender must be "male" or "female".

positions is a list of each position included in the bundle. It must contain a name and a list of animations. The name is displayed to the user and can be anything.

The animation list contains one object for each character that is involved in the position. If it's a three person position, there should be three animation objects in the list, etc. The first animation in the list must be a female one. This is a limitation of how the game works. The valid fields are:

  • gender - the gender for the character using these animations
  • slow - the slow animation for this character in this position
  • fast - the fast animation for this character in this position
  • medium - *optional* the medium speed animation for this character in this position. Either all or none of the characters in a given position should include this field.
  • exhausted - the exhausted animation for this character in this position
  • audioType - only relevant for female characters. Every female animation should have this field. It controls the audio that plays for this character in this position. The valid values (case sensitiive) are:
    • MF
    • Solo
    • AN
    • SP
    • FF
    • scissor
    • LickingGive
    • LickingReceive
Once your asset bundle and config file are ready, you can zip them up together and distribute them. They should be extracted to <game install location>\Pleasure Party\BepInEx\plugins\PleasurePartyPlus\Assets

or any sub folder in Assets.
 
Last edited: