Skinned Model

Is it me or this is just hell to get working? Nope, this is not constructive, will get back to it in moment, just need to scream after 8 hours of pure frustration.

I dont even…

Edit:
This is obviously based on http://metlab.cse.msu.edu/betterskinned.html

Progress:
Some more frustration

Did the screaming not help…?

O M G… that animation almost made me puke…

Just give up already!
"Dude.fbx" is the devil.

I will join you in skinning hell tomorrow. I’m not looking forward to it.


This is my own model with rigging and animation, it seems like model is alright as long as animation is paused, but animation player from “better skinned animation” simply looks faulty to me. I will try to find issue tomorrow, it is absurdly frustrating to lose so much time with something so basic and to think I need multiple animations, blending between animation and all of that working with modular models… sigh.

I had the same results when using BetterSkinned, so I wrote my own implementation of animation controller.
Your screenshots in the first post show that you have problems with skin transforms (there’s something wrong with dude.fbx, I don’t remember how I fixed this thing). BTW: this is what happens if you don’t interpolate correctly :smile: :

Haha i see im not the only one, full of hope, that have had a pulsion to break everything after trying this example from metlab, trying to adapt it etc and see after hours it does not still work as expected.
Dude works with xna but i’ve never seen it fully ok with monogame, always having a part going mad

Well, I dont need this model to work, but I dont believe that my own will work if this one wont.

Sizaar, you had exactly same result but you manage to fix it by writing your own… what exactly, content processor or animation player?

It would help me greatly if I will know where to start, since this can be Animation Player, Bone handling, Content processor, Shader…

I had to write both the content processor and animation player. Animation player in BetterSkinned was unfit for my engine, so I wrote a player that handles linear keyframe interpolation, smooth transitions between clips, procedural clips (created from code) and loading multiple clips from .FBX file.

Try playing this dude model, it’s corrected: https://github.com/DigitalRune/DigitalRune/tree/master/Samples/Content/Dude

Well, I need same features, ragdoll and modular models, so I better start from blank list anyway. Thank you a lot, if you have any resources that you used I would be grateful, obviously I will google, but resources that were used for successful implementation are always appreciated.

Edit: Yeah, that one works:


still would like to know what is wrong with previous once since it imported into several 3d apps just fine, maybe I will find out along the way.

This book is a real gem:
http://www.gameenginebook.com/
Page 491 - Animation Systems
You can find it online :innocent:.

Perfect, thank you. I don’t know how to elaborate this into 20 chars for mini… this will do.

if anyone is interested: Found first mistake in BetterAnimations. Interpolation of key spans beyond last key for bone if overall animation is longer. Thus if for instance left arm moves for 12 frames and right one for 30, left arm will continue in movement for 18 frames according to last interpolation.

For sure this is a nice catch :wink:

It is going well so far I would say. I implemented interpolation between clips but while doing so realized that timeless problem of interpolation on sphere, it is impossible to interpolate more than two quarternions correctly in noniterative manner… for kinda obvious reasons, but that means no accumulation of weighted clips for me (sad). So, instead I am right now taking another approach, I will still keep function that will let me blend between two clips (trying to design it in way that it will have somehow intelligent and automated behavior) and building system in way where independent animations (affecting different bones) can be played at same time.

As for problem I mentioned previously, either fix in code, just make sure your keyframe2 stays where is suppose to or freeze clip after you pass lass keyframe. It is ofc also fixable on model level, just copy last frame of animation that ends first to last frame of animation overall but I understand if ppl consider that dirty approach.

Edit:
Yeah, got it, I can now import partial skeletons in different clips, player will assign appropriet bones and all plays nicely together, required some changes in content procesor optimization logic.

Alright, sooo: Clips targeting specific part of models are really working, I can control for instance top and bottom parts of body independently, so running/walking for lower body and handling different kind of weapons by upper body. Procedural animations as rotation of head or torse are easy at this point. Modular meshes are working, just finished it and tested it, thus adding / changing different part of armors is trivial at this moment, weights and bone targeting works without visible issues.

At this point I probably should look into hiding specific meshes to prevent some clipping or figure out if replacing part of meshe as equipment solution wouldnt be better, than again, current solution lets me layer armor and what not.

After I am done with this part I will start working on final assets.

1 Like