-
Posts
198 -
Joined
-
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
Start by downloading and installing SL VRpatch Beta8 38 - test - AnimObject fix v2.zip that is attached to that post. Then open the game, start a SexLab animation that uses AnimObjects on your own player character (the animation may automatically reset multiple times before it plays out normally), and see if the AnimObjects now load and are correctly attached to your character. If they are, then you don't need to do anything else. But if you find that an AnimObject is floating, disconnected from your player character, and always facing the direction you are looking at; that AnimObject's .nif file will need to be manually edited by you. This requires you to have NifSkope installed. 1. You need to find and open the .nif file of the AnimObject that you want to fix. These are typically placed in meshes/animobjects/<Name of animation pack>. 2. In NifSkope, check the Block List, and see if there is a block called NiStringExtraData. If there is one, click it, and look at the Block Details at the bottom in NifSkope. If the Name value is set to PRN [<Number>], then that AnimObject should already be VR compatible. You don't need to do anything else. If the Name value is set to something else: Right click on the NiStringExtraData block in the block list, then select Block > Copy Branch, then right click the block at the very top of the list (that has the number 0), and select Block > Paste Branch. This should insert a duplicate NiStringExtraData block that you need to edit later. If you *can't* find an existing NiStringExtraData block in the Block List: (Skip if you made a new block using the previous step) Open a different .nif file until you are able to find a NiStringExtraData block in the Block List, then copy it using the previous step. (NifSkope lets you copy and paste between open windows) (Advanced) You can also insert a block manually: Right click on the block at the very top of the Block List (number 0) and select Block > Insert > NiS... > NiStringExtraData. Make note of the number of the new block you just inserted. Then click on the block at the very top of the Block List (number 0), and look at the block details. Find Num Extra Data List and add 1 to its value (if 0, set to 1. if 2, set to 3. if 4, set to 5, and so on). Expand Extra Data List (you may need to click the refresh icon), and find the value that says None inside that list. Edit it, and change it to the number of the NiStringExtraData block you inserted earlier, and hit enter. It should then change to <Number> [NiStringExtraData]. 3. Now click on the new NiStringExtraData block you inserted from following the previous steps. 4. In the Block Details: Right click Name, then select Edit String Index and type in PRN, then press Ok. Right click String Data, select Edit String Index and type NPC Root [Root], then press Ok. 5. Save. 6. Open the game and test to see if the AnimObject is now properly attached to your player character. 7. If the object is attached, but the position looks incorrect: Open the .nif file of the AnimObject again in NifSkope. Right click on the shapes inside the render window (or the Block List) and select Transform > Edit. Edit the position of the shape to compensate for what you were seeing in-game, and repeat for all shapes in the .nif file. Save and test again. Sorry that there isn't an easier way to do this currently. Min hinted at the idea of automating this process earlier in the thread, but there has been no updates on that, and I have little to no experience with coding in Python. I could attach my own edited .nif files, or ask the authors of animations packs to include patched versions of the .nifs, but I would have to get in contact with the authors in either case to do that, which I am not really in the mood for at the moment... -
SkyrimVR Compatibility Tracking (1/27/21)
Skullered replied to JayDrizzle's topic in Virtual Reality
You could try the edited script I posted in the SL VR patch thread that adds a workaround for animobjects not showing up. It's not perfect, and there are caveats (listed in the linked post), but I haven't found any other ways to tackle the issue. The workaround tries to place your player character in an invisible chair, before playing the SL animation, which seems to cause animobjects to become visible. -
Here's my edited version of the DD Animation Patch. I did use the older version of the patch as a base, I haven't tried the latest one due to the presence of RegisterForUpdate, but I used it as a reference. Changes I could find between this and the earlier version: -Improved script performance. Instead of polling in the background for (maybe) DD animations using scripts, a spell now monitors for DD animations using the conditions system instead. Trimmed the amount of checks for individual keywords when updating. Checking for just zad_DeviousHeavyBondage appears to do the job. Devices getting rapidly (un)equipped no longer trigger multiple unnecessary updates in a row. Now only one update gets queued. -Added a console setting you can set if you don't want animations taking control of your camera, in case of motion sickness. -Pet Suits now only adjust the camera height, not its position. It was causing movement glitches including sending me into walls constantly. -VRIK mod settings no longer get modified unnecessarily if it isn't needed when a save is loaded. -VRIK settings now get restored after having been modified, instead of explicitly changing the settings back. -Removed Contraptions code as the events from Contraptions aren't reliable, it may also conflict with the VRIK no spin patch. -Potentially irrelevant actions will no longer trigger camera animations, only animations from DD do. -Cleaned Player (0000014) ITM record. If you want to stop animations (vibrators, struggling) from moving the camera, type set VrikDdAnimationPatch_Animations to 0 in the console. Due to major differences under the hood, I'm not sure this can be installed on a save that used any of the previous versions. The previous version of the patch used RegisterForUpdate which means even if you uninstall the previous version, the game will keep trying to run updates and using resources even when it is uninstalled. You can try to uninstall, load a save, type clearinvalidregistrations in the console and then save afterwards. I don't recommend doing this, and there's no guarantee the save will be clean. VRIK - DD Animation patch - Edited.zip
-
Would you mind if I made and uploaded an edited version of the DD Patch? There are some inefficiencies in it I'd like to optimize, particularly in regards to RegisterForUpdate (It is strongly recommended against using RegisterForUpdate as it causes the script to run indefinitely, even if you uninstall).
-
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
1) I think all visible shapes (BSTriShape, NiTriShape, NiTriStrips) and sprites in the .nif show up in-game, but markers and collisions do not. Animobjects in SLAL packs are typically located in "meshes/animobjects/" with their own folder. They are defined in .esp files as ANIO "Animated Object" records in xEdit or under "Miscellaneous > AnimObject" in the Object Window in the Creation Kit. Afterwards the objects are added to the "FNIS_<X>_List.txt" file in "meshes/actors/character/animations/<X>/FNIS_<X>_List.txt" using the EditorID defined in the .esp. Animations that use objects have an "-o" in front of them in that file, with the EditorID of the object coming after ".hkx". 2) Before processing the .nif, you should check if the .nif already has a NiStringExtraData block with Name "PRN", if it does, it should be skipped as that .nif should already be compatible. String Data is the name of the node on the character that the object becomes parented to, "NPC Root [Root]" is what seems to work best for meshes missing the StringExtraData block, however this can potentially move the object in-game a little and you may need to move the shapes so they become aligned with the animation again. -
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
Update on that animobject fix I was working on: I figured out a way to detect and automatically use "Reset positions" if the script detects that animobjects aren't working correctly. This should make the animobjects show up much more consistently, if not 100% of the time. Changes: -Animations will now automatically attempt to reset if it detects animobjects aren't working, so the fix is reapplied. -Changed the furniture that is used for the fix to one from Skyrim.esm. SexLab_VRPatch.esp from the previous version is no longer required. If you want more info about this "fix" you can read about it in my wall of text. Keep in mind none of the previous limitations have changed: -Animobjects require a NiStringExtraData [PRN] node in the .nif to parent the object to the player character correctly, or it will be misaligned. This is a limitation of the VR game. -You cannot move around if using the "3rd person" mode, but you can still turn, this is a limitation of the current fix. This includes the PLANCK/footstep patch I posted earlier. Off the top of my head, PsycheAnimation, Estrus Chaurus and BakaFactory SLAL animobjects should work fine, but other animation packs may have incompatible animobjects that need to be patched before they work in VR. All the 'bondage gear' animations in Billyy's SLAL Animations should work for example, but the furniture animations may not work. You can read more about it in "my wall of text", but the main thing is animobject .nifs need to have a NiStringExtraData [PRN] node in them before they will work in VR. SL VRpatch Beta8 38 - test - AnimObject fix v2.zip -
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
Try this edited script. You must have PLANCK V0.4 or above. It should stop NPCs and your hands from colliding with each other while animating. Additionally mutes footstep sounds while you're in an SL animation as they sometimes go completely crazy for me. SL VRpatch Beta8 38 - test - PLANCK patch.zip -
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
I had a go at editing sslActorAlias and implementing the furniture thing, so AnimObjects show up on the player, and much to my surprise it kind of works. Even more surprising is objects seem to get swapped correctly during the course of an animation as the player remains in the furniture state after the first stage. I was even able to get Estrus Chaurus' animations to play the tentacles correctly, and it correctly progresses as the animation plays. I've attached the edited script below, however for the majority of animations it's not plug & play. Sorry for the wall of info coming up, but this is not a definitive fix. My method involves spawning an invisible chair in RefreshActor(), making the player activate it, and immediately deleting it again. It doesn't always work consistently, and only does it automatically on Stage 1. If the objects doesn't show up, the player may not have entered the chair correctly, using "Reset positions" in the SL VR submenu should fix it. You also cannot change animation in an active scene, or you will need to use "Reset positions" again if the objects don't show up. Besides that, here's the really bad news. As mentioned before this is not 100% plug & play for the majority of SL animation packs. AnimObjects require a NiStringExtraData block to parent the object to a node on the character, otherwise the object will stick to the player's actual position and angle. This isn't a problem in "flatrim" because the player's character is correctly centered on the player's origin, but with VRIK the player's character is manipulated to different positions and angles than from the player's actual origin. Example of AnimObject misaligned in "Billy Pillory Fuck 1", the object is centered and angled where the actual player's position is and not where the VRIK character is. This is because the pillory .nif is missing a NiStringExtraData block with 'PRN' as its name, that tells the game to parent the object to a character's node. In order for the object to be correctly attached to the player character the .nif MUST contain a NiStringExtraData block with "PRN" as its name, and the String Data set to the node to parent to. Typically "NPC Root [Root]" seems to work for this, but this can slightly or majorly offset the expected position, and you will need to manually edit the shapes' position so they fit the animation again. After editing the AnimObject with this, it is now properly positioned on the player character again. Many animation packs do not have the required NiStringExtraData PRN block, typically this is only used for things like handcuffs, wrist rope or other restraints. You will have to manually check an animation pack's AO's to see if they contain a NiStringExtraData block with PRN as its name, if they don't you need to manually add it yourself and modify the shape's position to match. Due to permissions, I can't upload my edited meshes here, you will have to make these edits yourself, or seek permission from the original author. Psyche Animations' objects should work out of the box, as well as Estrus Chaurus and BakaFactory (I think). But many others like Billy, Anub, Leito and Nibbles will have limited or broken objects and need to be edited. Along with this edit I've also muted footstep sounds when the player is involved as VRIK can often cause footstep sounds to go bonkers. I've also set actors in SL scenes to be "ignored" by PLANCK so your hands wont bump into characters in scenes, this does mean you can't smack people around if you we're doing this before. I can't stress this enough, this is not 100% plug & play, nor is it a fully functioning fix. Do not install this expecting everything to work smoothly. I have only tested this briefly, your player could potentially be put in a bad state, so remember to save your game in case something bad happens. You also cannot move around to look at your character if using the "3rd person" preset, the "furniture state" locks the player in place. You can still turn though. If objects aren't showing up, use "Reset positions" in the SL VR MCM submenu. Objects must have a NiExtraStringData block in their .nif as mentioned above, or it will be misaligned. V2 Changes: -Animations will now automatically attempt to reset if it detects animobjects aren't working, so the fix is reapplied. -Changed the furniture that is used for the fix to one from Skyrim.esm. SexLab_VRPatch.esp from the previous version is no longer required. SexLab VR AnimObject proof of concept fix.zip SL VRpatch Beta8 38 - test - AnimObject fix v2.zip -
Skyrim SexLab and VR
Skullered replied to reikiri's topic in Downloads - Skyrim: Special Edition Adult Mods
I managed to discover a way to make AnimObjects show up on the player. It may not be easy to implement however, but I figure any information on the topic might be useful. I wanted to get to the bottom of why some AnimObjects would still show up on the player in certain instances, like when the skeleton key animation plays, or using dig sites from Legacy of the Dragonborn. I couldn't figure out how the skeleton key works, maybe PlayIdle() handles the animation differently, or something in the animation behavior itself? I did however manage to discover that sitting in a chair I had spawned in, if I played SexLab animations that had AO's using the sae console command, the AnimObjects would show up correctly. Triggering animations before sitting would obviously cause no AnimObjects to show up, but sitting in it and THEN triggering the animations made the AnimObjects show up properly. Something about the internal state the player is put in when inside furniture... I'm assuming this would work with any type of furniture, not just chairs. Keep in mind however: If the animation has multiple AO's throughout its sequence; the rule remains the same, the player has to be in some type of furniture state (entering, idle or exiting), or the new AO's will not appear, the player needs to be in furniture whenever a new animation stage triggers. I don't have a lot of knowledge on how furniture works, but to me it seems like it would be pretty difficult to implement successfully. You would need to make a custom type of furniture without collisions (I think the base game has meshes for that, you would just need to make a custom furniture item in the CK), spawn/move it to the player on each SL stage and have them enter it, and reset the animation each time (since furniture resets the animation). You may also have to recenter the player constantly since furniture can move the player around when entered. -
Use File > Import > From TRI (Head)... in outfit studio and import the .tri file of the head you want to use instead of the .nif. This will import the morphs as sliders that you can click and drag. You may need to use Slider > Set Base Shape after setting the morphs or editing may be wonky, I can't remember... I think the morphs for being gagged were: -BigAah 100% -Oh 70% The "large" gags uses different values but I can't remember what they were.
- 12554 replies
-
4
-
- devious devices
- bdsm
-
(and 1 more)
Tagged with:
-
Try briefly turning off Windows Defender's Real-time protection when you generate FNIS, or add exclusions to GenerateFNISforUsers.exe and possibly the folder where MO2 stores your stuff. I had that exact same error until I added exclusions to it.
-
I'm having trouble with the "DDI_DeviceRemoved" mod event not getting sent when mods remove devices from the player with libs.UnlockDevice() It only seems to get sent if the player removes the device themselves. I suspect "SendDeviceRemovedEventVerbose" and perhaps "SendDeviceRemovalEvent" need to be added or moved around in UnlockDevice(). Bool Function UnlockDevice(actor akActor, armor deviceInventory, armor deviceRendered = none, keyword zad_DeviousDevice = none, bool destroyDevice = false, bool genericonly = false) Log("UnlockDevice called for " + akActor.GetLeveledActorBase().GetName() + ": "+ deviceInventory.GetName() + ")") If (genericonly && deviceInventory.HasKeyWord(zad_BlockGeneric)) || deviceInventory.HasKeyWord(zad_QuestItem) Log("UnlockDevice aborted because " + deviceInventory.GetName() + " is not a generic item.") return false Endif if akActor.IsEquipped(deviceInventory) StorageUtil.SetIntValue(akActor, "zad_RemovalToken" + deviceInventory, 1) akActor.UnequipItemEx(deviceInventory, 0, false) ;"SendDeviceRemovedEventVerbose" & "SendDeviceRemovalEvent" need to trigger here in some way or in zadEquipScript from OnUnequipped where the removal token is detected else ... Also; Request: Events for when Thirdperson animations start and end, e.g "DDI_ThirdpersonAnimationStart" "DDI_ThirdpersonAnimationEnd".
-
Might be worth double checking for issues, I recall getting <Missing Name> on everything when resaving other mods that were localized. For the record, I didn't provide these modified plugins with localization enabled. Out of curiosity, where does this instability stem from? The assets were stuffed in a BSA on purpose to speed up I/O; start-up time as well as archive extraction is faster by keeping it in a BSA. Bump
-
I made a patch as well on the old download page, among others, but I haven't updated them since. Is yours more up to date? ?
-
Out of curiosity, where does this instability stem from? The assets were stuffed in a BSA on purpose to speed up I/O; start-up time as well as archive extraction is faster by keeping it in a BSA.