1.5M ratings
277k ratings

See, that’s what the app is perfect for.

Sounds perfect Wahhhh, I don’t wanna

Support for Custom CAS Parts

This tutorial will explain to you the basics of adding support for different kinds of custom CAS parts that work with WickedWhims. Currently supported CAS Parts are: Male/Female Top, Male/Female Bottom, Male/Female Soft and Hard Penis, Male/Female Feet, Strapon, Condom, Male Underwear, and Female Underwear. Each of these types is added in a different way so please read the appropriate tutorial below.


1. Download Resources

Pick one of the manager tools (S4PE or S4S):

TOOL> S4PE - Download (you are required to use 7-zip to extract it)

TOOL> Sims4Studio - Download (requires to register)

S4PE (Sims 4 Package Editor) is a simplistic tool to edit Sims 4 resources. It might not be the most intuitive to use for beginners, but it’s the easiest to use for this tutorial.

S4S (Sims 4 Studio) is a complex tool to edit and create Sims 4 resources. With plenty of tutorials it is a relatively easy tool to learn, but for this tutorial it is harder to use.


Necessary tools:

TOOL> Modding Toolbox - Download (or use Hash Generator in Sims4Studio)

Modding Toolbox is used to generate hash values for the XML templates. If you’re going to use Sims4Studio, the alternative for it is under ‘Tools -> Hash Generator’.


Pick the template for the CAS parts you want to add:

TEMPLATE> Condom CAS Parts Template -  Download (Open -> Right Click -> Save as…)

TEMPLATE > Strapon CAS Parts Template -  Download (Open -> Right Click -> Save as…)

TEMPLATE > Underwear CAS Parts Template -  Download (Open -> Right Click -> Save as…)

TEMPLATE > Body CAS Parts Template -  Download (Open -> Right Click -> Save as…)

Condom CAS Parts Template is used to add support for custom condoms in WickedWhims. They are used during sex. You are required to make a condom wrapper object and a visible condom CAS part for the full support of condoms.

Strapon CAS Parts Template is used to add support for custom strapons in WickedWhims. They are used during sex. You are required to make a visible strapon CAS part that is selectable at the CAS screen.

Underwear CAS Parts Template is used to add support for custom underwear in WickedWhims. It’s used when randomizing it on Sims.

Body CAS Parts Template is used to add support for custom naked body parts in WickedWhims. They can be selected by the user using the Body Selector in-game. It’s recommended to make a square icon that will be displayed in the Body Selector menu.


These applications are optional. If you don’t own any coloring text editor, try one out:

> Sublime Text 3 - Download

> Notepad++ - Download

The editor used in this tutorial is Sublime Text 3. It will help with readability of the variables that need to be edited. The same can be done with Notepad++.


> XML Validation - Open

XML Validation is helpful after you’re done with your XML file. Copy and paste your XML file to the XML Validation page and see if the file structure is correct and without error.



2. Create Hash Values

Every XML template requires a decimal and a hexadecimal ID that will be created using the Modding Toolbox (or S4S Hash Generator).

> 2.1. Type in the name of your file and make sure it contains your name.

Recommended naming: “YOUR_NAME:Something_CAS_Parts”, example: ‘TURBODRIVER:Condom_CAS_Parts’.

image

> 2.2. Copy the FNV 64 field without the '0x’ prefix.

image

> 2.4. Replace the '0000000000000000’ at the end of the XML Template file name with copied FNV 64 value.

The XML file should be originally named 'S4_7DF2169C_00000000_0000000000000000.xml’.

image

> 2.4. Switch the display result to 'Decimal’.

image

> 2.5. Copy the FNV 64 field.

image

> 2.6. Replace the '0000000000000000’ inside of the XML Template file with copied FNV 64 value.

The XML file should originally contain a variable looking like s=“000000000000000000”.

> 2.7. Replace the 'YOURNAME:…’ inside of the XML Template file with the file name that has your name and was used to generate the FNV 64 values.

image


3. Retrieve CAS Part ID

Fields ‘cas_part_id’ or ‘cas_part_ids’ will require entering a decimal Instance ID of your CAS part(s).

For S4PE, the Instance ID is located under “Instance” at the list of resources. CAS Parts can be recognized by the “CASP” tag. It’s a hexadecimal value.

For S4S, the Instance ID is located under “Instance” at the list of resources or at the “Key” section on the right panel when the CAS Part is selected. It’s a hexadecimal value.

To convert a hexadecimal value to decimal, use an online converter.

image
image


4. Create Condom CAS Parts

Skip, if you’re not adding condoms.

Condoms work by using a Condom Wrapper Object than then gets unpacked and applied on the Sim body in form of a CAS Part. This means that each condom CAS Part requires to have its own Condom Wrapper Object. And each individual Condom Wrapper Object has to have its unique XML Tuning file with a unique Instance ID that is used as the reference to the condom CAS Part.

image

All of the variables highlighted in red should be modified for the file to work correctly and support your CAS part.

> 4.1.1 Variable 'cas_part_raw_display_name’ is the name of your CAS Part that might be disabled for the user in-game. Make sure to name it appropriately.

> 4.1.2 Variable 'cas_part_author’ is your name that might be disabled for the user in-game.

> 4.1.3 Variable 'cas_part_id’ is the decimal Instance ID of your CAS Part.

To get the decimal Instance ID of your CAS Part, copy the hexadecimal Instance ID (Key) of your CAS Part (example: 0x143A310339A3E4A6) and convert it to decimal with an online converter.

> 4.1.4 Variable 'cas_part_reference_id’ is the decimal Instance ID the tuning file used for the condom wrapper object.

This requires each condom wrapper object to have a separate tuning file with a unique Instance ID.

> 4.1.5 Variable 'required_cas_part_id’ is an optional field that makes sure a CAS Part is not applied unless a different one is already present on the Sim.

