Jump to content

Working with SCLP files [Info + Tutorial]


FiftyTifty

Recommended Posts

Now that I've made a properly working .sclp creator, along with Zilav's .sclp import script for FO4Edit, I ought to get this info noted for posterity.

 

 

What are SCLP Files?

 

SCLP files are simple, plain text files that have XYZ scaling values for certain bones. The bigger the values, the larger the triangles that use them. The smaller the values, the smaller the triangles. If you pay attention when swapping under armour, such as the vault suit and raider leathers, your equipped armor pieces will change in size. This is due to the difference in bone scales.

 

The bones that are used by the engine, to scale armour pieces over underarmour, are denoted with the suffix _skin. Other bones should not be added to the .sclp file.

 

 

 

How does the game use SCLP Files?

 

The .sclp files themselves are not used by the game at runtime. Instead, they are added to armor addon records ahead of time. The .sclp file's data gets imported to an .esp/.esm file, through the Creation Kit or FO4Edit.

 

 

 

How to create SCLP Files

 

It's actually fairly simple. As I use 3ds Max, I can't guarantee that other 3D packages will export the bone data as text in the same format. Other users would have to see for themselves and report back.

 

Install the nif import plugin for 3ds Max 2015/2016. Note that if your 3ds Max install is in a folder other than C:\Program Files\Autodesk\..., the installer will place the plugin there anyway. Simply cut and paste it to where your actual install is located. The link: https://github.com/figment/max_nif_plugin/releases

 

Load 3ds Max, and the following .nif files in order:

 

- Skeleton.nif

 

- The nif file for the outfit, uncheck importing the skeleton when prompted.

 

- The nif files for a full set of heavy armour, also without importing the skeleton. For example, import these files for a full set of heavy metal armour: FArmL_Heavy_1.nif, FArmR_Heavy_1.nif, FLegL_Heavy_1.nif, FLegR_Heavy_1.nif, & FToroso_Heavy_1.nif

 

Once imported, select the outfit and collapse the skin modifier (modifier list -> right-click Skin -> Collapse to). This avoids the outfit from being scaled. I also recommend freezing the outfit object.

 

Before you modify the scales, be sure to select all of the skeleton bones and export them as an ASCII file (.ase). This gives us the default, un-modified values for the bones. These will later be compared to the modified bones. You only need to export the unmodified skeleton once.

 

Use the following settings when exporting:

 

ASE_Export.png

 

Remember to often export and import the data into the game, so you can see what will need fine-tuned in 3ds Max.

 

Now use my program to generate a .sclp file, from the source .ase file (the unmodified skeleton), and the modified .ase file (modified skeleton). You need only download the .exe from here: https://github.com/MajinCry/Fallout-4-SCLP-From-ASE

 

Use this Fo4Edit script by Zilav to import the .sclp file to an armor addon record in Fo4Edit. : https://pastebin.com/raw/0SWSbm04

 

~Fin~

 

 

 

Bugs and pitfalls

 

1. The first big caveat, is that the Creation Kit's SCLP importer is broken. Don't use it, it messes up the values for certain bones.

 

 

2. The second, is that there are particular scaling bones that armour pieces use, but are ignored by the engine. Certain scales are also ignored for some bones. I'll update the list as I discover them. An asterisk indicates the bone itself is ignored, #0 means the Z scale is ignored, #1 = Y scale, #2 = X scale. Suffixed is where on the body they affect:

 

 

 

