Jump to content

Casting Art of a staff: 1st vs. 3rd person axis mismatches


megapatato

Recommended Posts

<tl;dr> How to get Art well placed on a staff in 1st AND 3rd person cameras?

 

 

The "simple magic animation" graph for casting magics has a node IdleStaff, so

a) if a NIF contains an animation block mIdleStaff

b) and that gets loaded by an Art object

c) used in a Magic Effect

d) part of an Enchantment

e) applied to a Staff

then that controller fires if the staff is unsheathed, with an XYZ origin defined elsewhere (I don't know where... not the staff, perhaps the skeleton?)

 

However, there seem to be different axes for the staff between 1st and 3rd person camera. Concretely, let's consider two staves, the vanilla conjuration staff and the daedric staff from the Creation Club (it only matters in that it is shorter than the vanilla one). The 0,0,0 origin is the same with either staff loaded, in 1st or 3rd person views. The vanilla staff looks fine, it doesn't require translations nor rotations. However since the daedric one is shorter, the art needs to be moved. And here lies the issue: the translation that makes the art align with the daedric staff in 3rd person camera, does not match the alignment in 1st person camera.

 

View in 3rd person mode

 

 

View in 1st person mode

 

 

Q1: how would anyone suggest addressing this? Ideally, one would use the same file in both 1st and 3rd person cameras.

 

 

So I went the hard route, defining 2 enchantments that use 2 magic effects that use 2 art objects that point to 2 different NIFs (one for 1st person camera, one for 3rd person camera), and added a script to the weapon that listens for camera changes and then swaps the enchantment (courtesy of SKSE). My script works as intended, and changes the enchantment (I verify via Weapon.GetEnchantment().GetName() & print-outs), but the art is not visibly changed. If I configure it such that it sets the enchantment None when in 3rd person camera, I get a staff with no enchantment (as seen in the inventory screen), but the art is still playing. Saving with the weapon unsheathed, quitting to main menu (to force reloading of assets), and continuing, persists with the art playing. Saving with the weapon unsheathed sheathed, quitting to main menu, then continuing, also persists with the art playing. Even though the staff is unenchanted...

 

I then rewired the script to change specifically the path of the Art object itself (again, verified via Art.GetModelPath() & printouts), and same behavior. For some reason, the game is always using the 3rd person model, like it got cached somewhere and isn't getting refreshed...

 

Q2: is there a way of forcing an Art object refresh / reload?

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...