Disable arrow pincushion for one type.

Post » Mon Feb 01, 2016 6:23 am

I have been experimenting with .NIF changes, scripted explosions using ClearExtraArrows(), and numerous other techniques in the CK and nothing seems to work.



What I want to do, is disable the arrow pincushion effect (where arrows stick out of your target NPC), but only for one type of bow/arrow (bound bow).



I tried setting the projectile type as missile, however that breaks numerous engine detection events that register if you have attacked with a weapon. Perks or spells that do things like poison when you attack will not register.



I was thinking there might be some way to tweak the .NIF file, however the arrow that shows up between letting go of the string and the "whoosh" air effect is the same model as the pincushion so there is just empty space in flight for that gap, which looks bad.



My neext theory was to tweak ImpactData but that appears to have no effect. I made a blank impact data and assigned it to the bound bow arrows. The behavior to stick into things appears to be hard-coded. Explosions with destructible data seem to be able to "kill" arrows stuck in the world, but nothing I do seems to clear them from NPC's.



Can anyone help?

User avatar
Ebony Lawson
 
Posts: 3504
Joined: Fri Feb 16, 2007 11:00 am

Post » Mon Feb 01, 2016 5:04 am

Tried adding a scripted enchantment to an explosion on impact that removes the bound arrows from the target. I tried it with a while loop if they have any, for both the arrow itself and the projectile. Doesn't work.



Sadly this seems like one of those programmer's oversights where it is a behavior hard-coded in the engine, with no way around it.



I would love to be wrong but I don't think I am in this case. Damn. :(

User avatar
luis dejesus
 
Posts: 3451
Joined: Sun Aug 19, 2007 7:40 am

Post » Sun Jan 31, 2016 9:03 pm

The only way I can think to do this now is by editing the guts of the projectile .NIF to create some sort of alpha filter that makes the projectile invisible if it is static, but visible if in motion. I have absolutely no idea how to do that and the documentation is sparse.



Anyone with experience editing .NIF files still out there? The filee in question is Meshes\weapons\boundweapons\boundarrowflight.nif

User avatar
Elizabeth Falvey
 
Posts: 3347
Joined: Fri Oct 26, 2007 1:37 am

Post » Sun Jan 31, 2016 7:53 pm

Unfortunately, editing the nif will not work. The mechanics behind whether an arrow 'sticks' to something or bounces off is connected to the object being hit. More specifically it's related to the collision material setting of the object being hit.


For example; materials such as skin (obviously all npcs/creatures), wood, organic will have arrows stick whereas materials such as stone, metal will not.



However, looking at the projectile record for BoundArrowProj, you may be able to fiddle with some of the options. Like, on the bottom left corner is Collision Layer with a drop down. Try setting that to L_Biped? I'm thinking it might ignore bodies. And/or try checking the option Pass through Small Transparent. Other things you might try is the Fade Duration so they fade out quicker.

User avatar
Rudi Carter
 
Posts: 3365
Joined: Fri Sep 01, 2006 11:09 pm

Post » Mon Feb 01, 2016 6:15 am

Thanks for the suggestions, however neither of those options have a desired effect, or are related to the problem.



So far I have tried:


  • Scripting removal of the projectiles via explosion with scripted magic enchantment, following the logic that removing arrows from the player's inventory will remove the ones stuck in their body. Doesn't work with NPC's though.

  • Setting max arrows game setting dynamically via script to 0 when equipping the bound bow - Setting this to zero causes CTD on impact.

  • Setting the projectile type to missile, or anything other than arrow - Works but causes weapon hits not to register, which means things like poisons and scripted magic enchantments don't work either.

  • Changing the Impact Data Set. This is what sets what happens when this particular arrow hits certain things like stone or wood or flesh (bounce, stick, explode, etc.). For some reason this is completely ignored for arrow impacts on NPC's.

  • Removing TriShapes from the NIF file - works but also removes the flight model.

I believed the solution had to be an edit to the NIF. The goal wouldn't be to prevent the arrows sticking, but rather, to make the stuck arrows invisible, and the only way to do that would be to either remove the geometry altogether, which as I mentioned causes the flight projectile to be invisible (at least for short distances), or more likely, to create a transparent texture that activates at a certain point after launch.



If I knew the engine was referencing a specific node for the geometry it might be possible to remove or rename the branch containing the flight geometry such that it was used in flight but not by the hard-coded pincushion system, but I don't know enough about NIF files to know where to begin to set that up, if it is even possible.

User avatar
:)Colleenn
 
Posts: 3461
Joined: Thu Aug 31, 2006 9:03 am


Return to V - Skyrim