Heels problems with Flower Girls (2024)

Now that FG Slot Handler has been updated, this article is a bit of a moot point.
If you are still using Skyrim pre-AE (1.5.97), your best option is probably the Misc High Heels Sitting Height Fix (link further down). And if you are on Skyrim AE or VR, you might want to check out my Heels Fix mod. It corrects actor postures when interacting with furniture, but it does not touch heel handling in Flower Girls scenes. Rather, you will see that 'Female NPC slots' and Player slots (when player is female) MCM pages now include a 'Handle High Heels' checkbox.
With that checked, the mod will apply some special scaling for kissing, and it will cancel the high heels offset during sex.

Now to the original text of the article.
Flower Girls normally strips characters, which includes footwear with heels. With this mod, heels may be retained. The problem with this, a character in heels is floated by RaceMenu up the Z axis (heel height is typically contained in the shoe .nif itself)

The Misc High Heels Sitting Height Fix mod counters this for a number of vanilla animations by lowering the torso of a character by their heel adjust amount. But it definitely has no support for FG animations. When an actor retains high heels, you get misalignments galore! During a kiss, the girl is a head taller than the guy. During sex, the girl 'floats' several inches up.

Heels problems with Flower Girls (1)

The Racemenu High HeelsFix mod is scripted to catch various events, and if actor in heels is considered sitting, removes heel adjust - effectively sinking their heels into ground. (Which foils the fixes by the mod above). You still get messed-up kisses, and any sex scene that is not preceded by a kiss (anything with furniture and threesomes) is misaligned.

Heels problems with Flower Girls (2)

With a whole bunch of trace added to both Racemenu fix and FG scene prep, I see that I can definitely pull the heel adjustment amount on an actor prior to scene start:
[07/04/2021 - 12:17:30PM] [dxaliasactor <alias Participant02 on quest FlowerGirlsScene01 (095BEF2F)>] Actor: [Actor < (FE011806)>] UndressActor(): Output: has NTPos : 0.000000, 0.000000, 7.170000
Where 7.17 is the height of her heels.
FG undress script first strips everything, including heels, then re-equips exempt items. Note Racemenu onEquip event, actor is not considered sitting at this point.
[07/04/2021 - 12:17:31PM] [dxaliasactor <alias Participant02 on quest FlowerGirlsScene01 (095BEF2F)>] Actor: [Actor < (FE011806)>] OnObjectUnequipped(): Output: Caching Item: [Form < (FE00C830)>] : Primrose Egypt Heels - Black
[07/04/2021 - 12:17:31PM] [dxaliasactor <alias Participant02 on quest FlowerGirlsScene01 (095BEF2F)>] Actor: [Actor < (FE011806)>] UndressActor(): Output: Item Primrose Egypt Heels - Black Slot Mask 128 matches an exempt slot
[07/04/2021 - 12:17:32PM] [dxaliasactor <alias Participant02 on quest FlowerGirlsScene01 (095BEF2F)>] Actor: [Actor < (FE011806)>] UndressActor(): Output: Re-Equipping [Armor < (FE00C830)>] : Primrose Egypt Heels - Black
[07/04/2021 - 12:17:32PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] OnObjectEquipped() [Form < (FE00C830)>] on [Actor < (FE011806)>] - Fixing
[07/04/2021 - 12:17:32PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] FixHeight() [Actor < (FE011806)>] Not Sitting - Removing Fix

After last scene of kissing, however, it fires off AnimationEvent on the actors, and at this point, they register as "sitting", so girl's position gets corrected to 0. Scenes NOT starting with kissing do NOT get that event. I.e. in a threesome, any actor in heels ends up floating. EDIT: 'Sitting' function actually includes 'riding'. At scene start, a marker is placed either at primary actor origin, or at furniture item being used. This marker is considered a vehicle, and actors are set to 'ride' it.
[07/04/2021 - 12:17:50PM] [dxSceneThread <FlowerGirlsScene01 (095BEF2F)>] Animating: SEQ: Dx_Kissing_Female_A2_S3 SchlongBend: -2
[07/04/2021 - 12:17:51PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] OnAnimationEvent() MTState for [Actor < (FE011806)>] - Fixing
[07/04/2021 - 12:17:51PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] FixHeight() [Actor < (FE011806)>] Sitting, pos: 0.000000, 0.000000, 7.170000
[07/04/2021 - 12:17:51PM] [dxSceneThread <FlowerGirlsScene01 (095BEF2F)>] Animating: SEQ: Dx_Lotus_A2_S1 SchlongBend: 1

