Jump to content

Please Teach Me About Animations


Recommended Posts

Posted

Howdy folks,

 

I'm working on a little something something but it requires a good bit of knowledge on animations. While I am a programmer at my day job, I am in no way a 3D graphical artist by any means.

 

With that said, I need information on what goes on in an animation regarding Fallout 4. I don't mean anything specific for the animation framework like XML files, I mean only what goes on from a 3D graphical artistry perspective like the skeleton, meshes, etc. for the game.

 

To save you all some time (hopefully) I've done a little research but I'm being cautious about what I've supposedly "learned". I figure googling things about 3D animations to you guys looks like someone going to WebMD for medical advice instead of a doctor.

 

Disclaimer: All of my quick tests were with Blender and no other 3D animation software.

 

Here's what I think I know (basically stuff that I want to double check I learned correctly):

  1. Bones are parts of the skeleton that can be moved and rotated (X, Y, Z and angle) and each skeleton has their own bones from the skeleton's creator.
  2. Meshes don't seem to actually make a difference in terms of physical interactions in an animation, only the skeleton does and the "mesh" shown in Blender is really more of a placeholder.
  3. Annotations are simply other actions that take place when something occurs during the animation (like playing a sound, but doesn't have to be just that).
  4. Annotations also have a time associated with their action such as how long something occurs (e.g.: let's say drawing a weapon takes 0.5 seconds, then the sound played probably also takes 0.5 seconds or less).

 

Here's what I'd like to know:

  1. How do animators create an animation to work with multiple skeletons if every skeleton is different? Like I know in Skyrim certain animations don't work with the original game's skeleton so people have to use an alternative one and most animators basically require that skeleton but how does the same thing work with say, Fallout 4? So far every animation I've tested works with both ZaZ's Extended Skeleton, the skeleton from Skeletal Adjustments for CBBE mod and even the game's original skeleton (although I know that if we use CBBE the knee will look weird).
  2. Is there a limit to what actions can be annotated? So far it seems like it's mostly just sounds.
  3. Do annotations only last as long as their specified duration (e.g.: let's say instead of playing a sound, we wanted to do something else, does that only last for the duration written in the annotation duration)?

 

Thank you in advance to any and all 3D graphical artists and animators who help me learn more about their field.

Posted (edited)
7 hours ago, Here4SlootyMods said:

Howdy folks,

 

I'm working on a little something something but it requires a good bit of knowledge on animations. While I am a programmer at my day job, I am in no way a 3D graphical artist by any means.

 

With that said, I need information on what goes on in an animation regarding Fallout 4. I don't mean anything specific for the animation framework like XML files, I mean only what goes on from a 3D graphical artistry perspective like the skeleton, meshes, etc. for the game.

 

To save you all some time (hopefully) I've done a little research but I'm being cautious about what I've supposedly "learned". I figure googling things about 3D animations to you guys looks like someone going to WebMD for medical advice instead of a doctor.

 

Disclaimer: All of my quick tests were with Blender and no other 3D animation software.

 

Here's what I think I know (basically stuff that I want to double check I learned correctly):

  1. Bones are parts of the skeleton that can be moved and rotated (X, Y, Z and angle) and each skeleton has their own bones from the skeleton's creator.
  2. Meshes don't seem to actually make a difference in terms of physical interactions in an animation, only the skeleton does and the "mesh" shown in Blender is really more of a placeholder.
  3. Annotations are simply other actions that take place when something occurs during the animation (like playing a sound, but doesn't have to be just that).
  4. Annotations also have a time associated with their action such as how long something occurs (e.g.: let's say drawing a weapon takes 0.5 seconds, then the sound played probably also takes 0.5 seconds or less).

 

Here's what I'd like to know:

  1. How do animators create an animation to work with multiple skeletons if every skeleton is different? Like I know in Skyrim certain animations don't work with the original game's skeleton so people have to use an alternative one and most animators basically require that skeleton but how does the same thing work with say, Fallout 4? So far every animation I've tested works with both ZaZ's Extended Skeleton, the skeleton from Skeletal Adjustments for CBBE mod and even the game's original skeleton (although I know that if we use CBBE the knee will look weird).
  2. Is there a limit to what actions can be annotated? So far it seems like it's mostly just sounds.
  3. Do annotations only last as long as their specified duration (e.g.: let's say instead of playing a sound, we wanted to do something else, does that only last for the duration written in the annotation duration)?

 

Thank you in advance to any and all 3D graphical artists and animators who help me learn more about their field.

 

Yes, I think you basically got it.

 

The animation is just coordinates in 3D space along a timeline, for each bone the animation was created with. The game engine somehow pairs that info with the character skeleton in the game, which has the same bone names, which then move accordingly. The "skinned" mesh of the character then moves according to those bone rotations/translations based on the "weighting" of those bones to the particular vertices on the mesh.

 

Annotations are placed along a time line and present some text info to the game which it can use. In fallout it's "soundplay:sound" or something like that. The timing is defined in the anim. Here is an example of what it looks like.

 

<hkobject>
                            <hkparam name="time">0.5</hkparam>
                            <hkparam name="text">SoundPlay.RZButtSD</hkparam>
                        </hkobject>
                        <hkobject>

 

As far as different skeletons, the game engine will try to animate corresponding bone names. In Skyrim and Fallout the animator has to define a list of bone names in a text file. The game has a "skeleton.hkx" which I think is basically just a list of bones. Starfield also has a similar thing. Then there is an almost identical version of the skeleton that is linked with the mesh.

 

My impression is that this is an area that probably only a handful of people even understand. You could try NAF or AAF discord. Since you are working on a mod. 

 

Edit: A bit I forgot to mention which is very important is that the bone coords are relative to the root bone of the skeleton. So the root bone is the origin of the scene. And in game, the rotation of the root does matter, you can get all sorts of weird twisting with the bones in game if it's not exported correctly. That is a part I have never been able to understand. I had that problem of twisted, messed up bones due to incorrect orientation of the root in Skyrim, Fallout 4 and Starfield, lol. And that is with three different export methods. Skyrim the anims are exported with a script into a kf, in Fallout, an fbx, and in Starfield, an glbt.

 

I'm a Blender user, though. Might make a difference.

 

Edited by RohZima
Posted

Hi, first off, thank you for responding! I really appreciate it.

9 hours ago, RohZima said:

The game engine somehow pairs that info with the character skeleton in the game, which has the same bone names, which then move accordingly.

Does that mean that regardless of which skeleton we use in Skyrim or Fallout 4 (for Fallout 4: ZeX Skeleton, Skeletal Fixes for CBBE, etc.) they must provide the same bone names in the game's default skeleton file itself to move those specific parts? I'm aware that these skeletons may add bones, but in order to move a part that the game already moves for us (e.g.: arms and legs during running animations), they must have the same bone name as the game's default skeleton's bones. Is that correct?

 

I'll look through the ZeX and CBBE Skeletal Adjustments skeletons a bit more thoroughly but that is at least the impression that I got. Please correct me if I misunderstood anything.

10 hours ago, RohZima said:

In Skyrim and Fallout the animator has to define a list of bone names in a text file. The game has a "skeleton.hkx" which I think is basically just a list of bones.

Ok, so if say some skeleton, let's call it "Skeleton 1" adds a few extra bones and animators create an animation for that specific skeleton utilizing all of the bones, if another skeleton, "Skeleton 2" is missing those bones, the animation won't work properly for Skeleton 2 as it did for Skeleton 1?

 

I'm trying to think of how 3BBB (or 3BA in Skyrim) work. I can't see any information in those mod's files that add bones (otherwise they would have to add a whole new skeleton, right?) but as I understand it, they do use or add bones for the breasts and butt and that's why those parts are capable of movement in animations (not just SexLab animations but also when running/walking).

 

I'll do some more digging but I'm still wondering (and I'm not asking you specifically but anybody who might know) if the "time" part of annotations are required. Even though it probably wouldn't be desirable, I'm kind of wondering if I can set a sound file to play for an infinite amount of time.

10 hours ago, RohZima said:

Edit: A bit I forgot to mention which is very important is that the bone coords are relative to the root bone of the skeleton. So the root bone is the origin of the scene. And in game, the rotation of the root does matter, you can get all sorts of weird twisting with the bones in game if it's not exported correctly.

This is actually critical information for me to know, so thank you for editing your post to include it, I really appreciate that.

Posted

I'm making animations in 3ds 2013, but I can't help with blender. 3ds 2013 - 2014 has a set of tools for working with fo4 resources. These are bgs_nif_exporter (found in ck, in the tools folder), nif tools (found in the f4ak package from shadeanimator on the nexus), hct2014 (modders share with each other). All 3 tools provide a complete fo4 developer...

The annotations are attached to the root using a dope sheet. There are more than a hundred havok annotations, but they are all specialized. Some work exclusively with weapons, some exclusively with furniture, from 1st person, with animObject, in interaction scenes, etc. The most common are faceemotion (facial expression), soundPlay (play a descriptor from ck), animObjLoad/Draw (draw animObject from ck). 

Gamebryo and havok animations can interact like furniture, like animObject, like weapons. 

List of annotations.

https://disk.yandex.ru/d/th8tI0jnFwF6-g

BasketBall_3ds.png

Posted
5 hours ago, South8028 said:

The annotations are attached to the root using a dope sheet. There are more than a hundred havok annotations, but they are all specialized. Some work exclusively with weapons, some exclusively with furniture, from 1st person, with animObject, in interaction scenes, etc. The most common are faceemotion (facial expression), soundPlay (play a descriptor from ck), animObjLoad/Draw (draw animObject from ck). 

First off: Hello and thanks for responding to my thread!

 

Second, thank you for this information on annotations. This certainly narrows my very broad search of them and I'll take a look at them to see when and/or how they get used.

 

I googled what a "dope sheet" was with respect to animations. Am I correct in that it's the time sheet associated with each frame in the animation?

 

When you say the dope sheet is attached to the root, what is the "root" when you say it? RohZima mentioned a root skeleton which some offsets/positions but that doesn't seem like what you're referring to here.

 

Thank you again for your response!

Posted (edited)
4 hours ago, Here4SlootyMods said:

First off: Hello and thanks for responding to my thread!

 

Second, thank you for this information on annotations. This certainly narrows my very broad search of them and I'll take a look at them to see when and/or how they get used.

 

I googled what a "dope sheet" was with respect to animations. Am I correct in that it's the time sheet associated with each frame in the animation?

 

When you say the dope sheet is attached to the root, what is the "root" when you say it? RohZima mentioned a root skeleton which some offsets/positions but that doesn't seem like what you're referring to here.

 

Thank you again for your response!

Dope sheet is a key editor panel in 3ds. Dope Sheet and Curve Editor are the main tools for creating animation in 3ds. The Dope Sheet contains a complete hierarchy of elements of all models and an editor screen for manipulating all nodes on temporary tracks. You open the skeleton root and add entries to the root, filling these entries with annotations in the desired frames. It should also probably be clarified... The hkx format is a method of packaging regular xml. hkx is xml. You should download the f4ak package from the nexus. There is an unpacker called hkxPack. You can unpack any hkx into xml, find examples of annotations in them, and study the structure. 3ds also already has a direct hkx importer, but unfortunately it only works with a biped rig.

 

In this topic, I explained in detail to a person about all the necessary tools for animation in fo4.

Edited by South8028
Posted
14 hours ago, South8028 said:

Dope sheet is a key editor panel in 3ds. Dope Sheet and Curve Editor are the main tools for creating animation in 3ds. The Dope Sheet contains a complete hierarchy of elements of all models and an editor screen for manipulating all nodes on temporary tracks.

Oh ok I see.

 

I think I know what the Blender equivalent is.

14 hours ago, South8028 said:

You open the skeleton root and add entries to the root, filling these entries with annotations in the desired frames.

That makes a lot more sense now.

 

 

 

I'll take a look at the thread and play around with animations a bit. I'm not looking to create animations but the project I'm working on does require a thorough knowledge of a field (3D graphical artistry) that I'm not experienced in.

 

Thank you again!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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