Jump to content

SexLab Cumshot Addon - Now with transgender support


wpg97541

Recommended Posts

I've made wpg97541's SexLab integration scripts work with v1.20+. Instead of editing SexLab core scripts directly, this mod uses hooks, so it should work with future SexLab versions too.

It's a BAIN compatible archive, and installs with Mod Organizer as well. Select the common files and one of the cumshot meshes, depending on the body replacer you use.

Don't expect anything fancy - this version does exactly what wpg's does, no more, no less. I still plan to add some refinements, like not to display the cumshot for internal ejaculations. But since I'm an absolute noob at Papyrus scripting and don't have much free time, it might take a while.

Also, the cumshot mesh doesn't get equipped on the player while in tfc (free camera) mode. I think that's part of a problem with tfc in general - did you notice that the player only redresses after sex when you toggle back to normal cam? I don't know a way around this.

>> Attachment removed - please use updated version below <<

Link to comment

Update:

  • Cumshots are no longer visible for internal ejaculations, i.e. at the orgasm stage of animations tagged with the "Vaginal", "Anal", or "Oral" keywords.
  • The cumshot mesh now gets properly equipped on the player character while in tfc mode. QueueNiNodeUpdate() did the trick.
  • Created a .seq file to make sure the script starts for everyone. (For me, it worked without it, but better play safe.)
  • Tweaked the cumshot .nif (SOS version) to make it align better with the schlong meshes. This is sort of a compromise, since the Average Schlong is modeled higher around the bone chain than the other two, which makes it impossible to match everything perfectly.

 

SexLab Cumshot.7z

 

That's all I can do. It's a fully functional addon for SexLab now, with only minor flaws. Because this is essentially wpg97541's work, I'm leaving it as an attachment in his thread, rather than uploading it to the Downloads section. Hopefully, if wpg returns, he will continue working on it, especially on the cumshot mesh, which is beyond my abilities.
 

Link to comment

Update:

  • Cumshots are no longer visible for internal ejaculations, i.e. at the orgasm stage of animations tagged with the "Vaginal", "Anal", or "Oral" keywords.
  • The cumshot mesh now gets properly equipped on the player character while in tfc mode. QueueNiNodeUpdate() did the trick.
  • Created a .seq file to make sure the script starts for everyone. (For me, it worked without it, but better play safe.)
  • Tweaked the cumshot .nif (SOS version) to make it align better with the schlong meshes. This is sort of a compromise, since the Average Schlong is modeled higher around the bone chain than the other two, which makes it impossible to match everything perfectly.

 

attachicon.gifSexLab Cumshot.7z

 

That's all I can do. It's a fully functional addon for SexLab now, with only minor flaws. Because this is essentially wpg97541's work, I'm leaving it as an attachment in his thread, rather than uploading it to the Downloads section. Hopefully, if wpg returns, he will continue working on it, especially on the cumshot mesh, which is beyond my abilities.

 

 

I tested the previous version (SOS version you posted on 10/29) and it was working fine except that when the ejac event ended, the male body (NPC) went invisible for a moment, then faded back in.  Happened with every male tested.  I'll test it again tonight with the new version and see if I can replicate it.

Link to comment

Just installed this mod, and it's working great so far. Excellent job.

 

Well, on the men anyhow. My character is transgender female, and I have a mod already installed to allow her to use male animations during sex, but the ejaculation effect won't fire on her. How difficult do you think it'd be for me to edit this mod and get it to recognize her (the player) as male for it's purpose? I don't really have much modding experience, so if it's something pretty technical, I might be SOL until I can learn more or someone else pulls it off. No pun intended.

 

