megapatato Posted January 13, 2022 Share Posted January 13, 2022 <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, soa) if a NIF contains an animation block mIdleStaffb) and that gets loaded by an Art objectc) used in a Magic Effectd) part of an Enchantmente) applied to a Staffthen 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 More sharing options...
Recommended Posts