This should be used with the hard penis CAS Part ID that fits the condom texture and model. Not every penis model will look correct with a condom applied.

> 4.2 Condom Wrapper Tuning

Your Condom Wrapper Object has to have a unique tuning file. To make that tuning file interactable with WickedWhims, you need to assign it “_super_affordances“. These are the interactions required for the condom to be functional:

  • <T>12214374159487695556<!–Use_This_Condom–></T>
  • <T>15594836868367128156<!–Use_All_Condoms–></T>
  • <T>10974543514180352698<!–Disallow_Condoms_Auto_Use–></T>
  • <T>15247761224639232100<!–Allow_Condoms_Auto_Use–></T>

It’s important that the tuning file contains the “inventory_item“ component with “inventory_only“ enabled so it can only be used from inside of the Sim inventory.


5. Create Strapon CAS Parts

Skip, if you’re not adding strapons.

Strapons are automatically applied on Sims when they are required by the animation. This means that every Sim has a pre-defined strapon part that can be changed. For WickedWhims to detect the existence of strapons, the XML file has to contain its CAS Part ID.

image

All of the variables highlighted in red should be modified for the file to work correctly and support your CAS part.

> 5.1 Variable 'cas_part_raw_display_name’ is the name of your CAS Part that might be disabled for the user in-game. Make sure to name it appropriately.

> 5.2 Variable 'cas_part_author’ is your name that might be disabled for the user in-game.

> 5.3 Variable 'cas_part_id’ is the decimal Instance ID of your CAS Part.

To get the decimal Instance ID of your CAS Part, copy the hexadecimal Instance ID (Key) of your CAS Part (example: 0x143A310339A3E4A6) and convert it to decimal with an online converter.


6. Create Underwear CAS Parts

Skip, if you’re not adding underwear.

Underwear is used when Sims undress, but these files are not required for the underwear to be available to use on Sims. These files are used to randomize underwear on all Sims in-game so they don’t have to use the default white underwear.

image

All of the variables highlighted in red should be modified for the file to work correctly and support your CAS part.

> 6.1 Variable 'cas_part_raw_display_name’ is the name of your CAS Part that might be disabled for the user in-game. Make sure to name it appropriately.

> 6.2 Variable 'cas_part_author’ is your name that might be disabled for the user in-game.

> 6.3.1 Variable ‘cas_part_id’ is used when ‘cas_part_type’ is set to UNDERWEAR_MALE, and it is the decimal Instance ID of underwear CAS part.

Male underwear only requires one part, the bottom part.

To get the decimal Instance ID of your CAS Part, copy the hexadecimal Instance ID (Key) of your CAS Part (example: 0x143A310339A3E4A6) and convert it to decimal with an online converter

> 6.3.2 Variable ‘cas_part_ids’ is used when ‘cas_part_type’ is set to UNDERWEAR_FEMALE, and it is the list of decimal Instance IDs of underwear CAS parts.

Female underwear requires two parts, the top part and the bottom part. These are divided by the comma character.

To get the decimal Instance ID of a CAS Part, copy the hexadecimal Instance ID (Key) of your CAS Part (example: 0x143A310339A3E4A6) and convert it to decimal with an online converter.


7. Create Body CAS Parts

Skip, if you’re not adding body parts.

Naked body parts are used when Sims undress, and for the user to use the naked body parts, it is required to add them to the Body Selector menu.

image

All of the variables highlighted in red should be modified for the file to work correctly and support your CAS part.

> 7.1 Variable 'cas_part_raw_display_name’ is the name of your CAS Part that might be disabled for the user in-game. Make sure to name it appropriately.

> 7.2 Variable 'cas_part_author’ is your name that might be disabled for the user in-game.

> 7.3 Variable ‘cas_part_display_icon’ is used to display an icon in the Body Selector menu.

Not changing the default icon will result in the default WickedWhims icon being shown instead.

> 7.3.1 When using S4PE, you can convert a PNG file into a DDS file using the Aorta DDS application (don’t include MipMaps when converting).

S4PE resource type for the icons is _IMG 0x00B2D882.

> 7.3.2 When using S4S, you can simply import a PNG file as a DST Image.

S4S resource type for the icons is DSTImageResource.

> 7.4 Variable ‘cas_part_type’ is the type of the body part that is being added.

  • BODY_TOP_MALE is for masculine or feminine males top.
  • BODY_TOP_FEMALE is for female breasts.
  • BODY_BOTTOM_MALE is for males without a penis.
  • BODY_BOTTOM_FEMALE is for females bottom (vulva).
  • BODY_FEET_MALE is for males feet.
  • BODY_FEET_FEMALE is for females feet.
  • PENIS_SOFT_MALE is for males soft penis.
  • PENIS_SOFT_FEMALE is for females soft penis (female with a penis).
  • PENIS_HARD_MALE is for males hard penis.
  • PENIS_HARD_FEMALE is for females hard penis (female with a penis).

> 7.5 Variable 'cas_part_id’ is the decimal Instance ID of your CAS Part.

To get the decimal Instance ID of your CAS Part, copy the hexadecimal Instance ID (Key) of your CAS Part (example: 0x143A310339A3E4A6) and convert it to decimal with an online converter.

The CAS part is not required to match the intended body type. You are allowed to make your body parts a native tattoo and use the advantages of texturing a body part as if it was a tattoo. In that case, you are still required to include it with a mesh.


8. Package Tuning (XML)

For the XML tuning file to be used and detected, it has to be placed inside a PACKAGE file, preferably the one that contains the actual CAS parts. If you don’t have a package file, you should consider making the CAS parts first.

> 8.1 Using S4PE

Open S4PE, and then in the top bar, select “File”, and “ Open… ”. Open the PACKAGE file with your CAS Parts.

If you’re creating something that doesn’t involve your own CAS parts, click “New”, then “Save”, select where to save your new package, and follow further instructions.

image

