Jump to content
  • entry
    1
  • comments
    6
  • views
    1,525

How to make an animation work with Furniture Sex Framework


shyguy570

15,492 views

You need to know how to work with JSON files.

First open the SLAL json file (in data/SLAnims/json).

 

Find the entry for the animation. It looks like this:
 

Spoiler

 





    {
      "actors": [
        {
          "add_cum": 1,
          "stages": [
            {
              "id": "Leito_leito_bed_doggy_A1_S1"
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S2"
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S3"
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S4"
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S5"
            }
          ],
          "type": "Female"
        },
        {
          "stages": [
            {
              "id": "Leito_leito_bed_doggy_A2_S1",
              "strap_on": true
            },
            {
              "id": "Leito_leito_bed_doggy_A2_S2",
              "strap_on": true
            },
            {
              "id": "Leito_leito_bed_doggy_A2_S3",
              "strap_on": true
            },
            {
              "id": "Leito_leito_bed_doggy_A2_S4",
              "strap_on": true
            },
            {
              "id": "Leito_leito_bed_doggy_A2_S5",
              "strap_on": true
            }
          ],
          "type": "Male"
        }
      ],
      "id": "Leito_leito_bed_doggy",
      "name": "Leito Bed Doggy",
      "sound": "Squishing",
      "stages": [
        {
          "number": 1,
          "sound": "none"
        }
      ],
      "tags": "Leito,Dirty,Doggy,DoggyStyle,Vaginal,MF,AnimObject,DoubleBed,Furniture"
    }

 

 

 

 

Furniture Sex Framework uses a specific alignment for animations. The marker nifs in meshes/CityMarkers will show the alignments the animations need to have to line up in-game.

 

For most animations you will need to change the alignment so that it fits FSF's alignment. This is done by editing the stage data in the JSON entry.

 

	{
      "actors": [
        {
          "add_cum": 1,
          "stages": [
            {
              "id": "Leito_leito_bed_doggy_A1_S1",
			  "rotate": 90, "forward": 184
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S2",
			  "rotate": 90, "forward": 184
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S3",
			  "rotate": 90, "forward": 184
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S4",
			  "rotate": 90, "forward": 184
            },
            {
              "id": "Leito_leito_bed_doggy_A1_S5",
			  "rotate": 90, "forward": 184
            }
          ],
          "type": "Female"
        },

 

Each stage has 4 values to change alignment: "rotate", "forward", "side" and "up", usually you will only need to change "rotate" and "forward".

You need to set this in every stage for both actors.

 

One good way to figure out the alignment values is to open the animation's animObject nif in Outfit Studio and compare the position with Furniture Sex Framework's marker nif.

Translate and rotate the animObject until it aligns with the marker, and then enter those values into the JSON. (If you do this, multiply the translation by 2).

 

Capture.PNG.42c695ed2f832a6ab75e7579282aaf80.PNG

 

Every time you change the alignment values you need to refresh the SL animation registry for the changes to take affect in game.

 

Next you will need to add furniture tags to the animation so FSF can find it.

 

Tags

 

"InvisFurn" - Required tag. Needs to be on the animation for FSF to find it.

 

"Bed" - For animations that fit on a single bed.

 

"DoubleBed" - For animations that fit on a double bed. Nearly all animations that work for single beds also work for double beds, so usually you will use both.

 

"Chair" - For animations that fit on this exact chair shape:

Capture.PNG.231ca67c87452deaf70e79e37c5ba2d6.PNG

The chair is guaranteed to not have armrests and have that big hole in the backrest.

 

"ChairGeneric" - For animations that fit on any chair with a high backrest. The chair in-game might have armrests, so don't use this tag if the animation will clip into them.

Capture.PNG.e24480d2b579d90256e7f9d44c119f0e.PNG

 

"ChairLowBack" - For animations that fit on a chair with a low backrest. Don't use this tag if the animation has characters leaning high up on the backrest.

 

"ChairBackless" - For animations that fit on a chair with no backrest. Don't use this tag if the animation has characters leaning/touching the backrest.

 

"ChairNoble" - For animations that fit on a noble chair.

Capture.PNG.95cd26e1d862d8268dec8454cf084742.PNG

 

"Bench" - For animations that fit on a bench that is long and has no backrest. Benches are the same height as chairs so animations that don't use the backrest will usually fit.

 

"BenchCommon" - For animations that fit on a bench with this specific length. Animations that rely on the endcap edges of a bench should only use this tag.

Capture.PNG.d13dc1a8b110d058e10c4c36576e77f5.PNG

 

"BenchNoble4" - For animations that fit on this specific noble bench.

Capture.PNG.9399c2b5a0409320c323a5c0ef2af320.PNG

 

"Table" - For animations that fit on a table surface with a certain height. Many in-game tables use this height, including armor workbenches.

Capture.PNG.0c566b8bb80cdd7a22d17749f093afa7.PNG

 

"Counter" - For animations that fit on surfaces the height of inn/shop counters.

 

"Workbench" - For animations that fit on a surface the same height as an alchemy/enchanting table. Note that this height is slightly different than a normal table.

"AlchemyWB" - For animations that fit on an alchemy table.

"EnchantingWB" - For animations that fit on an enchanting table.

 

Alchemy and enchanting tables have the same height, but alchemy tables have a big alembic on them. Don't use the AlchemyWB tag if the animation clips into the alembic.

 

"Throne" - For animations that fit on the jarl throne shape found in most holds.

Capture.PNG.1d0e5e62cb579fc718ea9f9b945d04dc.PNG

 

"ThroneRiften" - For animations that fit on the riften throne shape.

Capture.PNG.a27e58f4e8f93f805a69bf5e5bd9aaf6.PNG

 

"ThroneNordic" - For animations that fit on the thrones found in nordic ruins. This throne shape is very different from other thrones.

Capture.PNG.4a832803d3dcc6a623b69a9dec852394.PNG

 

"Wall" - For animations that align against a flat wall. The wall must be completely flat all the way down to the floor.

 

"WallBaseboard" - For animations that align against a flat wall with a protruding baseboard. Don't add this tag if the actors get close to the wall near the ground.

 

Use tags for all furniture shapes that an animation fits with. You'll usually have to test in-game to see what furniture types work.

 

6 Comments


Recommended Comments

Thanks a lot! It works! Is there a method to select an inanimate objects in the world and mark them as a furniture ? Since most of the invisible furniture animations can be used on multiple areas from fences to haystacks, on barrels, half walls etc

Link to comment

plus if theres 1 thing in a stage does that have to have it sorry just confused an wish theres screen shot showing where put tags

 

Link to comment
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use