(I'm using b3lisario's equippable schlongs for females and the lite version of SOS. Could I somehow edit the schlong itself to add a script that, when it's equiped, forces all gender checks to return as male? Maybe as a spell effect?)

Link to comment

Just installed this mod, and it's working great so far. Excellent job.

 

Well, on the men anyhow. My character is transgender female, and I have a mod already installed to allow her to use male animations during sex, but the ejaculation effect won't fire on her. How difficult do you think it'd be for me to edit this mod and get it to recognize her (the player) as male for it's purpose? I don't really have much modding experience, so if it's something pretty technical, I might be SOL until I can learn more or someone else pulls it off. No pun intended.

 

(I'm using b3lisario's equippable schlongs for females and the lite version of SOS. Could I somehow edit the schlong itself to add a script that, when it's equiped, forces all gender checks to return as male? Maybe as a spell effect?)

 

I'm looking into it.

 

You could replace the GetSex() calls in my script with SexLab's own GetGender() function, which does an extended check. But then your character still has to be put into GenderFaction, rank 0, or get the keyword "SexLabTreatMale" attached. Don't know if the female schlong addon does this automatically, or how to do this in the console.

Link to comment

Okay, here is an updated version with transgender support, for both males and females. You only need to download this if you're playing a futa or a "trap" character, or if you have NPCs of that kind in your game. Also this is not a standalone feature, you also need meshes (and when using SOS, a skeleton with genital bones for females) from another mod.

Because there are so many different ways a female penis could be implemented (as an SOS addon, or welded to the body mesh, or as a strapon variant...), there's no easy way to determine if a character is transgender or not. So you have to tell SexLab manually, using the console.

Open the console, then type help transgender. You should see "Enable Transgender", and "Disable Transgender", each with a FormID next to it. For the player character, type player.additem xxxxxxxx 1. Replace the x's with the FormID you see next to "Enable Transgender". If you want to mark a NPC as transgender, click on him/her while the console is open, then type additem xxxxxxxx 1 (again replace with the FormID for "Enable Transgender").

That's it. Females will now use male animations and ejaculate, males will use female animations and won't ejaculate.

It may sound complicated, but you only need to do it once per character, it gets remembered in your savegame. You can use the "Disable Transgender" item in the same way if you want to return a character's gender to normal.
 

SexLab Cumshot - Transgender support.7z

 

 

 

So I only need to install Erstam version. Not both Erstam's and the original

 

Correct.
 

Link to comment

Okay, here is an updated version with transgender support.

 

 

Holy crap, I was all geared up to tear into the CK when I got home tonight, and here you've already got support implimented? You are awesome. Works like a charm too. I'm gonna go hit up b3lisario's TG mod threads and post a link back to here, if you don't mind. I'm sure others will want to know it's available.

post-209844-0-14855500-1383366541_thumb.jpg

post-209844-0-80045600-1383366781_thumb.jpg

post-209844-0-85874400-1383366791_thumb.jpg

post-209844-0-68083600-1383366801_thumb.jpg

Link to comment

I'd recommend for this to have a new thread in the downloads section so I may add it to the SexLab Index.

 

Nice work btw judging from the pics above if they aren't photoshopped :)

 

P.S.

I should really get some sleep...been watching movies for 4 hours straight and it's 5 minutes to midnight.

Link to comment

I'd recommend for this to have a new thread in the downloads section so I may add it to the SexLab Index.

 

Well, as I already stated, this is basically wpg97541's work, from the original concept to the cumshot mesh itself. It would feel wrong for me to upload and start a thread for it under my name, credits notwithstanding.

 

I've sent a PM to wpg and plan to wait for a few weeks. In the meantime I'm going to polish the mod further (the solution with the added transgender item is a bit wonky, and it doesn't delete itself as intended), and add support for more male body meshes if I have the time.

 

However, if I don't get a reply from wpg, what would be an appropriate time to wait before I fully take things into my own hands? If anyone has experience with situations like this, please tell me.

 

Link to comment

 

I'd recommend for this to have a new thread in the downloads section so I may add it to the SexLab Index.

 

Well, as I already stated, this is basically wpg97541's work, from the original concept to the cumshot mesh itself. It would feel wrong for me to upload and start a thread for it under my name, credits notwithstanding.

 

I've sent a PM to wpg and plan to wait for a few weeks. In the meantime I'm going to polish the mod further (the solution with the added transgender item is a bit wonky, and it doesn't delete itself as intended), and add support for more male body meshes if I have the time.

 

However, if I don't get a reply from wpg, what would be an appropriate time to wait before I fully take things into my own hands? If anyone has experience with situations like this, please tell me.

 

 

 

Typcially when you feel like you've done so much yourself to the point where it doesn't really resemble the original authors work and the original author is MIA or simply dropped it you ask them, I'd go ahead and reupload. Of course, I'd wait a bit for a response.

But he hasn't been online in over two months and hasn't posted anyting for four months. I don't think you'll get a response anytime soon. I think it's safe to assume you can post it yourself. If he does come back and gets all mad about you posting it just simply remove the file. This isn't Nexus where you get insta-banned.

 

From the looks of it, you've done plenty of work yourself.

 

Link to comment

Sorry that I disappeared there.

 

I am going to school besides working and haven't had any free time to work on this lately. I'm really glad that Erstam has picked this up and run with it.

 

He is free to go ahead and post this himself and update it himself. I thought I was going to have more free time than I do. I would like to be credited in some way in the readme or something, based on original work by, etc.

 

I am also willing to share my blender files with Erstam along with the step-by-step instructions that I developed for making the cumshot animations. It should allow him to make his own variations/alternate versions or adjustments. I was extremely detailed in my notes so that if I came back to it after months, I could remember what to do.

 

The biggest reason I didn't get this done was I wasn't able to find a solution for the different body weights.

Link to comment

GETTING A CUSTOM CUMSHOT FROM BLENDER TO ANIMATED NIF:

 

(assume blender 2.49 and nif export is installed)

 

Instructions for cumshot export:
 - in Blender, select only the cumshots you will be exporting first, otherwise you will export extra garbage along with them.
 - Export from blender with version setting 20.2.0.7 (do not click fallout 3 as in other tutorials). Export Geometry+Animation, Force DDS Extension, Simplify Geometries, Stich Strips, Smoothen Inter-object seams, export skin partition, and combine materials to increase performance should be selected. Open this file in nifskope
 - Play the file in nifskope to make sure that you have exported the entire thing - the animation should play back without issue

Cleanup of export:
 - right click on 0 NiNode (value is "Scene Root"), go to Block, click Convert. Then, go to Bethesda, click BSFadeNode. This should turn the root NiNode into a BSFadeNode.
 - Right click on NiTextKeyExtraData and choose Block->Remove
 - In the View menu, under Block List, choose "Show Blocks in List"
 - Select the NiHeader block
 - In the Block Details window below, set "User Version" to 12, then set "user version 2" to 83
 - In the View menu, under Block List, change back to "Show Blocks in Tree"

Add the Inventory Marker:
 - Open original cumshot.nif in another nifskope window. Right click on original file's BSInvMarker and choose Block->Copy Branch
 - right click on new BSFadeNode that you just made in the new file and choose Block->"Paste Branch"
 - select the new BSInvMaker that just pasted, in the Block Details tab below select the "Name" field, right-click and choose "Edit String Index"
 - Type "INV" without the quotes as the string name and choose OK
 - Now, in the main "Block List" window, you should see next to BSInvMaker the value "txt INV"

Add the BSX Flags:
 - In the window of the original cumshot.nif, right click on the original File's BSXFlags and choose Block->Copy Branch
 - Right click on the BSFadeNode of the new file and choose Block->Paste Branch
 - Select the new BSXFlags that just pasted, in the Block Details tab below you should see Integer Data is 202. Right click on "Name" in Block Details" and choose "Edit String Index"
 - Type "BSX" without the quotes as the string name

Add the NiStringExtraData
 - The NiStringExtraData is used to associate the animation with a particular bone. The "zero point" in the animation will be the center of the selected bone.
 - In the window of the original cumshot.nif, right click on NiStringExtraData and choose Block->Copy Branch
 - Right click on the BSFadeNode of the new file and choose Block->Paste Branch
 - Under Blcok Details, right click "Name", choose Edit String Index
 - Type "Prn" without the quotes as the string name and choose OK
 - Under Block Details, right click String Data, and choose Edit String Index
 - Here we will type the name of the bone that we want to link the animation to. With the vanilla body or regular XPMS or most other skeletons, this will have to be pelvis bone. The name of the Pelvis bone is "NPC Pelvis [Pelv]". If you are using Schlongs of Skyrim, the most compatible choice is the "NPC Genitals06 [Gen06]" bone at the end of the penis - since the Penis
can move up and down with Schlongs of Skyrim, this works better than using the Pelvis method with SoS. Keep in mind that if you do NOT use SoS, the only option is the pelvis bone.
 - You will need to design the animation differently for pelvis bone vs. penis bone - the zero point where the XYZ planes meet will always be the bone you are using. If you have done
   it the wrong way, you will need to re-export from the original.

Before adjusting the cumshot animations:
 - You should have one NiNode per cumshot - these are named from your Blender file. It is best for troubleshooting purposes to have given these names that allow you to differentiate them
 - Ex. in my Blender file, I have 5 shots named "Cumshot 1" through "Cumshot 5" - this order is only for me, in case I need to tell which is which.
 - Within this NiNode, there are two important nodes
     - NiTransformController - controls the animation and movement of that cumshot - how does it move, and when it moves, should it loop repeatedly or play only once
     - NiTriStrips - has the cumshot's mesh and texture information
 - There seems to be an extra NiTriStrips exported with each cumshot that is unnecessary - it lacks normals, tangents, bitangents, etc. This should be removed from each Cumshot NiNode if present, as per the step below.

Clean extra unnecessary NiTriStrips instances:
 - Expand the first Cumshot NiNode
 - If you see two NiTriStrips objects, expand them both. You should find one has several more children (NiMaterialProperty, NiSpecularProperty, etc) missing from the other.
 - Right click on the NiTriStrips that has fewer children (probably only has NiStencilProperty and NiTriStripsData) and choose Block->Remove Branch
 - Repeat for each Cumshot NiNode until you have only one NiTriStrips per NiNode - always keep the one that has more children. Please note that these children themselves are not important, but the NiTriStrips that has NiStencilProperty and NiTriStripsData as its only children is also the one lacking Normals which is the deal breaker. You can
also find this out by viewing the NiTriStripsData for each, but you will see quickly that the one that has Normals is always also the one with more children.
 - Now we should have only NiTriStrips instances that have proper Normals, the next step is to delete the skyrim-incompatible nodes.

Clean skyrim incompatible nodes:
 - Expand the first NiNode's TriShape
 - Right click on the following and choose Block->Remove Branch (or just Remove if there is no Remove Branch option)
    - NiTexturingProperty
    - NiStencilProperty
    - NiSpecularProperty
    - NiMaterialProperty
 - After you have cleaned those properties, the only remaining child for every NiTriStrips is NiTriStripsData
 - Go through the other NiNode's TriShape's. You will need to remove the same properties from each. In mine, deleting them from one deleted them from all, so I only had to remove them from one.
 - Now, every TriShape should have a TriShapeData as its only child

Add the Skyrim version of the properties we removed:
 - In the original cumshot.nif, you will find a BSLightingShaderProperty (inside an NiTriStrips object). Right-click that property and choose Copy Branch
 - In the new version, right click in the first NiTriStrips and choose Block->Paste Branch to add the BSLightingShaderProperty
 - if the BSLightingShaderProperty did not properly appear as a child when you pasted, you probably did not set the "user version" to 12 or "user version 2" to 83
 - Make sure that Shader Flags 2 does not have SLSF2_Vertex_Colors - if it does, remove the flag from Shader Flags 2
 - Make sure Texture Clamp mode is WRAP_S_WRAP_T. If it is not, change it to that.
 - If you had to change either or both setting above, select this BSLightingShaderProperty and copy Branch again so that you don't have to change these next time you paste
 - Now, every NiTriStrips should have a TriShapeData *AND* a BSLightingShaderProperty as its children


Configure Cumshot Animation Cycle Settings:
 - Each individual cumshot can be looped or played only once. If played only once, it will be the same as the original animation. I assume you will want to do this, although you can experiment with loops.
 - The entire animation can either a) continue from where it left off when unequipped and reequipped, or b ) restart when unequipped and re-equipped. B is certainly preferable but appears
   to be an undocumented NIF setting.
 - The relevant flag values are:
      12 - Regular Clamp mode - The animation will play through once and stop at the end. It will not restart until the state of the objects is reset (reequipping the item, removing it,
                                 etc. DO NOT reset the state, so you would see the animation once and only once, unless perhaps walking into a new game area resets it).
      8 - Regular Cycle mode - The animation will play through on loop. If terminated early, the animation will restart from the point it was terminated at. With the cumshot animation,
                               this causes the cumshots to restart at the point when they were last unequipped (i.e. if a cumshot is in midair, it will suddenly reappear in midair
                               at the same point the next orgasm, when the cumshot is reequipped).
1001101      77 - Clamp w/Restart on ReEquip (undocumented) - Works like 12, except it WILL restart the animation upon reequipping. This is what I normally use for cumshot animations.
1001001      73 - Cycle w/Restart on ReEquip (undocumented) - Works like 8, except that it WILL restart the animation upon reequipping rather than continuing from the termination point. If
                                                       you wish to experiment with loops for cumshots, this setting would be preferable to 8.
 - If unsure what to use, set the NiTransformController Flags value for each NiTransformController to 77.


Configure Cumshot animation end times:
 - Since each cumshot has its own animation, each has its own start and end time. The start time for each will be the same, but the stop times will be different. It is best to equalize
   these, especially if you want to set up one of the Cycle modes because then your cumshots will go out of phase with each other. By equalizing them, you are ensuring that the animation
   will always play back in a consistent way rather than things ending up like all 5 cumshots firing off simultaneously because their timings have caused them to shift out of phase.
   (i.e. if cumshot 1 is 6 seconds and cumshot 2 is 9 seconds, and both are cycling, the second cycle of cumshot 2 will have a simultaneous firing of cumshot 1 (9*2 = 6*3)
 - First, play the animation in Nifskope. Decide how long you want the animation to be. Longer orgasm animations in sexlab last up to 12.0 seconds, so that is probably my suggested
   maximum length, but you might want to make a shorter one for the shorter orgasm animation durations, otherwise you will get cumshots flying while the character is falling, with
   very odd looking physics because the cumshots have the physics "baked in" via Blender assuming the character is upright.

 

Create a parent ninode for the Urethra (piss slit):

 - Right click the BSFadeNode and choose Block->Insert->NiNode
 - Select the BSFadeNode in the block details tab below, increase Num Children by one (in mine this is 5, increased to 6)
 - Click on the green circular arrows next to Children. A new children slot will appear with "None" in it.
 - In this None slot, type the number you see to the left of the NiNode you just created (in my case, this is 1). Press Enter
 - In the block list tree, the NiNode has now moved so it is a child of BSFadeNode
 - Select the NiNode you just made and set its Num Children to the number of cumshot NiNodes that were in the file (5 in my case) and click the green arrows beside "Children"
 - Expand "Children" and you will find several None slots. In each None slot, type the number found to the left of the NiNode's for the cumshots (in my case, 5, 13, 21, 29, and 37)
 - If you now expand your new NiNode in the block list (by clicking on the + symbol) you should see the cumshot NiNodes are now children of this NiNode. We now want to remove these
   children from the BSFadeNode so that they are not duplicated
 - Select BSFadeNode, make note of the number to the left of the NiNode you had newly created, and change Num Children to 1. Click the green arrows next to Children.
 - You will now have only one slot. Click in it and type the number for the NiNode that you had newly created (in my case, 1) and press enter. You've now added a new NiNode that
   is the parent of all cumshot NiNodes
 - Select this new NiNode and in Block Details, right click Name, choose Edit String Index and give it a name (ex. 'Urethra')

 - This parent ninode is useful for allowing you to make transform/rotation adjustments to adjust for different penis types without having to adjust things in blender.

 

Fix Upside-down Penis Bone (SOS):
 - If you choice to bind your animation to NPC Genitals06 [Gen06] as the reference bone, you need to flip the entire animation upside down, or else the cumshots will fly forward and upward instead of forward and downward.
 - The ninode we just created for urethra is useful for this purpose. Go into the ninode.
 - To flip it upside down, under Rotation, set P to 180 (degrees). It will probably save as Y -180 P 0 R-180, that is fine. IT will appear upside down in nifskope playback but in game will be correct.

 - You might also have to adjust the translation for certain penis types - moves the urethra backward, forward, up or down. That should be easily possible given the way that the NIF is structured. It appears I have applied a translation of X 0.0 Y 2.65 Z -0.7

 

Compensate for Genitals bone angle (SOS only):

 - Genitals06 bone is angled upward, causing the cumshots to shoot at too high an angle since they are already angled upward.

 - The solution is nifskope - for SOS you need to correct the angle in nifskope after the blender export by adjusting the rotation there (i.e. if your blender file has them tilted upwards 17 degrees, you need to tilt them back down by the same amount so that in nifskope they appear to be launching horizontally, because they will be tilted back up by the Genitals angle in SOS. The rotation angle under the same ninode you made above in "fix upside-down penis bone", go to the same rotation controller that shows Y -180 P 0 R -180 and adjust the yaw to level out the cumshot (for me, this meant changing Y to -163).

(NOTE: If the cumshots were animated horizontally in blender, gravity pulls them down and they look fine in blender, but then the in-game penis upward angle not only tilts the cumshot, but also moves the gravitational center of the planet forward by the angle of the bone movement. This makes the physics look weird, since gravity then appears to be pulling them down and forward rather than just down. The cumshots have to be therefore angled in blender so that the burnt in physics has approximately the correct center of gravity based on the tilt of the penis when it would be at the angle of ejaculation. This angle is then removed in the nif by making a counteradjustment, but then re-instated by the bone angle itself once in game. In this way, the physics are correct).

Link to comment

WORKING WITH THE BLENDER GAME ENGINE FOR CUMSHOT PHYSICS:

 

The tough part of doing the cumshot animations was figuring out the blender "Game Engine" for physics.

 

(Note: change your physics settings to 12 fps first for bullet physics, with the default the cumshots will look slow motion - see the physics-settings.png attached for those settings.)

 

Here are the Blender game engine settings for reproducing the cumshots. The fifth cumshot does not use the game engine since it just sticks out, so it just has the physics turned off.

 

The settings do the following:

 

Stage 1) For a certain number of frames, game physics is suspended for that object (using "Suspend Dynamics"), so it is unaffected by gravity

Stage 2) After a certain number of frames, game physics is enabled for that object, then for a certain number of frames, a force is applied to the object

Stage 3) For a certain number of frames, a slightly weaker force is applied to the object

 

That is why there are 3 actuators and 3 controllers. They are in a funny sequence, look at the Delay and Dur for each actuator to see what is triggered first. Ex. For cumshot1, "sensor 1" is stage 1, then "sensor 2" is stage 2, then "sensor" is stage 3.

 

Having two different simple motions per object was necessary because the game appears to "build up" gravity while game physics is turned off, so you need to have slightly stronger force in stage 2 to counteract the gravity that has built up to stop it from suddenly dropping like a rock straight out.

 

Because of that, the settings are sometimes trial and error. Too much torque and the cumshot goes into a weird end-over-end spin, but if you use none, it is flat and doesn't feel like gravity is pulling the front end down.

 

The gameengine-* screenshots are the game engine settings scrolled down.

 

Select the first frame and start the engine - the animation will get baked in frame by frame. It's nearly impossible to edit when baked in like this since every frame has data, except you can add scaling after the fact with manual keyframe entry since that is not baked in with the physics (I do this). If you need to make changes to the motion or spin of the cumshot, you need to edit the actuator "simple motion" settings and rerun the game engine from first frame.

 

NOTE: If you need to redo the physics, and you have manually added keyframes for scaling etc for those cumshots, go back to the original file before you have manually added any keyframes, and rerun the engine. You can get weird results otherwise and then the cumshots go spinning off in strange directions in strange ways. Don't use the engine if you have manually animated some aspects of the physics enabled cumshots - add manual animation only AFTER running the engine, never before.

post-175200-0-49370800-1383442767_thumb.png

post-175200-0-65953600-1383442768_thumb.png

post-175200-0-62518400-1383442769_thumb.png

post-175200-0-17415100-1383442770_thumb.png

post-175200-0-47545200-1383449495_thumb.png

Link to comment

HOW TO MAKE A CUSTOM CUMSHOT ANIMATION:

 

I've been able to export my blender file without the personal information, so this should now be a more or less complete guide to make your own cumshot.nif file (unless I'm missing something):

 