==Legs==
LLeg_Calf_Low_skin - [#0] - (Low Infl) Middle Of Calf + Shin
RLeg_Calf_Low_skin - [#0] - (Low Infl) Middle Of Calf + Shin

LLeg_Calf_skin - [#0] - (Low Infl) Top Of Knee + Calf + (Low Infl) Top Of Shin
RLeg_Calf_skin - [#0] - (Low Infl) Top Of Knee + Calf + (Low Infl) Top Of Shin

LLeg_Thigh_Fat_skin - [#0] - (Low Infl) Bottom Of Thigh + (Med Infl) Top Of Knee + (Low Infl) Middle Of Knee

RLeg_Thigh_Fat_skin - [#0] - (Low Infl) Bottom Of Thigh + (Med Infl) Top Of Knee + (Low Infl) Middle Of Knee

LLeg_Thigh_Low_skin - [#0] - (Low Infl) Top Of Thigh + (Med Infl) Middle of Thigh + Bottom of Thigh + (Low Infl) Top Of Knee

RLeg_Thigh_Low_skin - [#0] - (Low Infl) Top Of Thigh + (Med Infl) Middle of Thigh + Bottom of Thigh + (Low Infl) Top Of Knee

LLeg_Thigh_skin - [#0] - (Low Infl) Bottom Of Hip + Thigh + (Low Infl) Bottom Of Thigh
RLeg_Thigh_skin - [#0] - (Low Infl) Bottom Of Hip + Thigh + (Low Infl) Bottom Of Thigh


==Torso==

RButtFat_skin - [#0] - Butt
LButtFat_skin - [#0] - Butt

Pelvis_Rear_skin - [#0] - Back Of Groin + Back Of Hips + Buttocks

Pelvis_skin - [#0] - Lower Abdomen + Side Of Hips + Groin

Belly_skin - [#0] - Bottom Of Ribcage + Side Of Waist + Top Of Groin

Spine1_skin - [#0] - Bottom Of Ribcage + Waist + Groin + Top Of Thighs

Spine1_Rear_skin - [#0] - Side Of Wasit + Below Ribcage + Middle Of Butt

Spine2_skin - [#0] - Middle Of Pecs + Bottom Of Armpits + Ribcage + Middle Of Belly

Spine2_Rear_skin - [#0] - Below Shoulder Blades + Bottom Of Armpits + Top Of Butt

UpperBelly_skin - [#0] - Bottom Of Pecs + Bottom Of Ribcage

Chest_Rear_Skin - [#0] - Shoulder Blades + Back of Armpits

Chest_skin - [#0] - Pectorals + Armpit + Front Of Neck

LBreast_skin - [#0] (#2 = Z) - Breast + Top Of Shoulder
RBreast_skin - [#0] (#2 = Z) - Breast + Top Of Shoulder

Chest_Upper_skin - [#0] - Pecs

Neck_Low_skin - [#0] - (Low Infl) Side Of Neck + Back Of Neck + Middle Of Shoulder Blades

Neck_skin - [#0] - Neck + Scalene Muscles

Neck1_skin - [#0] - (Low Infl) Side Of Neck + (Low Infl) Back Of Neck


==Arms==
RArm_UpperTwist1_skin - [#0] - Shoulder
LArm_UpperTwist1_skin - [#0] - Shoulder

RArm_UpperTwist2_skin - [#0] - Whole Bicep
LArm_UpperTwist2_skin - [#0] - Whole Bicep

RArm_UpperArm_skin - [#0] - Upper Elbow + Lower Bicep
LArm_UpperArm_skin - [#0] - Upper Elbow + Lower Bicep

RArm_ForeArm1_skin - [#0] - Whole Elbow
LArm_ForeArm1_skin - [#0] - Whole Elbow

RArm_ForeArm2_skin - [#0] - Lower Elbow
LArm_ForeArm2_skin - [#0] - Lower Elbow

RArm_ForeArm3_skin - [#0] - Forearm + Wrist
LArm_ForeArm3_skin - [#0] - Forearm + Wrist

RArm_Collarbone_skin - [#0] (#1 = Y Axis, #2 = Z Axis) - Nipple + Side Of Neck + Shoulder Blade + Back Of Ribcage

LArm_Collarbone_skin - [#0] (#1 = Y Axis, #2 = Z Axis) - Nipple + Side Of Neck + Shoulder Blade + Back Of Ribcage

RArm_UpperFat_skin - [*]
LArm_UpperFat_skin - [*]

 

 

 

 

3. There is a discrepancy between the bone scaling you see in 3ds Max, and the game itself. Possibly due to the race records containing bone scaling data (as well as rotation & position data) themselves, but that's just a guess.

 

To demonstrate, compare the armour pieces in these two images:

 

 

 

Greaser_Jacket_Armour_3ds_Max.png

 

 

 

 

 

Screen_Shot6.png

 

 

 

As a result, you must often compare the modified scaling data between 3ds Max & Fallout 4, as you go through the _skin bones.

 

 

5. Fallout's XYZ axis are different from 3ds Max's. In the bone data for the ARMA record, Value #0 = Z. Value #1 = Y. Value #2 = X.

Edited by FiftyTifty
Link to comment
Share on other sites

Dang, nice! Don't suppose you have any plans to release a mod like this for the Vanilla/DLC layered armor sets do you?

I may try my hand at resizing a single piece of armor I've always wanted to fit over a particular piece of clothing, but if you've got something in the works already...

Link to comment
Share on other sites

  • 6 months later...

Great work. Unfortunately, I can't seem to get your tool to work.

 

Opening up the .exe in notepad shows only this '../../Visual Studio 2010/Projects/Fallout 4 - SCLP From ASE/Fallout 4 - SCLP From ASE/bin/Release/Fallout 4 - SCLP From ASE.exe'.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...