While S4PE is running, open the folder with your XML file, click on it and hold, and then drag it over the S4PE window, and drop (aka drag and drop the file inside S4PE). Once you did that, save it (click “File” and “Save”).

> 8.2 Using S4S

Open S4S, and then click “My Projects”. Open the PACKAGE file with your CAS Parts.

If you’re creating something that doesn’t involve your own CAS parts, click “Tools” at the top bar, and then “Create Empty Package”. Select where to save your new package, and follow further instructions.

image

To add the XML tuning file, click the “Add” button at the bottom-left, select “SnippetTuningResource” from the list as the Type, and paste the hexadecimal FNV 64 hash, that you have created at the beginning, without the ‘0x’ into the Instance field. Then press OK.

Select your file from the list on the left panel. On the right panel, make sure the “XML” tab is selected. Open your XML tuning file, select it all (CTRL+A), and then paste it into S4S right panel. Once you did that, save it with the “Save” button on the bottom-right.


Last update: 23rd of November 2018

WickedWoohoo WickedWhims Tutorial CAS Custom CC

Creating Custom Skin Tone for WickedWhims

This tutorial will explain to you basics of creating custom skin tones that are supported by WickedWhims. Note that this tutorial will not tell you how to make good skin tones, but just working skin tones.


1. Download Resources

> TS4 Skininator - Download

> Skin Tone Templates - Download

> Aorta DDS - Download

Aorta will be used to convert PNG files into DDS files that can be used in TS4 Skininator. If you can’t use Aorta or don’t want to, you can use Sims4Studio to load a PNG file and save it as a DDS file.

Skin Tone Templates archive file contains two files, but only the ‘MySkinToneTexture.png’ file will be used in this tutorial. The ‘SkinToneTemplateModel.png‘ file is used to inform you how the skin tone texture area is mapped and show you where the extra WickedWhims penis texture space is located (green square).

image


2. Recolor Texture

Open the ‘MySkinToneTexture.png’ file with your preferable graphics editor (like Photoshop or GIMP), change the color to the skin tone you want, and save the file.

It’s important to use this template if you want your skin tone to be compatible with WickedWhims because it contains an additional region with color used by penis mods.

That additional region is located on the bottom-right of the texture and it is marked with a green square on the ‘SkinToneTemplateModel.png‘ file. It’s important to keep that additional region as one solid color to properly display all penis models texture.


3. Convert Texture to DDS

To use your edited ‘MySkinToneTexture.png’ file you need to convert it to a DDS file. In this tutorial, we will be using Aorta, but if you know how to do it with Sims4Studio, you can use it instead.

Open Aorta and click the Load normal… button. Then select the  ‘MySkinToneTexture.png’ file and open it.

image

Once you see your texture loaded, click the Save as… button and save the file as ‘MySkinToneTexture.dds’ file.

image

On the DDS Options screen, you need to make sure to at least have the ‘Use DXTC’ option selected, and then click the OK button to save.

image


4. Creating the New Skin Tone Package

Creating a new skin tone package is all done with TS4 Skininator, so turn that on. On the first run, you will be asked to give your creator name, path to the game files and path to the Sims 4 documents folder.

Once you see the main application window, let’s start with making sure that you have the Create/Edit Custom Skin Colors tab selected.

image

Then make sure you have the Cloning Tool tab selected.

image

On that tab, select the Clone Game Skintones option which should display you the list of all the skin tones you have in your game.

image

Then select the checkmark on the first skin on the list, because we will only be making one new skin tone for a human (not vampire or alien) in this tutorial.

image

And before we’re done, make sure you have the New custom content option selected at the bottom.

image

That’s it! Now click the Clone! button and save your package. That package will be later used to apply your new skin tone texture and that will be your package that you will use in your game once we’re done.

image


5. Editing the New Skin Tone Package

Let us switch to the Clone Package Editor tab for this part.

image

There click the Select button and select your newly created package.

image

Once it loads, we can replace the textures with your new skin tone. Click on the gray area to open a new window for replacing the texture. You need to do this twice for both the ‘Texture in CAS’ and ‘Texture in game’ fields.

image

In the newly opened window click on the Import Image button and then select your ‘MySkinToneTexture.dds’ file.

image

And then just click the Save button.

Remember to repeat this process for both the ‘Texture in CAS’ and ‘Texture in game’ fields.

image

The last thing to change is the Swatch Color that will be visible in CAS. Just click on the white rectangle and pick the new color.

image

Then click the Commit Changes button to apply all the things you’ve done.

image

And click the Save Package button to be finally done.

image


6. Finish

That’s it. You’re done. You can now close the TS4 Skininator application and test your package in-game by moving it into your Mods folder.

Note that you can make skin tone textures with more detail if you want, and apply special flags, but the most important part is to keep the extra skin space explained at the beginning.

WickedWoohoo WickedWhims Tutorial Skin Tone

Adding Native Events to Animations

This tutorial will explain to you how to add native events (lips movement and sounds) to animations.
To add sex events check out the Creating WickedWhims Animation XML File tutorial.

1. Download S4PE

> S4PE - Download (at least version 0.5.0)

Note that archives for 7-Zip (.7z) should be unpacked using 7-Zip, otherwise, it may result in errors when using the unpacked files.

2. Edit in S4PE

To add events you need to have an animation, so check other tutorials if you have not already made one.
You add events to your animations after you’re done with creating and exporting them.
Open your package with animations using S4PE.

3. Open Events Grid View

image

Select your CLIP and click the Grid button at the bottom of the S4PE editor.

image
Select the ‘ClipEvents’ line from the list and click the ’…’ button on the far right.
You can remove existing, added by Sims4Studio, two events from the list by using the 'Delete’ button on the bottom.
Note that editing CLIP file in S4PE will edit CLHD file for you automatically, so you don’t have to worry about it.

4. Understanding Timecodes

Events require to set the Timecode they will be triggered at when the animation plays.