Using blender 2.49 with the nif export and nifskope installed:

 

- Extract cumshot.7z, Open the cumshot.blend file. I have a bit of extra garbage in here, but not to worry. The animated ejaculating person is just for reference and should not be taken as an absolute!

- (Optional: If you want, add extra cumshots based upon the ones there and the physics tutorial "WORKING WITH THE BLENDER GAME ENGINE FOR CUMSHOT PHYSICS". First, it's probably best to skip this and try to recreate what I already had using my instructions, without modification.)

- Run the game engine to burn in the physics cumshots (I have four). They should appear correctly.

- Manually add keyframes for the final (in mine, fifth) non-physics cumshot so that it moves forward and gets larger after the other four have appeared. You have to use uniform scaling only and cannot do any morphing. At this point I also manually added scale keyframes to the other cumshots before launch so that they each start off small and suddenly get big before launch, helps to compensate for slight incongruities in penis size etc. to help keep the cumshots invisible prior to launch by making them small until then.

 

Then export to nif as per my tutorial above titled "GETTING A CUSTOM CUMSHOT FROM BLENDER TO ANIMATED NIF". You should end up with exactly what I have, as long as you've skipped the Optional step. You can then feel free to experiment as per my physics tutorial above by adding additional cumshots or changing the parameters of the existing ones.

cumshot.7z

Link to comment

The problem I was trying to solve: how to compensate for body weight

 

The vectors can be adjusted to compensate for body weight, they are properly interpolated (see the "Apply Transform" earlier in the thread). If we use niftools to adjust the basic vectors by the correct amount based upon body weight, the animation moves correctly by the same amount. I tested this with an animated box and it properly adjusted from weight 0 to weight 50 to weight 100 as long as I baked the difference into the vector itself. It appears that skyrim interpolates the XYZ values of the vectors when going from 0 to 100 weight, and ignores any other XYZ positioning in the NIF file in that interpolation.

 

However, this is incompatible with the animated scaling used in the cumshots, particularly important in the fifth one. The animated scaling multiplies by the baked-in adjusted vector, and therefore throws off the final resulting position.

 

Erstam - Have you found a solution for this?

Link to comment

So I just tried out the cumshot with 4udik's RB male meshes, and it gave me an interesting insight into how you guys animated it - the individual shots were visible through the (smaller) 4udik penis before they fired. It was like an semen gun, with individual bullets. Literal cum shots.

 

I just wanted to share that  :P, I'm an avid follower of the progress on this mod, and your work is a boon for all humanity (at least the parts of it that use Sexlab)

Link to comment

Welcome back, wpg97541! :)

 