As final stage of sex scene plays out and actor is about to be released, OnAnimationEvent fires again, actor still found sitting:
[07/04/2021 - 12:20:13PM] [dxSceneThread <FlowerGirlsScene01 (095BEF2F)>] Animating: SEQ: Dx_Lotus_A2_S6 SchlongBend: 3
[07/04/2021 - 12:20:15PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] OnAnimationEvent() MTState for [Actor < (FE011806)>] - Fixing
[07/04/2021 - 12:20:15PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] FixHeight() [Actor < (FE011806)>] Sitting, pos: 0.000000, 0.000000, 7.170000

Releasing actor, no longer considered sitting.
[07/04/2021 - 12:20:18PM] [dxaliasactor <alias Participant02 on quest FlowerGirlsScene01 (095BEF2F)>] Actor: [Actor < (FE011806)>] ReleaseActorFromScene(): Output: Releasing Actor...
[07/04/2021 - 12:20:19PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] OnObjectEquipped() [Form < (FE01484C)>] on [Actor < (FE011806)>] - Fixing
[07/04/2021 - 12:20:19PM] [RaceMenuHHScaleEffect <Active effect 3 on (FE011806)>] FixHeight() [Actor < (FE011806)>] Not Sitting - Removing Fix

Things get even saucier where primary actor is a female wearing heels. When FG translates a secondary actor to primary coordinates, and primary coordinates are Z-adjusted for heels, you can get some major misalignment. So any fix would require calculating no-heels position for the primary, and translating secondaries there instead. EDIT: some testing shows this to not be the case, thankfully. Actor origin point is taken before heel adjustment.

The simplest solution would be to do the same thing as RaceMenuHH Fix, and if any actor at start of scene has a non-zero NodeTransform, adjust it by its reverse before doing anything else. Then at scene end, cancel it. This will Effectively sink actors heels into ground from the moment they start kissing. This should pre-empt any shenanigans by Racemenu HH Fix. EDIT: the now uploaded HH patch does exactly that.

A cooler solution: add some extra math for the kissing phase.
Typical scale 1.0 actor mouth height is ~120.3. So if primary actor (i.e. player) is scaled 1.1 and has no heels, their mouth is at 132.33
If secondary character is wearing 7.17-high heels, their own mouth height should be 132.33 - 7.17 = 125.16, which means their scaling for the kiss is 125.16 / 120.3 = ~1.04
Then the sequence that includes a kiss:
Calculate and scale secondary using formula above.
Make sure heel height is applied
When starting the rest of the scene, scale secondary to be same as primary, and zero the heel height.
When ending the scene, restore heel height adjustments.

Here, is the illustration of what I have at the moment: advanced fix is still a work in progress, but so far, the results are encouraging:

Heels problems with Flower Girls (3)

Heels problems with Flower Girls (2024)

References

Top Articles
Latest Posts
Article information

Author: Annamae Dooley

Last Updated:

Views: 6065

Rating: 4.4 / 5 (65 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Annamae Dooley

Birthday: 2001-07-26

Address: 9687 Tambra Meadow, Bradleyhaven, TN 53219

Phone: +9316045904039

Job: Future Coordinator

Hobby: Archery, Couponing, Poi, Kite flying, Knitting, Rappelling, Baseball

Introduction: My name is Annamae Dooley, I am a witty, quaint, lovely, clever, rich, sparkling, powerful person who loves writing and wants to share my knowledge and understanding with you.