Every frame of your animation has a specific length. That length is set in the 'TickLength’ field of your animation and by default, it’s ’0.03333334’. This means that the 'TickLength’ value multiplied by a number of frames of your animation will result in the duration of your animation.Example: If your animation has 81 frames and you multiply it by the 'TickLength’ (81 * 0.03333334) you will get the animation duration which is '2.7’.

Example: If your animation has 81 frames and you multiply it by the 'TickLength’ (81 * 0.03333334) you will get the animation duration which is '2.7’.

To get the Timecode for a specific frame of your animation, take that frame number and multiply it by the 'TickLength’.

Example: If you want to play a sound at the 20th frame of your animation, multiply that by the 'TickLength’ (20 * 003333334 = 0.06666668). Your Timecode for the 20th frame is '0.06666668’.

5. Adding Sounds Events

image
To add sounds, click the 'Add’ button at the bottom and select 'ClipEventSound’.
Setup the values just like in the screenshot above for the first sound.
Replace the 'SoundName’ field with a name of a sound you want to play.
Replace the 'Timecode’ field with the time you want to play the sound at.
The 'Unknown1’ field defines the ID of your event. The first event will have the value 0x00000001.
Every next event ID grows by 1 in hexadecimal format: 0x00000001 -> 0x00000002 -> 0x00000003 -> 0x00000004 -> 0x00000005 -> 0x00000006 -> 0x00000007 -> 0x00000008 -> 0x00000009 -> 0x0000000A -> 0x0000000B -> 0x0000000C -> 0x0000000D -> 0x0000000E -> 0x0000000F…
List #1, List #2, List #3 of sounds that you can use. I don’t know of any way to listen to them yet. The only thing you can do is to use them and test them in-game or try to export them based on the included instance id.
Once you’re done adding events, click the 'OK’ button and then 'Commit’ button. Remember to save your package!

6. Adding Lips Movement Suppression Event (unlock mouth bones)

image
By default, the game uses mouth bones to make Sims speak, which means that you can’t animate them.
This is not true if you suppress lips. Doing that will block Sims from talking and allow you to animate mouth bones.

To add lips movement suppression, click the 'Add’ button at the bottom and select 'ClipEventCensor’. Setup the values just like in the screenshot above. Keep the 'Timecode’ as '0’ since it should start from the beginning of the animation. The 'Unknown1’ field defines the ID of your event. The first event will have the value 0x00000001.
Every next event ID grows by 1 in hexadecimal format: 0x00000001 -> 0x00000002 -> 0x00000003 -> 0x00000004 -> 0x00000005 -> 0x00000006 -> 0x00000007 -> 0x00000008 -> 0x00000009 -> 0x0000000A -> 0x0000000B -> 0x0000000C -> 0x0000000D -> 0x0000000E -> 0x0000000F…
Once you’re done adding events, click the 'OK’ button and then 'Commit’ button. Remember to save your package!



Last update: 25th of August 2017

WickedWoohoo Tutorial Animation Event Sound

Exporting Objects from The Sims 4

This tutorial will explain to you how to export objects from The Sims 4 that are usable in Blender.

1. Download Sims4Studio

> Sims4Studio - Download (you need an account) (Sims 4 Studio Site)

Use a more recent version of Sims4Studio if you have issues exporting objects.

2. Get to the objects

image

Open Sims4Studio, select the ‘Override’ option under 'Object’ button and click the 'Object’ button.
Prepare for a potentially long loading since Sims4Studio has to load all objects from the game.

3. Pick an object

image

Start typing in the name of an object you’re looking for and select it from the list.
Once you’re sure this is the object you want, click the 'Next’ button.
When asked where to save your new package put anything you want in, it doesn’t matter when exporting objects.

4. Get to the mesh

image

Switch to the 'Meshes’ tab.

5. Export the mesh

image

Click the 'Export Mesh’ button and choose where you want to save the blend file.

6. Import the mesh to Blender

image

Importing the mesh to Blender is the same process as appending actors to your animations.
The only difference is that you have to select objects called 's4studio_mesh_’ to add the objects.


Last update: 25th of August 2017

Sims 4 WickedWoohoo Tutorial Export Object Sims 4 Studio WickedWhims

Creating Basic Animations In Blender

This tutorial will explain to you basics about creating animations for The Sims 4 using Blender.

Videos may not be visible in some browsers!


This tutorial is safe for people who never used Blender. Keep in mind that this is not the most optimal way to use Blender. You should consider looking up professional tutorials to learn more.

1. Download Blender

> Blender 2.70a - Download

This version is required to work with Sims4Studio 2.7.1.5. If you’re using a newer version of Sims4Studio, use the recommended Blender version.

2. Download Sims 4 Rigs

> Edited Male and Female Rig - Download

These are heavily edited Sims rigs that support custom tongue and penis movement. You’re free to use any other The Sims 4 rigs you can find.


Downloaded files with extension ’.blend’ can now be loaded directly to Blender.

3. Open rigs in Blender

Rig files with extension ’.blend’ can be simply loaded to Blender.
After you install Blender, open one of the downloaded rigs.

In this tutorial only the ‘YOURNAME_Animation_Name_male’ and 'YOURNAME_Animation_Name_female’ files will be used.

4. This is the animation timeline


You use the timeline to move the time of your animation and add keyframes. To actually interact with created keyframes you need to use the 'Dope Sheet’ which will be explained later.
Below the timeline, you will find numbers labeled 'Start’ and 'End’.
'Start’ is the frame your animation starts with and it always has to be set as 0.
'End’ is the frame that your animation ends with (duration or your animation). Note that this only applies to Blender and if you add keyframes past the animation duration they will be counted by Sims4Studio when exporting.

5. This is the Dope Sheet


On the left, you can change the visible editor to 'Dope Sheet’ and switch the mode to the 'Action Editor’.
Dope Sheet/Action Editor is like an advanced timeline where you can move, copy and delete existing keyframes. More on that later.