And thanks for allowing me to post it in the downloads section. Of course, full credit to you will be given (it already is in the readme included with the transgender version). I don't have much free time either, so I think I'll upload the mod in its current state tomorrow, and update it when I have a chance.

 

You did a hell of a job with your blender guide! I haven't read through it yet, but it's very detailed and I'm tempted to actually give it a try. For me, that would be venturing into new territory, though. I've dabbled a bit in Blender in the past, but the only thing I learned was to hate its controls... :angry: A bummer that the only working export tools are for 2.49, the 2.50+ interface looks much better.

 

The problem I was trying to solve: how to compensate for body weight

 

The vectors can be adjusted to compensate for body weight, they are properly interpolated (see the "Apply Transform" earlier in the thread). If we use niftools to adjust the basic vectors by the correct amount based upon body weight, the animation moves correctly by the same amount. I tested this with an animated box and it properly adjusted from weight 0 to weight 50 to weight 100 as long as I baked the difference into the vector itself. It appears that skyrim interpolates the XYZ values of the vectors when going from 0 to 100 weight, and ignores any other XYZ positioning in the NIF file in that interpolation.

 

However, this is incompatible with the animated scaling used in the cumshots, particularly important in the fifth one. The animated scaling multiplies by the baked-in adjusted vector, and therefore throws off the final resulting position.

 

