Jump to content

Recommended Posts

Hello folks! I am in search for mod makers who can rig custom creatures. I know that there are not that many people who have that knowledge but I need help with it. What I need especially is for new custom animations. See I have a creature at the ready but I couldn’t get it to work for the Protectron. If anybody is willing to help out please DM me here or reach out to me on my discord. I am desperate and in need of people who will be willing to help out. Thanks and please respond back soon

Link to comment
Share on other sites

I'm not sure exactly what you're meaning when you say a "custom creature", but "not working for the Protectron."

Are you wanting to use the Protectron's animations for your custom creature? Is your custom creature a variant of the Protectron? You've already got meshes and textures sorted out, and are just needing to connect the proper animations to your creature? Or are you needing entirely new animations created?

  • Like 1
Link to comment
Share on other sites

If you can't rig your creature to any of the existing skeletons, what you basically want to do is create a new skeleton and rig your creature to it. If you are using Blender, the tutorials in Blender Noob to Pro do a fairly decent job of explaining how to create the armature/skeleton and how to rig your mesh to it. If you're not using Blender, I can't help you.

The next thing you want to do is create your new animations. If you are using an existing skeleton like the Protectron, you can import its skeleton and one of its animation kf files and start with that. The Blender nif tools have an annoying habit of rotating the animation by 90 degrees, so the first thing you want to do is fix that. Then you can modify the animation to do what you want it to.

You don't need to start with an existing kf file though. You can create all new animations. Technically you can do it with just a skeleton (which I have done), but it takes a little imagination to figure out what the mesh is going to look like. It's easier to import both your mesh and the skeleton it is rigged to and animate with that.

There are a lot of hidden gotchas, and it's been a while since I've created any animations so I guarantee you I'm not going to remember them all.

If you want to import an existing animation, you have to select Import Animation and you also need to enter a file name for the kf file that you want under Keyframe File. I think it's Scene Root that you need to rotate by 90 degrees but I might be wrong about that. It's one node that will rotate the entire skeleton/mesh.

Whether you imported and modified an existing animation or created a new animation, you want to export just the animation as a kf file.

One of the gotchas that I remember is that Blender's default tags for looping don't match what Fallout and the GECK expect. The GECK also seems to load some hidden information that you can't edit, because if you do screw something up like the loop tags, if you fix it in the animation it still won't work right. You need to change the animation name and add the animation again in the GECK. What I always do is create the animation with a name like Animation1.kf, then Animation2.kf, Animation3.kf etc. as I edit the animations and get them working right in-game. When I'm done, the final name I use is just Animation.kf.

I used to have a link to creating animations but I can't find the link and google isn't any help. One thing to keep in mind is that Fallout 3 uses essentially the same game engine so any FO3 tutorials work fine for FNV, and Oblivion's game engine is slightly different but tutorials for Oblivion are usually close enough that you can figure out how to do it for FNV.

As far as I am aware, Blender 2.49b and its nif tools are the only ones that work properly for animations (well, properly except for the annoying 90 degree rotation). I've seen a lot of folks post problems about trying to do it with newer versions, but I've never seen anyone post information about how to actually get it working correctly with the newer versions.

Link to comment
Share on other sites

  • 2 weeks later...

