thorGraves Posted January 17, 2017 Share Posted January 17, 2017 Skyrim "anchors" AnimObjects to bones used in character animations. FNIS allows to do this with custom animations. It's pretty straight forward, but I have trouble finetuning the items position. For example, my custom book appears at the wrong angle, splitting the hand seemingly in two. After correcting the angle by manipulating the nif-files offset/rotation (not done in 3ds max or similiar), the book looks better, but still somewhat burried in the hand's mesh... If there a way/tutorial to create the AnimObject's offset in 3ds Max or Blender, instead of doing this by trial and error in Nifskope? Link to comment Share on other sites More sharing options...
JamesHalliday Posted July 23, 2022 Share Posted July 23, 2022 This is exactly what I'd like to know. I've been tearing my hair out for days trying to get a similar animated object to work in the player's hand. I have no trouble at all getting the object to appear in game. Animation list, behavior file? Check, check. Np. But the object is rotated wrong and all screwy. I can't for the life of me figure out how to orient the object so it appears correctly, other than painstaking trial and error, like you said, and that won't work in my case. I need PRECISION. I need to know exactly how the game orients it so I can export it precisely from Blender. I've been searching for awhile now. No answers.... :( Link to comment Share on other sites More sharing options...
ChuckYufarley Posted July 23, 2022 Share Posted July 23, 2022 I've had similar issues when trying to adapt vanilla meshes for use as anim objects for Fallout 4. I don't know if Skyrim skeletons are exactly like FO4, but I would imagine they are very close. The first problem with orienting a mesh is the bone Bethesda typically uses for the anim object root is positioned in the wrist and not the hand, like weapon bones. So not only do you have to calculate the AO orientation with regard to the player hand, but you also have to account for the offset from the AO bone TO the hand. Seems like a faulty system. So basically the AO mesh has to have the same offset from the 0 NiNode as the AO bone has from the hand, or wherever you want the AO mesh to appear. Second issue is rotation of the AO bone when the AO mesh is drawn. When the AO mesh is drawn during the character animation the 0 NiNode will align to whatever the AO bone position and rotation is at that particular frame. Realistically, the only way I know to find these transforms is to import the character animation into your 3D application and get the transform coordinates of the AO bone at whichever keyframe the AO mesh is drawn. Two work arounds I've come up with are to either find a vanilla AO nif that has the same size/function/grip...whatever, as the mesh you want to use. Import your mesh into the vanilla AO nif and align it to the vanilla mesh. Then delete the vanilla mesh and save it as your custom AO nif. This works fine for stuff like drinking glasses or bottles, but can be trickier for objects used for specific animations. The second work around I use involves creating custom character animations and using a different bone as the root node for the AO mesh. There are three AO bones parented to each hand bone and they cannot be moved independently, so you are stuck with the previously mentioned offset with those bones. However, there are also two additional AO bones that are not parented to any other bones and can be moved and animated wherever or however you'd like. First of all, when I create a custom AO mesh, I orient it so that the "grip" location is at 0,0,0, and make that the center of the mesh. When exported it will be centered to the 0 NiNode where the object will be grabbed by the player. When creating the character animation, I import the custom AO mesh into the scene, align the AO bone to the AO mesh, both for position and rotation, then parent the AO mesh to the AO bone. For FO4 skeletons, those bones are either AnimObjectA or AnimObjectB. Then I animate the AO bone to follow the character's hand, head, whatever. For this to work you must make sure that the custom AO nif has the correct AO bone indicated in the NiStringExtraData block. Hope this helps. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now