Omny Posted November 12, 2020 Author Share Posted November 12, 2020 (edited) I've played around with timers and got it to work after looking at the vanilla disintegration effect script and GECK wiki. Just needs a bit more polish and it should look fine. As for the dismemberment, I think I'm going to see if I can just straight-up disable dismemberment for this, either for energy weapons or NPCs wearing the skeleton outfits. Having the skeletons lose their bits either way just doesn't gel with my "vision" of this mod. I'm gonna see if I can somehow script out a way to either: A: apply No Dismemberment/Explode to all energy weapons across the board (to save on having to edit every weapon and to avoid conflicts with other mods) or B: disable dismemberment on DefaultBodyPartData for skeletonized NPCs, or, perhaps replace it with a copy of my own BodyPartData with dismemberment disabled on all the biped parts. Edited November 12, 2020 by Omny Link to comment Share on other sites More sharing options...
Omny Posted November 17, 2020 Author Share Posted November 17, 2020 UPDATE: Well, after a bit of fussing about in Nifskope I finally managed to get the dang dismemberment working, as well as fix a couple weird mesh issues with missing bones:It just needs a bit more polish regarding the effect shaders. What I'd prefer is that when an NPC dies, their body goes all glowy and disintegrated, and then gets replaced by a skeleton, to make it look like there's an actual transition between being fleshy and not-fleshy.Whether that's possible is another bridge to cross later- right now I'm just trying to fix this one annoying little visual bug:Right after the effect shaders do their thing and the skeleton ragdolls on the ground, the body suddenly becomes transparent like this for about 1 second, and then snaps back to being opaque. I think it has something to do with the timer function in the scripts; I'm trying to figure it out myself. I also noticed that, for some reason, the first line of my debug text shows up three times in the console: Not sure what the deal is there. Mayhaps this and the previous bug are related? I'll try to figure this out on my end. Here's what I got so far with the laser skeletonizer script if anyone wants to give it a look-over: scn OMNYLaserSkeletonizerScript Float Timer Short DoOnce ref rActor ref rKiller begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.PMS LaserCritGlowFXShader 1.8 rActor.PMS effectLaserDisintegration 1 rActor.additem OMNYLaserSkellySuit 1 rActor.equipitem OMNYLaserSkellySuit 1 Set Timer to 1.8 Set DoOnce to 0 endif Print "welcome to the bone zone" If Timer <= 0.5 rActor.SMS LaserCritGlowFXShader rActor.SMS effectLaserDisintegration Set DoOnce to 1 EndIf endif end Link to comment Share on other sites More sharing options...
KiCHo666 Posted November 17, 2020 Share Posted November 17, 2020 That transparent issue is a problem with actor effect shaders and Transparency Multisampling that ruins the dissolve effect of disintegration. I suggest you disable it to see what the disintegration effect is supposed to look like. Link to comment Share on other sites More sharing options...
Omny Posted November 17, 2020 Author Share Posted November 17, 2020 (edited) Disable what, exactly? The entire effect itself, or something specific in the effect shader window? As far as the repeated "event fired" line, I tried disabling all but "the event fired" line with semicolons. When I killed someone and looked at the console, "the event fired" was listed four times. Still not sure why. I tried it with different weapons too; still the same effect. doesn't make any sense. EDIT: Found the culprit: it was the quest script that I have the skeletonizer scripts attached to. This is how I wrote it: ScriptName OMNYSkellyQuestScript Begin GameMode If GetGameLoaded SetJohnnyOnDyingEventHandler 1 OMNYLaserSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYPlasmaSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYCharredSkeletonizerScript 0 SetJohnnyOnDyingEventHandler 1 OMNYShockSkeletonizerScript 0 endif end I disabled all but the laser script with semicolons, and sure enough, the "the event fired" only showed up once. I'd rather not have all four scripts happen at once; I feel like that might cause problems. Edited November 17, 2020 by Omny Link to comment Share on other sites More sharing options...
dubiousintent Posted November 17, 2020 Share Posted November 17, 2020 Your message spam is because the "event fired" message is coming from the EventHandler ("SetJohnnyOnDyingEventHandler") UDF ("OMNYLaserSkeletonizerScript"). Each time the EventHandler is called, the UDF spams the message. So, things are actually working as scripted. If you want the message to only appear once, move it to the "OMNYSkellyQuestScript" inside the "If GetGameLoaded" block. (It's only of use to yourself anyway.) Alternatively you could define a variable (e.g. "iDBug") and the value it is set for can be tested to determine if a given debug message should be displayed. For example, a value of 0 = "no message', while "1 = Quest Script level only" and "2 = UDF level and Quest Level" messages. Or any similar scheme that works for you. Ex in UDF: If (iDBug > 1) Print "The UDF event fired"while in the Quest script: If (iDBug > 0) Print "The Quest event fired"Suggest you take a look at the 'TIP Debugging data to file' entry under the "Scripting" section of the wiki "Getting started creating mods using GECK" article.-Dubious- Link to comment Share on other sites More sharing options...
Omny Posted November 18, 2020 Author Share Posted November 18, 2020 Okay, that's not too much of an issue then. Still trying to figure out how to stop that annoying transparency bug though. All I know is that it has something to do with the laser disintegration effect shader and not the glow shader, as disabling it causes that bug not to happen. Link to comment Share on other sites More sharing options...
dubiousintent Posted November 18, 2020 Share Posted November 18, 2020 Afraid I can't really help you with that. This is the most informative link I found. Which does raise the question: are you using a "post processor" like ENB/SweetFX? If so, developing mods is best done without such "extraneous" features enabled unless you intend your mod to require them. In which case you can expect to vastly increase your mod's support calls for everything related to such requirements. -Dubious- Link to comment Share on other sites More sharing options...
Omny Posted November 18, 2020 Author Share Posted November 18, 2020 (edited) I tried disabling transparency multisampling, and all it did was replace the transparent flicker with making the skeleton completely vanish for a second before popping back. To answer your other question, I am not running ENB or anything like that. I'll check my other mods in a sec. EDIT: Yeah, doesn't look like any of my mods are effecting it. I'll try a different approach. EDIT THE SECOND: So I decided "f*#@ it" and made my own effect shader to replace the vanilla disintegration effect. Gonna mess around with it until I make it look the way I want it. I think I have a basic idea of how to edit these, though it would be a lot easier if the Effect Shader page on the GECK wiki wasn't so damn obtuse about what different settings do- what the hell does "RGB components of source pixel multiplied by alpha" mean? I'm basically just flipping checkboxes and punching in numbers to see what happens. Edited November 19, 2020 by Omny Link to comment Share on other sites More sharing options...
dubiousintent Posted November 19, 2020 Share Posted November 19, 2020 Did you try covering up the "transparency" delay in the switch between bodies with another IMOD effect? "Alpha" governs the transparency of a "pixel". It's a value that combined with the "Red", "Green", "Blue" (RGB) elements produces a given displayed color. The simplest way to choose one is to pick the hue you want from a "color wheel" that shows the display color for a given numeric value, such as here. -Dubious- Link to comment Share on other sites More sharing options...
Omny Posted November 23, 2020 Author Share Posted November 23, 2020 (edited) Well, I've taken a few days to step back from this. progress has been... lackluster. I've looked into IMODs and I don't know if that will work? I've looked at several of them and they seem to only effect the camera view, like adding blur and bloom and color overlays. Can it be applied to individual NPCs? I also tried a different approach suggested by someone on the LoversLab forums where I'd make my own Actor/Base effects like the vanilla laser disintegration effects and attach them to my script. But I can't seem to get it to play right? Like, I made my own Actor/Base effects (OMNYLaserSkellyFXSpell, and OMNYLaserSkellyBaseEffect respectively) and I've connected the two together like the vanilla laser effects, but I can't seem to get them to play with my script. Here's what I got: Actor effect: OMNYLaserSkellyFXSpell (exactly like the LaserDisintegrationFXSpell, but with my custom base effect below) Base Effect: OMNYLaserSkellyBaseEffect (exactly like the LaserDisintegrationEffect, but attached to my laser skeletonizer script) And here's my latest script: scn OMNYLaserSkeletonizerScript Float Timer ref rActor ref rKiller begin Function {rActor} Print "The event fired" set rKiller to rActor.GetKiller if rKiller.IsWeaponInList OMNYListOfLasers Print "the killer's weapon is eligible" if (rActor.GetIsCreature == 0) && (rActor != PlayerRef) Print "the victim is eligible" rActor.PMS LaserCritGlowFXShader rActor.CIOS OMNYLaserSkellyFXSpell rActor.additem OMNYLaserSkellySuit 1 Set Timer to 1.8 If Timer <= 0.5 rActor.equipitem OMNYLaserSkellySuit 1 Endif EndIf endif Print "welcome to the bone zone" end But in-game, all that happens is the laser crit glow and the sizzling noise (which is new and exactly what I wanted, granted), but no disintegration effects, no sparks, and no skeletons! I am so goddamn frustrated by all this I'm on the verge of just giving up. Edited November 24, 2020 by Omny Link to comment Share on other sites More sharing options...
Recommended Posts