6. This is your camera


Moving camera in Blender can be really complicated and there is a lot to learn about it, but here are the basics.
By holding the Middle Mouse Button you can rotate the camera around.
With the Scroll Wheel, you can move forward or backward.
While holding the Shift button and holding the Middle Mouse Button at the same time you can move in space.
This is in no way the most optimal way of operating the camera in Blender, but it should be enough for beginners.

7. These are bones

image


Before animating rigs, make sure to always select one by clicking on the icon of the actor you want to modify. The screenshot above shows the 'Outliner’ which contains all the objects in your scene. Any icon with a circle on it means that it is selected as the active object you’re modifying.


All the black dots on the Sim model are called 'bones’. You can select any bone by using the Right Mouse Button, it will get highlighted when it is selected.

8. Rotating bones

image


For purposes of this tutorial, we will be using the Rotation Tool, but this is not the only way to rotate bones.
To enable the Rotation Tool you need to click on the icon showed on the screenshot above. If you don’t see the icon pointed by the arrow, click on the icon on the left, with lines colored in red, blue and green, to make the 'Rotation Tool’ icon visible.
To move bones (don’t do this) you need to use the 'Translation Tool’ which will be explained later in this tutorial.


Once you select the 'Rotation Tool’ and one of the bones, you can rotate it by dragging one of the colored lines that are displayed around the bone.
Try selecting different bones and see what you can move.

9. Even more rotating bones


Some bones can be clicked multiple times to access different bones that are placed in the same spot. An example is an eye, which with every click allows you to move the upper lid, bottom lid and the eye itself.
To know that you’re selecting different bones, look at the name of the selected bone that is displayed at the bottom left corner of the 3D View.

10. Import second actor (or more)


Importing actors and objects allows you to align everything properly in one animation. Note that you can’t export the animation with multiple actors, but more on that later.


To import actors or objects:
10.1. Click 'File’ -> 'Append’.
10.2. Pick blend file that contains the actor/object you want to add (for example the female rig).
10.3. Open 'Objects’ folder and select the rig and body parts (rig, head, top, bottom, feet). To select multiple things hold the Shift key and click the things from the list.
10.4. Click the 'Link/Append from Library’ button.


You can import as many actors/objects as you want to one animation.


Remember that after importing actors (Sims) and/or objects you need to switch them to the 'Pose Mode’.

11. Move actors around


To move actors you need to select the root bone. There is nothing that would indicate the right one, you have to find it yourself and remember which one is it (for reference look at the video above).
Once the root bone is selected, switch to the 'Translation Tool’ and move the sim by dragging one of the colored arrows around the selected bone.


Remember to never move objects, only actors!

12. First keyframe


A keyframe is basically a frame/pose of your animation. You can understand it as a pose that your Sim is at, before moving into another pose (keyframe).

image


The first frame has to start from the first frame position, so make sure your timeline is set to the farthest left.
In addition, the screenshot above shows your active selected frame which should be displayed as “0” (zero).

To create a keyframe you have to select all actor bones you’re creating the keyframe for. Select the rig of the actor and hover over its model with your mouse.
Press the a” key on your keyboard to select all the bones, they should light up.
Then press the i” key on your keyboard and select 'LocRot’ from the list. This saves all of the bones rotation values in a form of a keyframe.

That’s it, the first frame of your animation is done.


When you want to add more keyframes:
1. Move the active frame on the timeline few frames forward.
2. Move bones of the actor to make a new pose.
3. Select all the bones and 'LocRot’ again.

13. Delete, move and copy keyframes


To move, copy and delete keyframes you need to use the 'Dope Sheet’.

There are multiple ways you can select keyframes on the 'Dope Sheet’, but you only need one to learn the basics.
To select a keyframe (whole column with all the bones), hold the Alt key and click one of the diamond shapes with the Right Mouse Button. They will light up in orange when they are selected.

While a keyframe is selected use:
Key the g” button to move selected keyframe and place it somewhere else.
Hold the Shift key and press the “d"  key to copy selected keyframe and place it somewhere else.
Press the Delete key to delete the selected keyframe.

You can select multiple keyframes if you hold the Shift and Alt keys together and click the Right Mouse Button on keyframes.

14. Handle multiple actors


Every rig has its own timeline with keyframes which means that you can’t export one animation with multiple actors.
Every actor has to have its own animation file, so once you’re done with your animation, save and close Blender.

image


Create a copy of your animation file per actor in your animation. For example, if you have two actors (a male and a female), create two copies.
Then open each copy and remove other actors from it, leaving only one actor per animation file.
Removing an actor means removing its rig from the file. The video above shows how to remove the model too, but that is not required. To select multiple things, hold the Shift key.

15. Exporting animations


Check the 'Converting Blender Animations to Clips’ tutorial on how to turn blend files into clips and clip headers to use them in the game.

> Converting Blender Animations to Clips



Last update: 25th of August 2017

WickedWoohoo Tutorial Blender Animation WickedWhims

Creating WickedWhims Animation XML File

This tutorial will explain to you how to setup the WickedWhims Animations XML Tuning file.

If you want to know how to create animations check the ‘Creating Basic Animations In Blender’ tutorial and 'Converting Blender Animations to Clips’.

If you want to know how to create packages with animations, check the 'Creating WickedWhims Animations Package’ tutorial.


1. Download a template & tools

Pick one of the templates. Commented one is recommended for beginners.

> Commented Template - Download (Open -> Right Click -> Save as…)

> Uncommented Template - Download (Open -> Right Click -> Save as…)

This application is required:

> Modding Toolbox - Download (or use Hash Generator in Sims4Studio)

These applications are optional. If you don’t own any coloring text editor, try one out:

> Sublime Text 3 - Download

> Notepad++ - Download

> XML Validation - Open

2. Create the hash values

