[accepted as gsoc 2008 ] Animation Enhancements
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
[accepted as gsoc 2008 ] Animation Enhancements
I have given an application on this subject in google summer code.
Now I will make detailed analysis of this new feature.
Based on Ogre's current animation system, we have a great deal work to do aiming at achieving motion data driven and physical simulation combination effect which has been researched carefully in Michael J. Mandel's series of works.While I have also referenced to a lot of other papers and articles within this subject.
Motivation:
The ultimate goal is great, we all would like to have a character whether it is a human or other kinds of creature, that can behave lively in any gesture and reponse to various environmental situation.
What we need
1ã€
Now I will make detailed analysis of this new feature.
Based on Ogre's current animation system, we have a great deal work to do aiming at achieving motion data driven and physical simulation combination effect which has been researched carefully in Michael J. Mandel's series of works.While I have also referenced to a lot of other papers and articles within this subject.
Motivation:
The ultimate goal is great, we all would like to have a character whether it is a human or other kinds of creature, that can behave lively in any gesture and reponse to various environmental situation.
What we need
1ã€
Last edited by westine on Wed Apr 23, 2008 7:18 am, edited 1 time in total.
- tuan kuranes
- OGRE Retired Moderator
- Posts: 2653
- Joined: Wed Sep 24, 2003 8:07 am
- Location: Haute Garonne, France
- x 4
- Contact:
Please Don't crosspost.
FYI, Some Ogre-physic engine "lifeless" ragdoll implementations already exists (see ogreaddons : NxOgre, OgreNewt, OgreOde). AFAIK, "blended" ragdoll doesn't exists. (both physic + modeled animation)
Please give some specific implementations details, planning.
How do you plan to do it ?
FYI, Some Ogre-physic engine "lifeless" ragdoll implementations already exists (see ogreaddons : NxOgre, OgreNewt, OgreOde). AFAIK, "blended" ragdoll doesn't exists. (both physic + modeled animation)
Please give some specific implementations details, planning.
How do you plan to do it ?
- Kencho
- OGRE Retired Moderator
- Posts: 4011
- Joined: Fri Sep 19, 2003 6:28 pm
- Location: Burgos, Spain
- x 2
- Contact:
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
more detail
Since the last week, I have done some code level work, in order to work out the schedule.
There are four transitions in any animation state.
kinematic to kinematic transition
kinematic to dynamic transition
dynamic to dynamatic transition
dynamic to kinematic transition

There are four transitions in any animation state.
kinematic to kinematic transition
kinematic to dynamic transition
dynamic to dynamatic transition
dynamic to kinematic transition

-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
how to implement
Kinematic to kinematic transition
1-3 weeks AI FSM and animation Blender

For FSM is mature and there are a lot of code and references to look up, the most things here is tuning the animations in place which is usually done weel with the help of scene editor, and then store the parameters to some script language(I would like to use Python or lua),then game engine can interpret them runtime.
There is already a simple Animation Blender for Ogre, I will enhance it.
1-3 weeks AI FSM and animation Blender

