JoeJ thanks for help, you`re helping too much half of your first post was enough.
Bone Animation, feedback needed
NikiTo said:
When i am complete zero at something i need to read a whole e-book. Preferably with the word
I could not find such a book yet. I think this book could make millions. I would buy it. :D
NikiTo said:
You give me 100 tensors…. and what next?
Wiki saying it came with differential geometry first, i thought vector or scalar fields would be an example, like those crosses and waves here:
![](https://uploads.gamedev.net/forums/monthly_2020_05/acebb6897cfa44b9bff65eb113b468ed.image.png)
I relate those per vector quantities with neighboring vertices to make them point into similar directions, or make them match to form a wave. I guess that's an example.
Knowing Tensors are also used for NNs, this is pretty similar: Having a graph with adjacent nodes and perform linear equations between them.
So it's probably always about discretizing stuff to get some finite number of quantities, and then do some processing between them, like minimizing energy and error.
Calin said:
JoeJ thanks for help, you`re helping too much half of your first post was enough.
It's too much to learn in a single day, but having heard it once should help later…
Since we got here, might as well say where I`m heading with it: I want to make physics based/driven character animation
My project`s facebook page is “DreamLand Page”
Calin said:
physics based/driven character animation
uuhhh… my favorite :D
I worked on this too, with good success:
This is accurate simulation, so could make a real robot walk. With some more work i think i can good enough motion for a game. Animation is too much work and no option. Also i'm convinced animation belongs to movies, not to interactive games.
It is hard. If it would be easy we would see it more often. Natural Motion seems the only company which brought something similar to games, and even in robotics Boston Dynamics seems the only company which has proper locomotion at all.
When i was young i worked on my own physics engine. But my joints were too soft to do this. Many years later i found Newton Physics engine which is very accurate and stable. No comparison to any other physics engine i've ever tried before.
So i thought i'd give it another try. I learned how to code my own joints with motors. Newton is very flexible here, and using it i do not need to work on collision detection or constraint solver, which is hard to get right.
After having those basics, i had to learn about modeling human balancing with inverted pendulum. Balancing this pendulum has a closed from solution, but the equation is very complex. Could not work with this manually. I used math programs to solve equations for me.
After that, i use a mapping between simple pendulum and ragdoll skeleton, which is a matter of inverse kinematics. The goal is to preserve physical properties like mass and inertia.
You see, each of those things is hard and it's all math that is hard to learn without background. It took me many years to get there, at least a decade. So it's a long time goal.
I learned things in this order:
Work with transform hierarchies to have a skeleton. Matrices, quaternions, but first: Dot and Cross product. Get experience with geometrical building blocks like intersections, distance, closest points etc, 3D rotations. Play back animation.
With this, you can try to generate procedural animation. There is no need for physics, you also can do it with kinematics alone. (E.g. recent research using NNs and motion capture to learn from also does not use physics at all and results are very good.)
If you want physics (the real thing), you can learn this, or you use a physics engine. My own conclusion here is: I could never come close to Newton with my own stuff. It's free and perfect - so why should i waste years again only to end up with something worse?
And i'm really not the kind of guy who glues some libraries together. Newton is the only one i use at all. (BTW, its developer started work on active ragdolls as well meanwhile - looks pretty good so far and easy to use.)
On the other side i do not regret the work on my own physics engine before. Learned all the basics i need to know.
To keep characters upright i tried a lot of things. I started with no knowledge at all and made assumptions like ‘keep the center of mass between the feet somehow’. But this did not really work. It took me along time to figure out what works. Robotics papers, lots of math.
Yeah, prepare to learn about math all the time. For me this is still the main challenge in programming, because what ever i want to do - first need to figure math out which is hard if you can not read math guys notation, and don't know what they mean with their fancy words.
I could not propose a single resource to learn math. Just picked up things here and there, and mostly only after inventing them myself and using them for years i realized how math guys call that same thing. It's frustrating, but i like math so keep going.
Well, i hope i can continue this work sometime in the closer future… maybe next year, or two of them… damn life is short.
JoeJ said:
damn life is short.
It is the end of the world. No other explanation why anything i AND with 0xFFFFFFFF is giving me 0xFFFFFFFF again. It is the end of the world. The Matrix is breaking.
JoeJ said:
Knowing Tensors are also used for NNs,
This is what i need tensors for. (I did not see your comment until now)
I haven`t even started yet but my guess is that getting a walking human balanced is harder that making a running human balanced.
Also i'm convinced animation belongs to movies, not to interactive games
If you also add raytracing to a game, you get a game that beats reality.
My project`s facebook page is “DreamLand Page”
Calin said:
I haven`t even started yet but my guess is that getting a walking human balanced is harder that making a running human balanced.
Interesting guess. It's right. While i have not made running biped yet, i made a one legged hopper, which is same motion than running because can't achieve stable balance. Because of this the motion is pretty constrained and there is not much freedom in how we run.
Walking is not like this. It switches between phases of stable and unstable balance which makes it indeed much harder. It's more difficult to come up with an power efficient strategy, and there are many styles of walking. In the video i used a dumb state machine just to show it technically works, but the one legged hopper does not need to know any state at all. It is at any time clear what has to be done to keep running towards a goal - no matter if in flight or touching ground. So a running creature would not need any memory in it's brain to keep running.