To setup everything, we need a plain package name, a hexadecimal hash of that name and a decimal hash of that name.
To get three of these values we will be using the 'Modding Toolbox’, so open it.

> 2.1. Type in the name of your package and make sure it contains your name.

Recommended naming: “YOUR_NAME:WickedWhimsAnimations”, example: 'TURBODRIVER:WickedWhimsAnimations’.

image

> 2.2. Copy the FNV 64 field without the '0x’ prefix.

image

> 2.4. Replace the '0000000000000000’ at the end of the XML Template file name with copied FNV 64 value.

The XML file should be originally named 'S4_7DF2169C_00000000_0000000000000000.xml’.

image

> 2.4. Switch the display result to 'Decimal’.

image

> 2.5. Copy the FNV 64 field. We will need it in the next steps. Keep the 'Modding Toolbox’ open.

image

3. Understanding the file structure

Keep in mind that this image is not up to date, it’s just representing the idea of the file structure.

image

> 3.1. Focus on the red outline presented on the image, this is the file header. It contains the file name and numerical ID that is required for it to work.

> 3.2. Focus on the purple outline presented on the image, this is all of the data of a single animation. It contains all information about the animation, actors, actor interactions, and events.

As every entry in a list, an animation is contained between the <T></T> tags.

If you want to add another animation to the file, select the whole purple section and copy it underneath the existing one.

> 3.3. Focus on the light-blue outlines presented on the image, these are actors. They contain all information about the actors and actor interactions in the animation.

Actors are inside the “animation_actors_list” field which represents a list. Every entry in a list is contained between the <T></T> tags.

If you want to add/remove actors in the animation (for solo, threesome, foursome or more) just copy/remove the whole light-blue section.

When you’re adding more actors make sure to give them unique 'actor_id’ highlighted with light-blue. The first actor should always start with ID “0” (zero) and continue by increments of one.

> 3.4. Focus on the yellow outlines presented on the image, these are actor interactions. They contain all information about the actors that are receiving an interaction from the actor in the light-blue section.

When an actor in the light-blue section is doing an interaction, that actor can interact with other actors in that interaction. The type of interaction the actor has with other actors is set in that yellow section. If you want to add more receiving actors just copy this section underneath it and set the 'receiving_actor_id’ that corresponds to the actor 'actor_id’ that should be receiving set interaction.

On the image, inside the light-blue actor with ID 0, yellow section refers to an actor with ID 1. That actor with ID 1 is receiving a VAGINAL sex category interaction from the actor with ID 0.

> 3.5. Focus on the green outlines presented on the image, these are events. They contain all information about special events that can occur during the animation.

Events are inside the “animation_events_list” field which represents a list. Every entry in a list is contained between the <T></T> tags.

If you want to add/remove events in the animation (for more effects or dynamic cum layers) just copy/remove the whole green section.

4. Setup the variables

> 4.1. The image below presents variables highlighted in red, purple, light-blue and yellow that you can modify. These variables are always between “>” “<” characters.

image

> 4.2. The first variable we will be changing is the ’s’ at line 2 in the file, highlighted in red. The template has it as '12345’. You have to change it to copied in step 2.5 FNV 64 decimal hash.

> 4.3. Second variable we’re changing is the ’n’ at the line 2 in the file, highlighted in red. The template has it as 'YourName:YourPackageName’. You have to change it to unique name you’ve typed into the Modding Toolbox.

After this point you can close the Modding Toolbox.

> 4.4.1. Variable 'animation_display_name’ is the hexadecimal hash id from an STBL file that represents the name of your animation.

This method is not used anymore so delete the whole line if you don’t know how to use it.

> 4.4.2. Variable 'animation_raw_display_name’ is a raw text that represents the name of your animation. You should be using either 'animation_display_name’ or this variable to name your animation.

> 4.4.3. Variable 'animation_author’ is the name of the animation creator. It’s probably your name.

> 4.4.4. Variable 'animation_locations’ is a list of location categories that animation can be used at. Location names are separated by commas.

Here are all available animation locations:

  • NONE
  • FLOOR
  • TABLE_DINING_SHORT
  • TABLE_DINING_LONG (this object can have wideness of 2 or 3 spaces)
  • TABLE_TV_STAND
  • TABLE_COFFEE
  • TABLE_ACCENT (this object can have different heights)
  • TABLE_PICNIC
  • TABLE_OUTDOOR
  • TABLE_OUTDOOR_UMBRELLA
  • DESK
  • BAR (this object can have wideness of 2 or 3 spaces)
  • COUNTER
  • SOFA
  • LOVESEAT
  • BENCH_OUTDOOR (this object can have wideness of 2 or 3 spaces)
  • WORKOUT_MACHINE
  • CHAIR_LIVING
  • CHAIR_DINING
  • CHAIR_STOOL
  • CHAIR_DESK
  • TOILET
  • DOUBLE_BED
  • SINGLE_BED
  • OTTOMAN
  • HOTTUB
  • SHOWER_TUB
  • SHOWER
  • BATHTUB
  • SAUNA
  • YOGA_MAT
  • MASSAGE_TABLE
  • WINDOW

> 4.4.5. Variable 'animation_custom_locations’ is a list of specific objects WWIDs that animation can be used at. Location WWIDs are separated by commas. [OPTIONAL]

To recognise what location type an object is, enable debug functions using a command 'ww.enable_debug’ (or 'ww.enabledebug’) and click on objects to display their data. You’re looking for WWID value.

Any object in the game can be used but if that object gets modified in the future it is very possible you will have to update its WWID.

> 4.4.6. Variable 'object_animation_clip_name’ is the clip name of your object animation CLIP (ClipName). [OPTIONAL]

> 4.4.7. Variable 'animation_category’ is the category of your animation that it’s displayed as.

Here are all animation categories:

  • TEASING
  • HANDJOB
  • FOOTJOB
  • ORALJOB
  • VAGINAL
  • ANAL
  • CLIMAX