Erstam - Have you found a solution for this?

 

No real solution yet. The only thing I did to the SOS mesh was tweaking the translation vector of the parent Node ("PissSlit") in NifSkope until it didn't look off anymore with all three schlong types at weight 50. Matching it perfectly is impossible anyway, because the Average Schlong sits higher on the bone chain than the other two. It might even depend on the skeleton - I'm using the latest XPMS.

 

 

So I just tried out the cumshot with 4udik's RB male meshes, and it gave me an interesting insight into how you guys animated it - the individual shots were visible through the (smaller) 4udik penis before they fired. It was like an semen gun, with individual bullets. Literal cum shots.

 

I'm planning to adjust the mesh for other male body replacers too, including 4udik's.

Link to comment

I know, I had planned on making a different version for the different schlong types at first - but with the body weight adjustment working the way it was, it was difficult to get a perfect result.

 

I never used blender before this mod, so it was a hugely complex process for me, to figure out how to animate things, and use the game engine for physics in blender. I guarantee at some point the game engine will give you grief where it doesn't do what you expect and you have to try to figure out. But, with the game engine, you get the realistic physics that otherwise would be difficult to simulate. It should not be difficult to try exporting something very close to what I already have, basically, by following my instructions. Just make sure you don't try running the game engine in a case where you've manually added keyframes to those objects because you can get all kinds of crazy things happening. Also, always go back to the first keyframe before launching the engine.

 