I've had some luck with creating skeletons and KFs using Blender 3.6 Niftools and NifSkope. I recently managed to rig and skin my singing fish from scratch and got KF animations working. Currently in the process of porting the Oblivion horse skeleton, meshes, and anims to New Vegas and I ran into the dreaded 90 degree issue. But I've heard it has to do with the Oblivion anims themselves... not sure at this point as I've dealt with so much bullshit between each iteration of my skeleton and anims. I'm by no means an expert but I can give a few pointers that I wish I had known to start out with:

  • Whenever you import a skeleton into blender, you should select "Include > Process > Skeleton Only" in the import settings. Otherwise it will import as a bunch of empties.
  • When exporting your skinned meshes from Blender, make sure the skeleton attached to the armature has all of its parenting cleared. Go into edit mode, select all bones, and select "Parent > Clear > Clear Parent" from the viewport header. Also, because of this animations won't work if you attach them directly to the skinned meshes. To get around this in Blender, you can delete the bones from the armature and then import the skeleton NIF with the armature selected (or you can import the skeleton first and then the skinned mesh with "Geometry Only.")
  • Every bone in the skeleton must be prefixed with Bip01. Other than that, I'm pretty sure the names themselves can be whatever you want. The structure doesn't seem to matter either as long as Bip01 and Bip01 NonAccum are at the top of the hierarchy.
  • Bip01 and Bip01 NonAccum should always have their transforms zeroed. In NifSkope you should see their local axes aligned with the global axes and in Blender the bones should lie on the +X axis in octrahedral view. Also, the whole of the skeleton itself should be facing +Y. This is considered forward orientation.
  • Blender likes to export the skeleton with a NiNode as the scene root. This is easy to overlook since you'd expect it for skinned meshes. Make sure it's a BSFadeNode.
  • BSBounds seems to be the main collision box for the creature. The collision spheres and capsules attached to the bones are likely for controlling the creature's collision with statics and whatnot.
  • Not sure how bone LOD works but it seems to not be strictly needed.
  • Blender will export KF anims in clamped mode and without the Accum Root set (in most cases they should be looped and the Accum Root should always be Bip01).
  • If you try to export a skeleton from Blender with the exact name "Skeleton.nif," it seems to always give an error that goes something like: "AttributeError: 'TransformAnimation' object has no attribute 'transform_anim." It should work fine if you name the export anything other than "Skeleton.nif."
  • In SNIFF, there's a tool to optimize KF anims which removes redundant keyframes. Very useful if you're baking anims in Blender and then need to adjust the transforms in NifSkope but don't want to copy the same values 100 times.
  • For most creatures, BSXFlags in the skeleton NIF should always have Havok, Ragdoll, Dynamic, and Articulated checked. Havok enables collisions, Ragdoll (I assume) enables skeleton stuff, Dynamic enables gravity, and Articulated "chains" your collisions together (not 100% sure what that means).
  • The "SkeletonID" extra data block you see in vanilla skeletons doesn't seem to be necessary.
  • The root node of your skeleton and skinned meshes should always be named "Scene Root."
  • The bhkBlendCollisionObjects should all have the flags ACTIVE | SET_LOCAL | USE_VEL and Heir Gain and Vel Gain should both be set to 1.
  • If you export your skeleton with the idle animation baked in, remove the NiControllerManagers from under the Scene Root and any interpolators attached to Bip01 or Bip01 NonAccum. For some reason some of the vanilla skeletons have empty NiTransformControllers attached to them.
  • Bone priority in the KF's controlled blocks seems to be on an anim-by-anim basis. I just copy them from the corresponding vanilla KFs.
  • No idea how collision groups or ragdolls work. Also, the New Vegas GECK's ragdoll editor is broken so if you want to create custom body part data and stuff I think you have to either use xEdit or the Fallout 3 GECK.
  • I haven't been able to get locomotion anims working in the GECK yet. I can see Bip01 being translated in Blender and NifSkope but they just run in place in the GECK, and the creature won't play the anims at all in-game presumably because of that. In the GECK console, I get a warning like "AnimGroup 'Forward' for 'Scene Root' was exported with 'Animate in Place' from MAX." I would think that such a flag, whatever it might be, would be reflected somewhere in NifSkope, but I haven't found a solution yet. After testing working vanilla anims on the custom skeleton, it's an issue with the skeleton itself rather than the KFs.

To anyone who is more experienced with this stuff, please correct me if anything I said is wrong or missing info.

Trying to fix orientation issues between Blender, Nifskope, and the GECK is a total pain in the ass and currently the source of all my woes. Just remember that Bip01 and Bip01 NonAccum should NEVER be rotated in the skeleton or the .KF animations. But if this problem does happen to you for one reason or another (in my case I think it was because the Oblivion skeletons used a Bip01 bone orientation of +Z for some reason) then there are some more quirks you have to keep in mind:

  • In some cases, Blender, Nifskope, and the GECK will all show different orientations of the animation. Always check all three. The GECK orientation will always be the one seen in game.
  • In Blender, if your skeleton's rest pose (easily visible in edit mode) is rotated 90 or 180 degrees from the animation's pose, then you have a big problem. I haven't found a good fix for this yet, but ideally you need to have the pose and rest pose in the same orientation, pointing forward along the +Y axis and with the Bip01 and Bip01 NonAccum bones having zero rotation.
  • Rotating the scene root won't work because it rotates the rest pose with it.
  • Rotating the rest pose won't work because it rotates the animated pose with it.
  • Rotating one of the parent bones (under NonAccum) could work, but that needs to be baked into the animation. In my case, the bone I needed to rotate (Bip01 Spine0) was already keyframed, so simply propagating the transform wasn't an option without compromising the whole animation. If I could somehow apply that offset as an additive blend to every key in the animation (in the same way you'd use blend modes when drawing) then I think my problem would be solved, but I don't know how to do this. If there is a way, then apparently I cannot phrase the question properly to get the answer I need.
  • Adding a new pivot adjustment bone underneath Bip01 NonAccum and parenting everything else to it seemed like the best solution to me, but it resulted in a weird offset for the rest of the pose that I had to fix manually for each animation, which became messier and messier until the anims started deforming.

Perhaps there was something I was overlooking, because logically it seems like it should work if the bone has the same orientation as the original Bip01 NonAccum... I will continue experimenting and report back if I achieve a breakthrough. If anyone else has a suggestion for a workaround, I would love to hear it.

Edited by DuncanWasHere
Link to comment
Share on other sites

  • Recently Browsing   0 members

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