> 4.4.8. Variable 'animation_tags’ is a list of sex tags that is used to give the animation context. THIS FEATURE IS NOT YET FUNCTIONAL, PLEASE DO NOT USE THIS.

> 4.4.9. Variable 'animation_loops’ is the number of times the animation will play in a row.

> 4.4.10. Variable 'animation_stage_name’ is a unique stage name of this animation that is used to trigger this animation as the next stage. [OPTIONAL]

> 4.4.11. Variable 'animation_next_stages’ is a list of stage names that are used as the next animation to play after this one ends. Stage names are separated by commas. [OPTIONAL]

> 4.4.12. Variable 'animation_allowed_for_random’ is a flag which determines if this animation will be randomly picked in sex.

> 4.5.1. Variable 'animation_actors_list’ is the section where all actors of the animation are defined.

> 4.5.2 Variable 'actor_id’ is the numerical ID that represents an actor and it is used to recognised it.

It should always be 0 for the first actor.

> 4.5.3. Variable 'animation_clip_name’ is the clip name of your animation CLIP (ClipName).

> 4.5.4. Variable 'animation_type’ is the category of the interaction actor is performing.

Here are all animation categories:

  • TEASING
  • HANDJOB
  • FOOTJOB
  • ORALJOB
  • VAGINAL
  • ANAL
  • NONE

> 4.5.5. Variable 'animation_genders’ is the gender type that this actor represents.

When using the “BOTH” type make sure to define the 'animation_pref_gender’ variable as well.

Here are all gender types:

  • MALE
  • FEMALE
  • BOTH

> 4.5.6. Variable 'animation_pref_gender’ is the gender type that this actor would preference if 'animation_genders’ is set to BOTH. [OPTIONAL]

Here are all gender preference types:

  • MALE
  • FEMALE

> 4.5.7. Variable 'animation_naked_type’ is the type of outfit part that will be undressed when performing this animation.

Here are all naked flags types:

  • NONE
  • TOP
  • BOTTOM
  • ALL

> 4.5.8. Variable 'animation_force_nude_hands’ is a flag which determines if gloves are forced to be undressed when performing this animation (0=Ignore, 1=Force) [Recommended for handjob animations].

> 4.5.9. Variable 'animation_force_nude_feet’ is a flag which determines if shoes are forced to be undressed when performing this animation (0=Ignore, 1=Force) [Recommended for footjob animations].

> 4.5.10. Variable 'animation_allow_strapon’ is a flag which determines if the actor will use a strapon even if the position is not designed for males (0=Disallow, 1=Allow).

If 'animation_genders’ is set for males while this position is used with a female, strapon will be applied no matter what.

> 4.5.11. Variable 'animation_y_offset’ is the offset of the actor position on the Y axis. [OPTIONAL]

> 4.5.12. Variable 'animation_facing_offset’ is the offset of the actor orientation (360 degrees). [OPTIONAL]

> 4.6.1. Variable 'actor_interactions’ is the section where receiving actors are defined.

It’s important to determine interactions between actors in the animation. Things like cum or pregnancy depend on it.

> 4.6.2. Variable 'receiving_actor_id’ is the numerical ID of the receiving actor.

> 4.6.3. Variable 'receiving_actor_category’ is the interaction category that the receiving actor is receiving.

Here are all animation categories:

  • TEASING
  • HANDJOB
  • FOOTJOB
  • ORALJOB
  • VAGINAL
  • ANAL
  • NONE


For example: Actor 0 is giving VAGINAL interaction to Actor 1, so Actor 1 is receiving VAGINAL interaction from Actor 0.

> 4.6.4. Variable 'receiving_actor_cum_layers’ is a list of cum types that will be applied on the receiving actor if this would be the last played animation. Cum layer types are separated by commas.

Here are all cum layer types:

  • DISABLED
  • FACE
  • CHEST
  • BACK
  • VAGINA
  • BUTT
  • FEET
  • NONE


The default value is 'NONE’ which means that the type of the cum layer is defined by the receiving category.

> 4.6.5. Variable 'receiving_actor_cum_inside’ is a flag which determines if the receiving actor should receive cum inside or outside (0=Outside, 1=Inside).

Outside will lower the chance of pregnancy by half. Inside will use full pregnancy chance. Variable by default is set to Inside.

> 4.7.1. Variable 'animation_events_list’ is the section where events are defined.

> 4.7.2. Variable 'event_type’ is the type of the event that will be triggered.

Here are all event types:

  • EFFECT
  • CUM

> 4.7.3. Variable 'event_start_timecode’ is the time as a decimal number at which the event will be triggered.

> 4.7.4. Variable 'event_end_timecode’ is the time as a decimal number at which the event will be stopped.

You can learn more about understanding timecodes in the Adding Native Events to Animations tutorial.

If the event is not intended to ever end, set the 'event_end_timecode’ as some high number like 999.

> 4.7.5. Variable 'event_target’ is the target of the event. It can be either an actor or the object used for sex.

To use an actor as a target, take its 'actor_id’ and put an 'a’ in front of it forming an ID like 'a0’, 'a1’, 'a2’ etc.

To use an object as a target, simply put the character 'o’ into the field without any numbers.

> 4.7.6. Variable 'effect_name’ is the name of the effect used for an EFFECT event. You can find the list of all effects here.

You can test events in-game by using the 'ww.play_effect <effect_name> [joint_name]’ command.

> 4.7.7. Variable 'effect_joint_name’ is the bone joint name from the actor or object rig. You can find them at the bottom-left corner of Blender 3D View when selecting rig bones.

> 4.7.8. Variable 'cum_layer_type’ is the cum type that will be applied on the 'event_target’ at the set 'event_start_timecode’ timecode.

Here are all cum layer types:

  • FACE
  • CHEST
  • BACK
  • VAGINA
  • BUTT
  • FEET