The new blender versions have some better physics that remove the need for this game engine stuff, which would make this process significantly easier if nif export was supported in the newer versions.

Link to comment

I just had a crazy idea to compensate for body weight that may be a bit of a hack but it should work.

 

Is there a papyrus function that can get the weight of the character?

 

If so, might we be able to make, say, 5 different variations of the cumshot.nif file (perhaps size 0, size 25, size 50, size 75, and size 100) and select the appropriate one based on that character's body weight setting? That should make it look correct at all sizes pretty much. It will be a lot of files, but should not add a lot of complexity. All we should have to do in each is adjust the translation values in the piss slit / urethra parent ninode for each weight.

 

Also, for each one, we could POSSIBLY get some kind of interpolation between sizes, even though it would be inexact. We could make an _1 version for each that has the Transform->Apply to the vectors to allow skyrim to interpolate to the next weight point (ex. for cumshot size 0, we could have cumshot_0 and cumshot_1 with cumshot_1 having the transform->apply to ultimately bring things to the correct 24% weight point. For cumshot size 25, the cumshot_0 would be the exact 25 position and cumshot_1 having the baked in translation in the vectors such that it ultimately brings things to the 49 size). The interpolation will still throw off the animated scaling due to multiplication, but this might not matter so much when it is over a smaller distance (going from 0 to 25% is a lot smaller distance than going from 0 to 100%, so the actual total movement will be decreased even though it is multiplied).

 

