[MOD] Faithful 3D Animals

A curated forum for compatible and maintained mods. Users are unable to create new topics in this forum but can reply to existing topics. Please message a moderator to have your mod moved into this forum area.
User avatar
Ninelan
Posts: 187
Joined: Wed Jun 30, 2021 10:30 am
Location: Under your bed
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by Ninelan »

I would love to see it in motion!
Mmmmm. So on regards to animations.

Something like...

everyone gets:
idle->laying down->sleep
walk +(run/trot?)

Pigs/Horses/Cows/Camels will:
graze

Dogs/Cats will instead:
sit

Idles + laying down/sitting get a few 'variants' to break up monotony like an animal scratching its back or tapping the ground or looking around?

Seagulls might be a bit tricky. I actually have them flying(the issue is the model atm is tied with the log)! But it would be best if the seagull just cycled between a few idles.
Sorta like: standing still, stretching its wing, preening?

It will take me a few days to get them going, but i'll tell for each instance when I update the fbx-es in the root folder.
i'll probably give them a new name like Nanimal_animated-bundle.

(I'm also making some changes to the armature, namely adding some helper bones on the knees so the models will look nicer while laying down) A sneakpeek:
Image

I have since updated the horse textures to include eyelids.
You can support me and in turn my art on my Patreon.
https://www.patreon.com/fireflyness

l3lessed
Posts: 1399
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by l3lessed »

Thanks for all the content to work with. What I got done today was understanding and setting up the animation object for multiple animations on a single prefab/model. This also included building a animation dictionary to store all the individual animations in a single dictionary object for easy retrieval and manipulation of animations for coders, including me. Now, just grab the animation list dictionary, use the animation type enum to select the specific animation you want, and tell it to play. No need to go digging down into the object to manually pull and manipulate the individual animations. All this is taken care of for coders on the initiation of the object and the population of its animation dictionary.

Here is an example of how easy it will be for other modders to mess with animations:

Code: Select all

//grab the controller script for the animal model.
HorseController HorseInstance =  Object.GetComponent<HorseController>();
//grab the animations object from the horse object and check if it is playing the tail_swoosh animation using the dictionary and enum type.
            if(!HorseInstance.Animations.Play(HorseInstance.horseAnimationList[AnimationType.tail_swoosh]))
//if it wasn't playing, start playing it.
                HorseInstance.Animations.Play(HorseInstance.horseAnimationList[AnimationType.tail_swoosh]);
These three lines of code will grab the controlling script on the horse, grab the animation object containing all the individual animations, tell it to play an animation, then use the built in animation list object with the enum to select and tell it to play the specific tail swoosh animation.

So, some things to note when making these models ready for importing and easy access of animations.

On top of ensuring legacy animation rig is selected in the fbx rig settings area, you need to populate the prefabs animation list with all the individual armature animations.
  • Ensure the prefab has an animation object attached to it and the animations list size matches the number of unique animations for the model. For the horse, it is at 10 now.
  • After that, open your imported fbx settings with all the armature individual animations contained in it and ensure it matches the prefabs/model name it is connected to. 201_0 prefab needs to have the fbx with its animations named 201_0 also. This ensures every model can have its own unique animation set.
  • start dragging and dropping the individual armature animations in the fbx settings object into the prefabs animation list so there is a single animation in the list for each animation the model is supposed to have. *Also, ensure the animations in the prefab list match exactly the order of the animations in the armature list. This is critical for ensuring my animation dictionaries populate correctly for easy pulling and playing animations.*
As seen in this picture, the prefab has the animation object attached, it has 10 animation elements for each horse animation, and each element aligns place wise with the fbx armature animation list. Now when the prefab is imported, it will populate the object in the scene with the animation object and its stored animations, and any script monkey can then grab the animation objects to play or do what they want.
Image
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

User avatar
Ninelan
Posts: 187
Joined: Wed Jun 30, 2021 10:30 am
Location: Under your bed
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by Ninelan »

This is great, and also;

I have updated the drive with the cow and horse and both dogs.
The two animals now feature animation phases for laying down and resting.
The horse now grazes too.

I'm slowly getting on top of all the animal animations.
Cats now have colour variants too!
You can support me and in turn my art on my Patreon.
https://www.patreon.com/fireflyness

l3lessed
Posts: 1399
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by l3lessed »

I was waiting to upload a video until I had all the features in and not looking to bad.

Right now, I'm stuck on properly blending multiple animations. I want to be able to play tail and head animations with the walking.

This video is the very first attempt at using the animation dictionary with the roaming code.


It is a solid start. There are some things that need fixed before a public release in my opinion.

Need to blend animations better when starting and ending walks to minimize ice skating appearance.
I also need to try and hook the animation play speed into the movement speed, so it looks more natural.
The roaming code is a good start, but it needs more work, especially when it comes to walking into buildings.

We're getting there.
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

l3lessed
Posts: 1399
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by l3lessed »

So, learning how to blend and transition between animations better.

Here is an improved pass with blending and the walk animation use for slower walking speed.



Some things that are helpful though.
  • If animations all start at the same idle animation position, it makes transitions much easier to blend together in the code and by the animation object.
  • If you wish to have a state different than idle position, you need a transition animation from the base default idle animation all position start from. That should then transition into the end position of the new idle position state you want. Right now, you have a number of animations with differing idle start states without transitions.
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

User avatar
Azteca
Posts: 143
Joined: Tue Mar 26, 2019 12:38 am

Re: [MOD-wip] Faithful 3D Animals

Post by Azteca »

Wow, that’s already looking great. Clearly some kinks to work out but this is going to increase immersion for sure.

User avatar
Ninelan
Posts: 187
Joined: Wed Jun 30, 2021 10:30 am
Location: Under your bed
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by Ninelan »

I've been looking forward to seeing how it looks like! The result is amazing! With a little bit more tweaking and adjusting speed, it will be perfect.
It's hard to believe this would be possible in Daggerfall in all honesty, but there it is.

I noticed a small transparency error on the other horses' mane, I'll need to check if the corresponding texture in the drive happens to not be transparent and fix it.


Seeing how it looks like now, I can do some small animation adjustments for better flow.
I'll probably introduce the following animations for blending? Something to play here or there along with the tail swoosh.
Look_left
Look_right
Blink
Will you perhaps require a left and right turning animation when they steer?

I'll also rename Idle_bay and Idle_grey to just 'Bay' and 'Gray' to make them more distinct as billboard poses so animations are less ambiguous. I'll also stop exporting the versions of that animation with the tail swoosh integrated-they were just for the replacement mod and the tail_swoosh will do just fine.


There are also a few extra ways to make them look a bit more natural.
-The horse doesn't need to bob its head. (the 'Yes' animation is something horses do when they're very excited/energised/near a person) so it's not necessary to have it play all the time.