> 4.7.8. Variable 'actor_has_condom’ is used to prevent the event from running if the 'event_target’ is wearing a condom.

5. Identifying objects

> 5.1. Turn the game on and start the game.

> 5.2. Open the game console by pressing Ctrl+Shift+C.

> 5.3. Type in 'ww.enable_debug’ (or 'ww.enabledebug’) command.

> 5.4. Click on any object and use 'Debug - Get Object Data’ option.

> 5.5. Displayed notification contains WWID (numerical value) that you put in as the custom location.

In addition, the notification contains info about the object category that you might want to use instead.


Last update: 15th of October 2018

Tutorial Wicked Woohoo WickedWoohoo Sims 4 Sims4 XML WickedWhims

Creating WickedWhims Animations Package

This tutorial will explain to you how to create a The Sims 4 package with animations for WickedWhims.
If you want to know how to create animations check the ‘Creating Basic Animations In Blender’ tutorial and 'Converting Blender Animations to Clips’.

1. Download tools

> S4PE - Download (at least version 0.4.6)

> Modding Toolbox - Download (or use Hash Generator in Sims4Studio)


Note that archives for 7-Zip (.7z) should be unpacked using 7-Zip, otherwise, it may result in errors when using the unpacked files.

2. Create a new package

> 2.1. Open S4PE and create a new package (File -> New).

Unless you already have a package.

image

> 2.2. Import your animation, CLIP (.animation) and CLHD (.bnry) files to your package.

Unless you already have a package with your animations.

image

> 2.3. Double click on the CLIP file in the package to open 'Resource Details’ menu.

> 2.4. Select 'Use resource name’ and 'Rename if present’ and type in the name of your animation to be able to recognize it easier in the future.

The ’_KEY’ file will be created which keeps all names of your files in your package.

> 2.5. This is how your package should look after importing and naming files.

image

3. Create XML WickedWhims Animations File

For this, you have to check out the “Creating WickedWhims Animation XML File” tutorial on how to do this.

> Creating WickedWhims Animation XML File

4. Import XML WickedWhims animation file

Simply import the created XML file to your package.
That’s it, your package is ready. Remember to save it.
The only thing now is to put the created package into the Mods folder and test it.



Last update: 5th of May 2018

Wicked Woohoo WickedWoohoo Sims 4 Sims4 Tutorial Animation S4PE

Converting Blender Animations to Clips

This tutorial will explain to you how to convert animations from Blender to clips for The Sims 4.

1. Download Sims4Studio & S4PE

> Blender 2.70a - Download

> Sims4Studio 2.7.1.5 - Download (you need an account) [Mirror] (Sims 4 Studio Site)

> S4PE - Download (at least version 0.4.6)

If you’re using a newer version of Sims4Studio, use the recommended Blender version.

2. Import Animations

Once you’re done with your animation, you have to turn the ’.blend’ files into Clip and Clip Header files.
To do that you have to use Sims4Studio, so open it. For this tutorial, we are using version 2.7.

If at any point Sims4Studio requires Blender to be installed and you’ve already installed it, set its location in ‘Settings’ menu.

> 2.1. When Sims4Studio loads, select 'Clip Pack’ option and click the 'Animation’ button.

image

> 2.2. Choose a place to save your package. We will be opening it later.

> 2.3. Right away switch to the 'Clips’ tab.

image

> 2.4. Click the 'Import’ button and select a blender file (.blend) with the animation you want to load.

image

> 2.5. To convert multiple animations, click the 'Add’ button, select the newly added field and import another blender file.

image

> 2.6. Once you’re done importing your animations, switch to the 'Warehouse’ tab.

In my example, I have two animations - one for a male and one for a female.

image

3. Verify and set animation duration

> 3.1. Select imported Clip on the list to see its data. Focus on FrameDuration, MaxFrameCount and Duration.

In newer versions these are called TickLength, TickCount and Duration.

image

In some situations, your animation might not loop seamlessly. In that case, you may want to adjust the FrameDuration and the MaxFrameDuration with the Duration value.

> 3.2. MaxFrameCount field of your Clip has to be the same amount as a number of frames in your Blender animation. If it’s not, set it as such.

The number of frames of your animation in Blender is in the value labeled as 'End’ at the bottom of the timeline.

> 3.3. FrameDuration field has to be set as '0.03333334’, which represents the duration of a single frame of your animation.

You use this value to set your animation duration by multiplying FrameDuration with MaxFrameCount.

> 3.4. Duration field is your animation duration which is based on your MaxFrameCount multiplied by FrameDuration.

For example, if your animation has 100 frames, you multiply it by 0.03333334 to get 3.333334 which would be your animation duration.

MaxFrameCount and FrameDuration variables always have to work togther to create the Duration variable.

> 3.5. Every Clip is paired with a Clip Header which has to represent the same exact information as paired with it Clip.

You can see pairs of Clip and Clip Header by the same 'Instance’ value on the list. Make sure Clip and Clip Header have the same values entered for FrameDuration, MaxFrameCount, Duration, and ClipName.

You can consider editing these values in S4PE instead which would automatically update the Clip Header file for you.

> 3.6. Once all Clips and Clip Headers are checked and ready, you can save and close Sims4Studio.

4. Extract Clip and Clip Header files

> 4.1. Open created with Sims4Studio package using S4PE. From 'File’ choose 'Open…’ and pick your package.

image

> 4.2. Select all the CLIP (Clip) files and CLHD (Clip Header) files and export them for later use.

Now you have exported your animation files that are ready to be used directly by the game.

5. Create WickedWhims Animations Package

For this, you have to check out the 'Creating WickedWhims Animations Package’ tutorial.

> Creating WickedWhims Animations Package



Last update: 5th of May 2018

WickedWoohoo Wicked Woohoo Sims 4 Sims4 Tutorial Animation S4PE Blender Sims4Studio WickedWhims

This site is not endorsed by or affiliated with Electronic Arts, or its licencors.