For FSM is mature and there are a lot of code and references to look up, the most things here is tuning the animations in place which is usually done weel with the help of scene editor, and then store the parameters to some script language(I would like to use Python or lua),then game engine can interpret them runtime.
There is already a simple Animation Blender for Ogre, I will enhance it.
Last edited by westine on Wed Apr 11, 2007 6:28 pm, edited 2 times in total.
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
I am very sorry for my late update
Because I have some work to do in my university, and I don't know the deadline of Google summer code acceptance, so I will update these things tonight, this can demonstrate my work on this animation enhancement,hope you will pick me, I am very glad to participate in this project, to cooperate with all of you, to be guided by my mentors.
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
kinematic to dynamic
according to kinematic to dynamic transition,
I have carefully read the SimpleScenes Demo in OgreOde, where radgolls are just
radgoll->getAnimationState(meshAnimation[b->sSelectedMesh])->setEnabled(false);
radgoll->takePhysicalControl(_world, _space, false);
hit_body->addForceAt(pickRay.getDirection() * 250000, hit_point);
radgoll->releasePhysicalControl();
and so on
It is just let the OgreOde do the left physical simulating things.
All I have to do is generalizing this procedure to give common interface class for kinematic to dynamic transition.
4th week will be enough, some buffer is preferred.
I have carefully read the SimpleScenes Demo in OgreOde, where radgolls are just
radgoll->getAnimationState(meshAnimation[b->sSelectedMesh])->setEnabled(false);
radgoll->takePhysicalControl(_world, _space, false);
hit_body->addForceAt(pickRay.getDirection() * 250000, hit_point);
radgoll->releasePhysicalControl();
and so on
It is just let the OgreOde do the left physical simulating things.
All I have to do is generalizing this procedure to give common interface class for kinematic to dynamic transition.
4th week will be enough, some buffer is preferred.
Last edited by westine on Wed Apr 11, 2007 6:28 pm, edited 1 time in total.
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
Dynamic to Dynamic
Dynamic to Dynamic transition
Transitioning between dynamic motions is straightforward because it involves a simple substitution of controllers. The continuity of the motion is guaranteed because the state of the system (positions and velocities) is preserved when the new dynamic action begins. The new controller begins control over the simulated character immediately upon the user choosing a new dynamic action.
Interactive Interfaces for Character Animation
and controller-based simulation
5th to 8th week
External environment input like force and position parameters will be set as in parameters for controllers, controllers is a class of dynamical system, which can add force, change velocity and set absolute position or direction, etc.
OgreOde interface and design of Controller needs
3weeks and the IK thing which will be implemented after the effects of controllers can learned from CCD IK lib. one week
Transitioning between dynamic motions is straightforward because it involves a simple substitution of controllers. The continuity of the motion is guaranteed because the state of the system (positions and velocities) is preserved when the new dynamic action begins. The new controller begins control over the simulated character immediately upon the user choosing a new dynamic action.
Interactive Interfaces for Character Animation
and controller-based simulation
5th to 8th week
External environment input like force and position parameters will be set as in parameters for controllers, controllers is a class of dynamical system, which can add force, change velocity and set absolute position or direction, etc.
OgreOde interface and design of Controller needs
3weeks and the IK thing which will be implemented after the effects of controllers can learned from CCD IK lib. one week
Last edited by westine on Wed Apr 11, 2007 6:29 pm, edited 1 time in total.
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
D2K
Dynamic to Kinematic transition
The paragraph below is pciked from Michael J. Mandel's master thesis
"Versatile and Interactive Virtual Humans: Hybrid use of Data-Driven and Dynamics-Based Motion Synthesis"
What we need to do is add specific controllers and implement our motion database and motion search algorithms.
These will take 5 weeks, motion search algorithms cost 2 weeks,
motion database will be added to K2K step, specific controllers which are needed to balance and adjust body postures are involved in K2K and D2D steps, they will take one week each.
In most cases, the simulation will have significantly changed the posture of the character during the time that is was active. Thus the simulation is not likely to be in a pose close to any frame in the motion database. When the arms impact the ground, the ANN search is used to find the closest frame in the database to the simulated posture and a special controller is used to allow the simulation to naturally settle near this frame. Using an arm contact event to trigger the search process provides a balance between allowing a natural falling behavior and providing time for settling near motion data before the body comes to rest. The details of this controller are covered in Chapter 5. When the settle controller has moved the character sufficiently close to the pose found in the search, a transition to motion graph is performed using the same blending scheme used to carry out the motion graph transitions described in Section 3.1.4. Although it would have been possible to achieve this with only blending, the settle controller is preferred because it still allows the character to remain subject to physical constraints, respond to the external environment, and avoid some types of blending artifacts such as object interpenetration and foot sliding.
Michael J. Mandel has given an example for controller and Ik use.
According to motion database and search algorithm parts, I may be will contact to him for help.
The paragraph below is pciked from Michael J. Mandel's master thesis
"Versatile and Interactive Virtual Humans: Hybrid use of Data-Driven and Dynamics-Based Motion Synthesis"
What we need to do is add specific controllers and implement our motion database and motion search algorithms.
These will take 5 weeks, motion search algorithms cost 2 weeks,
motion database will be added to K2K step, specific controllers which are needed to balance and adjust body postures are involved in K2K and D2D steps, they will take one week each.
In most cases, the simulation will have significantly changed the posture of the character during the time that is was active. Thus the simulation is not likely to be in a pose close to any frame in the motion database. When the arms impact the ground, the ANN search is used to find the closest frame in the database to the simulated posture and a special controller is used to allow the simulation to naturally settle near this frame. Using an arm contact event to trigger the search process provides a balance between allowing a natural falling behavior and providing time for settling near motion data before the body comes to rest. The details of this controller are covered in Chapter 5. When the settle controller has moved the character sufficiently close to the pose found in the search, a transition to motion graph is performed using the same blending scheme used to carry out the motion graph transitions described in Section 3.1.4. Although it would have been possible to achieve this with only blending, the settle controller is preferred because it still allows the character to remain subject to physical constraints, respond to the external environment, and avoid some types of blending artifacts such as object interpenetration and foot sliding.
Michael J. Mandel has given an example for controller and Ik use.
According to motion database and search algorithm parts, I may be will contact to him for help.
- Wolfmanfx
- OGRE Team Member
- Posts: 1525
- Joined: Fri Feb 03, 2006 10:37 pm
- Location: Austria - Leoben
- x 99
- Contact:
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
Detailed schedule
Detailed schedule
According to the priorities of the original request for animation enhancement
I make my schedule as below.
May 2007
1 -- 2 week: AI FSM
3 -- 4 week: animation blender
June 2007
5 -- 5 week: OgreODE external Interactive Interface
6 -- 7 week: dynamical Controllers
8 -- 9 week: IK
July 2007
9 -- 10 week: motion database
11 -- 13 week: motion search algorithms
August 2007
debugging , documenting and Postmortem
According to the priorities of the original request for animation enhancement
I make my schedule as below.
May 2007
1 -- 2 week: AI FSM
3 -- 4 week: animation blender
June 2007
5 -- 5 week: OgreODE external Interactive Interface
6 -- 7 week: dynamical Controllers
8 -- 9 week: IK
July 2007
9 -- 10 week: motion database
11 -- 13 week: motion search algorithms
August 2007
debugging , documenting and Postmortem
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
some interpretation
Maybe this seems a too big project for google summer coder, so I will simplify some part, such as IK, I will use existing IK lib as much as possible,and will ask for help from some authors or experts, of course my mentors, either via Internet or in real life.
As you can see, I have heard google summer code late March, so I have spent only two weeks in my leisure time after classes doing all of this, I really like this project, I have been a game programmer, this time I want to share my experience and my passion with others.
Imagine that, this summer in Beijing China, I am coding for my favorite Ogre engine, and next summer I will be coding another open source project for other very interesting thing, just like 2008 Olympic Game. Wonderful feelings!
Ahh, my thanks to all of you can not be enough, please pick me to participate in.
Best wishes. your sincerely Min Du
Tsinghua University
Beijing China
As you can see, I have heard google summer code late March, so I have spent only two weeks in my leisure time after classes doing all of this, I really like this project, I have been a game programmer, this time I want to share my experience and my passion with others.
Imagine that, this summer in Beijing China, I am coding for my favorite Ogre engine, and next summer I will be coding another open source project for other very interesting thing, just like 2008 Olympic Game. Wonderful feelings!
Ahh, my thanks to all of you can not be enough, please pick me to participate in.
Best wishes. your sincerely Min Du
Tsinghua University
Beijing China
- ahmedali
- Gnome
- Posts: 302
- Joined: Fri Feb 20, 2004 8:52 pm
- Location: Lahore, Pakistan
- Falagard
- OGRE Retired Moderator
- Posts: 2060
- Joined: Thu Feb 26, 2004 12:11 am
- Location: Toronto, Canada
- x 3
- Contact:
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
Too late to update
Thanks all the same, I will work it out by myself with all of your helps.
-
- Google Summer of Code Student
- Posts: 62
- Joined: Sun Apr 01, 2007 12:12 pm
time is the key point
Although I have worked out some code already for part one of my schedule,
and spent so much time researching IK, motion search algorithm and blendering, I don't have enough communication with mentors, and the time difference make me seldom appear at the same time others are on line.
So, this make the differences.
It is my fault, I will take care of it ever after.
Thanks all the same.
and spent so much time researching IK, motion search algorithm and blendering, I don't have enough communication with mentors, and the time difference make me seldom appear at the same time others are on line.
So, this make the differences.
It is my fault, I will take care of it ever after.
Thanks all the same.