It would end up looking like this in terms of files:

Shlongs of Skyrim\meshes\Cumshot0\Cumshot_0.nif (translation set to proper settings for 0 weight)

Shlongs of Skyrim\meshes\Cumshot0\Cumshot_1.nif (translation set to proper settings for 0 weight, but the 100 weight position is baked in to the vectors with Transform-Apply - this will only reach 24% in actual fact because if the body weight is 25-49 the papyrus script will instead go to Cumshot25)

Shlongs of Skyrim\meshes\Cumshot25\Cumshot_0.nif (translation set to proper settings for 25 weight, but the 0 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot25\Cumshot_1.nif (translation set to proper settings for 25 weight, but the 100 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot50\Cumshot_0.nif (translation set to proper settings for 50 weight, but the 0 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot50\Cumshot_1.nif (translation set to proper settings for 50 weight, but the 100 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot75\Cumshot_0.nif (translation set to proper settings for 75 weight, but the 0 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot75\Cumshot_1.nif (translation set to proper settings for 75 weight, but the 100 weight position is baked in to the vectors with Transform-Apply)

Shlongs of Skyrim\meshes\Cumshot100\Cumshot_0.nif (translation set to proper settings for 100 weight)

Shlongs of Skyrim\meshes\Cumshot100\Cumshot_1.nif (translation set to proper settings for 100 weight)

 

The interpolation is more complicated but might work OK. If we didn't have the interpolation but at least had the different ones for size 0, 25, 50, 75, and 100, selected by the papyrus script based on the actor's weight, it would be better than nothing. I think the interpolation will work, but it may take some experimenting with, and perhaps alteration of the scheme I have proposed above - it might work better to pick a mid weight  in the 0-25 range (like 12%) and use that as a rough middle for the weight 0-24 translation, then have baked in vectors to shift it down to 0 for cumshot_0 and up to 100 for cumshot_1 (though we would never actually get the 100 in game because at most we would get 24% because then papyrus would go up to the weight 25-49 version of cumshot.nif instead), then the position/scaling error caused by multiplication would only be at most 12% rather than the 25% above.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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