Once they stop walking they can spend a prolonged time idling(with the idle occasionally broken up by the idle_x animations), or standing still in the billboard poses, graze for a minute or two or lay down and rest that way (and maybe sleep) before getting up and meandering again.

It might take me some time to refurbish everything. I'll make a second pass through all the animations to see if they're all consistently named. The cat will be completed soon too.
You can support me and in turn my art on my Patreon.
https://www.patreon.com/fireflyness

l3lessed
Posts: 1399
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: [MOD-wip] Faithful 3D Animals

Post by l3lessed »

greet, I need to get in some form of basic acceleration in for the walking/trotting animations.

I put in a really basic trot check last night, where if the horse had enough room, it would start to trot faster, and then slow down. However, without proper acceleration code tied to the blending and animation speed, it looks a little to ice skaty and quick of a switch.

So, what I learned, as it applies to creating animations.
  • Because we are using animations now, the base model pose does not matter at all. What matters is the base idle animation that is continually being applied and looped to the model. The horse models should be identical in start poses, and the base looping idle animation is what would be used to make the horses look different. I'm already doing this, as explained in the bullet below this one. When playing skyrim, if you know the infamous t-pose bug that appears with animations on all humanoid models, this is merely you seeing the models base pose position because the idle animation system broke and the model defaults to base t-pose position.
  • An idle state can be set to any animation by using the Animation.blend object and then setting its target weight to be the heaviest animation that is blended; Right now, I'm using the idle_bay as the base blend animation. This will override the models base pose, and default the idle to loop the set blended animation continually, and because its weighted the most, it will operate as the base animation for blending in all the others. I prefer this, as it then allows you to blend in all the other idle animations without having to worry about returning back to the base model position to stop misalignment. The only drawback is, if you want the original animation to look exactly the same, the blending will affect it and change how it looks a little, but for me, this is fine and looks more natural anyways.
  • The idle state, whatever you decide for the model, could have some forms of basic movement/animations built into it. Right now, if I'm not continually playing and blending in the head animations and tail animations into the idle bay animation, it would look like a statue because of how rigid and blank faced the idle animations are. What would be preferable and more natural looking, is to loop in some form of basic movement into the idle animation, if it is just moving the feet a tiny bit, or blinking the eyes, or doing a tiny head tilt/shake. Most animals, in a restful state, are still constantly moving in small ways. However, if you would rather create tons of individual idle animations, and just pull them randomly and blend them in to mimic the constant small movements, that is working now. Up to you what method you prefer.
I'll move on to the other animals, once I have a solid framework going for the horses. Horses are actually one of the harder animals to animate and make look real because of how complex their walking and running movements are; it's why drawing a running horse in still or animated is considered a marker of a skilled artist, and why you see lots of pictures of horses in art.
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

User avatar
Ninelan
Posts: 187
Joined: Wed Jun 30, 2021 10:30 am
Location: Under your bed
Contact:

Re: [MOD] Faithful 3D Animals

Post by Ninelan »

Thanks to John Doom's tutorship, the animals now animate!

The mod is not quite perfect yet.
So expect some tweaks down the line to the animations themselves as they look quite different up close and in-play versus how they look like after toiling all day on them, heh.
You can support me and in turn my art on my Patreon.
https://www.patreon.com/fireflyness

Post Reply