Update to tutorial, please comment on content
by Demolishun · in Artist Corner · 06/09/2006 (9:46 pm) · 24 replies
tdn.garagegames.com/wiki/DTS/Blender/Creating_an_Advanced_Character
Please comment on this tutorial as it is now. I still have more to do, but I think it is very userful so far. Please note that this is an advanced tutorial so you must have gotten your feet wet with exporting and animating DTSs using Blender. The purpose I believe is well defined, but I would be interested in more topics to be convered for by this tutorial to make it truly advanced.
Thanks,
Frank
P.S. I apologize to those who are not able to get to TDN pages, but I did not think there was a more appropriate place to post.
Please comment on this tutorial as it is now. I still have more to do, but I think it is very userful so far. Please note that this is an advanced tutorial so you must have gotten your feet wet with exporting and animating DTSs using Blender. The purpose I believe is well defined, but I would be interested in more topics to be convered for by this tutorial to make it truly advanced.
Thanks,
Frank
P.S. I apologize to those who are not able to get to TDN pages, but I did not think there was a more appropriate place to post.
About the author
I love programming, I love programming things that go click, whirr, boom. For organized T3D Links visit: http://demolishun.com/?page_id=67
#2
But I think that point 8 is not clear enought yet... I am used to not adding ground transforms for the run, back or side animations, because in TGE the velocity for Players (and derivated from this class, like bots) is set somewhere in script (player.cs, if I remember well). It works just fine. I have read that this option was introduced because the artists which built Orc were used to animate those cicles translating the model forward as the cicle advances. But I think the most common practice nowadays is animating the cicles at the same place, without moving the model. The only exception, as far as I know, are the death animations, because they are very irregular and needing those extra controlers for being played acurately in TGE.
06/10/2006 (9:31 am)
Great work, thank you very much.But I think that point 8 is not clear enought yet... I am used to not adding ground transforms for the run, back or side animations, because in TGE the velocity for Players (and derivated from this class, like bots) is set somewhere in script (player.cs, if I remember well). It works just fine. I have read that this option was introduced because the artists which built Orc were used to animate those cicles translating the model forward as the cicle advances. But I think the most common practice nowadays is animating the cicles at the same place, without moving the model. The only exception, as far as I know, are the death animations, because they are very irregular and needing those extra controlers for being played acurately in TGE.
#3
I am not sure why it would not animate unless you did not select the armature first then select the animation.
8 - The groud transform is very confusing at first. I will try and explain that section better.
9 - Triggers allow you to play a sound when a foot hits the ground, or other actions. As you can tell there is not much there yet. I will be populating this soon.
I like your changes. Is it okay if I reword it a bit to fix the grammar?
Gustavo,
Ground transform animations do not specify the velocity of the player. They specify the velocity the animation will play at in relation to the velocity of the player. That way the faster you run the faster the run animation plays. Or do you mean there is a way to control the velocity scale for each animation? Also, you do not translate the model forward, only the Bounds object. The amount of distance the object moves during the animation will give the exporter a scale to use when adjusting the speed of the animation dynamically. I will try and explain this better and maybe create some screenshots to illustrate.
06/10/2006 (11:22 am)
Philippe,I am not sure why it would not animate unless you did not select the armature first then select the animation.
8 - The groud transform is very confusing at first. I will try and explain that section better.
9 - Triggers allow you to play a sound when a foot hits the ground, or other actions. As you can tell there is not much there yet. I will be populating this soon.
I like your changes. Is it okay if I reword it a bit to fix the grammar?
Gustavo,
Ground transform animations do not specify the velocity of the player. They specify the velocity the animation will play at in relation to the velocity of the player. That way the faster you run the faster the run animation plays. Or do you mean there is a way to control the velocity scale for each animation? Also, you do not translate the model forward, only the Bounds object. The amount of distance the object moves during the animation will give the exporter a scale to use when adjusting the speed of the animation dynamically. I will try and explain this better and maybe create some screenshots to illustrate.
#4
I use this model : NonblendPlayerMesh.blend.zip. I am not able to animate it in Blender.
Yes you can reword my proposal.
Philippe
06/10/2006 (1:13 pm)
Frank I use this model : NonblendPlayerMesh.blend.zip. I am not able to animate it in Blender.
Yes you can reword my proposal.
Philippe
#5
I tried running the animations and they seem to work fine. What version of Blender are you using. Also, when do you press alt-a? You have to select the armature so that the bones are highlighted (maybe even be in pose mode, I don't know). Then select the animation from the action list from the action window. Then put the mouse cursor back into the window with the armature, and finally press alt-a. If the armature is not selected, or the animation is not selected, or the mouse is not in the 3D view window with the armature it will not animate. If you are already doing that, then I don't know what is going on.
06/10/2006 (5:40 pm)
Philippe,I tried running the animations and they seem to work fine. What version of Blender are you using. Also, when do you press alt-a? You have to select the armature so that the bones are highlighted (maybe even be in pose mode, I don't know). Then select the animation from the action list from the action window. Then put the mouse cursor back into the window with the armature, and finally press alt-a. If the armature is not selected, or the animation is not selected, or the mouse is not in the 3D view window with the armature it will not animate. If you are already doing that, then I don't know what is going on.
#6
I use blender 2.41.
In fact until now I have designed character with only one animation ; this is the explanation ... why "alt a" works without selecting the armature in my case.
But now it is ok with your model , it works perfectly. I understood ...
:(
Philippe
06/10/2006 (11:39 pm)
Franck I use blender 2.41.
In fact until now I have designed character with only one animation ; this is the explanation ... why "alt a" works without selecting the armature in my case.
But now it is ok with your model , it works perfectly. I understood ...
:(
Philippe
#7
I don't think Ground Transform animations specify any velocity at all: take a look at the stock Ork model and his animations in TSP and you will find that all the regular animations (run, back, side...) are build with just 1 keyframe for Ground Transform (I guess this should be a default for the exporter used), while all the death animations uses 59 keyframes. This means for me that they are not involved in any velocity calculation, but they are used to control the situation of the model in the world when it is changing in a irregular way (movements of the geometry relatives to the model center, defined by the Bounds object).
I guess also that the aceleration of the model does not need any calculations at all: you specify in script the distance a player runs in a second (default is 2 meters I think) in the default situation (no aceleration and no deceleration), and then it will be played more fast or slow depending on the aceleration and/or deceleration the model gets from the world conditions. If it moves at double velocity, the animation will be played at double. If it does at 1/2, it will do at 1/2.
That's almost what I understand so far.
I just want to crlarify this, in an effort to get the best knowledge of the matter.
06/11/2006 (12:04 am)
Frank:I don't think Ground Transform animations specify any velocity at all: take a look at the stock Ork model and his animations in TSP and you will find that all the regular animations (run, back, side...) are build with just 1 keyframe for Ground Transform (I guess this should be a default for the exporter used), while all the death animations uses 59 keyframes. This means for me that they are not involved in any velocity calculation, but they are used to control the situation of the model in the world when it is changing in a irregular way (movements of the geometry relatives to the model center, defined by the Bounds object).
I guess also that the aceleration of the model does not need any calculations at all: you specify in script the distance a player runs in a second (default is 2 meters I think) in the default situation (no aceleration and no deceleration), and then it will be played more fast or slow depending on the aceleration and/or deceleration the model gets from the world conditions. If it moves at double velocity, the animation will be played at double. If it does at 1/2, it will do at 1/2.
That's almost what I understand so far.
I just want to crlarify this, in an effort to get the best knowledge of the matter.
#8
Where are you setting the animation speed? That should be in the tutorial.
06/11/2006 (1:29 pm)
Gustavo,Where are you setting the animation speed? That should be in the tutorial.
#9
06/11/2006 (2:03 pm)
I have made some more changes. Please comment.
#10
I have been very bussy and haven't have time to investigate too much the new 1.4 version scripts, but at first sight it looks like it has been changed a lot since the 1.3 version I knew... It used to be in the player datablock somewhere, but all I can see there right now, are some complex functions related to physic conditions and some maxSpeed parameters. I am looking at engine/game/player.cc, but I guess I will need some help from a TGE expert to fully understand all this stuff again...
Anyway, there you will find a lot of other usefull parameters for fine-tunning the player behaviour.
Oh, and let me know if you get it before I can understand it better... :)
06/13/2006 (10:25 am)
Hi Frank:I have been very bussy and haven't have time to investigate too much the new 1.4 version scripts, but at first sight it looks like it has been changed a lot since the 1.3 version I knew... It used to be in the player datablock somewhere, but all I can see there right now, are some complex functions related to physic conditions and some maxSpeed parameters. I am looking at engine/game/player.cc, but I guess I will need some help from a TGE expert to fully understand all this stuff again...
Anyway, there you will find a lot of other usefull parameters for fine-tunning the player behaviour.
Oh, and let me know if you get it before I can understand it better... :)
#11
06/14/2006 (8:16 pm)
The problem is I have never seen what you are talking about in the player.cc or player.cs. I use the Torque 1.3 and have not moved to 1.4 as of yet. I will take a look since I am using 1.3.
#12
Thanks for putting out the effort.
Your tutorial lacks detail.... Especially step 4 - Setting up nodes in the player. Although I am still a beginner in using Blender, step 4 should explain in detail on how to set up empties and how to parent the meshes to these empties. In this forum and examples (.blend files) I have seen that there is no consistant format in setting up these nodes, although the turtorial (http://lowpolycoop.com/forum/viewtopic.php?t=8) was helpful but still incomplete. Please give some detail on step 4. Thanks.
I did not see any thing on texturing the meshing.... and saving these files for use in the torque.
Thank You Jesse.
06/18/2006 (1:24 pm)
@FrankThanks for putting out the effort.
Your tutorial lacks detail.... Especially step 4 - Setting up nodes in the player. Although I am still a beginner in using Blender, step 4 should explain in detail on how to set up empties and how to parent the meshes to these empties. In this forum and examples (.blend files) I have seen that there is no consistant format in setting up these nodes, although the turtorial (http://lowpolycoop.com/forum/viewtopic.php?t=8) was helpful but still incomplete. Please give some detail on step 4. Thanks.
I did not see any thing on texturing the meshing.... and saving these files for use in the torque.
Thank You Jesse.
#13
This tutorial assumes the user is modeling the meshes and rigging them from previous Blender experience. It also assumes the user knows how to texture, uv map, and export using the DTS exporter. Finally it assumes that the user knows which files to place in an appropriate directory as well as setting up any cs files. I specifically assumed these things because this tutorial would take much longer to make had I not.
There are other tutorials for Blender:
tdn.garagegames.com/wiki/DTS Check the Blender section.
en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro
06/18/2006 (11:42 pm)
Jesse,This tutorial assumes the user is modeling the meshes and rigging them from previous Blender experience. It also assumes the user knows how to texture, uv map, and export using the DTS exporter. Finally it assumes that the user knows which files to place in an appropriate directory as well as setting up any cs files. I specifically assumed these things because this tutorial would take much longer to make had I not.
There are other tutorials for Blender:
tdn.garagegames.com/wiki/DTS Check the Blender section.
en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro
#14
Well, maybe if you have some extra time. Do a intermediate tutorial on step 4. Us Noobs need a little help.
Thanks for the input and the tutorial anyway, I am sure later that it will all make sence to me.
Jesse.
06/19/2006 (10:42 am)
@FrankWell, maybe if you have some extra time. Do a intermediate tutorial on step 4. Us Noobs need a little help.
Thanks for the input and the tutorial anyway, I am sure later that it will all make sence to me.
Jesse.
#15
You setup the IK modifier for the last bone in the chain and set the settings for how far up the chain it goes, if the last bone is part of the IK, and then target the IK to a bone that is not part of the bone hierarchy. This bone is in the same armature, it just does not have a parent. In addition, to get the IK to bend properly it is important to generate an initial pose with bent limbs so that the IK does not arrive at multiple solutions and cause jerky movement. This is evident at the beginning of the animations, but after that I only keyframe the IK control bones, unless I need to give a bone a twist to get it to look right. I had to do that on the celsalute animation. If I had just put his hand up it looks odd. So I keyframed a twist at full salute into the arm for a better looking salute.
I used to think I had to keyframe every bone, but found that the exporter was doing a lot of the grunt work for me. Thanks for sparking my brain into adding these details. You are right, even though I don't want to cover every aspect of Blender the IK part needed a bit more detail. I will add what I put here when I get a chance.
06/19/2006 (7:02 pm)
I will add a note about using bones that are not in the hierarchy to use as IK targets. That is the jist of what I did. You setup the IK modifier for the last bone in the chain and set the settings for how far up the chain it goes, if the last bone is part of the IK, and then target the IK to a bone that is not part of the bone hierarchy. This bone is in the same armature, it just does not have a parent. In addition, to get the IK to bend properly it is important to generate an initial pose with bent limbs so that the IK does not arrive at multiple solutions and cause jerky movement. This is evident at the beginning of the animations, but after that I only keyframe the IK control bones, unless I need to give a bone a twist to get it to look right. I had to do that on the celsalute animation. If I had just put his hand up it looks odd. So I keyframed a twist at full salute into the arm for a better looking salute.
I used to think I had to keyframe every bone, but found that the exporter was doing a lot of the grunt work for me. Thanks for sparking my brain into adding these details. You are right, even though I don't want to cover every aspect of Blender the IK part needed a bit more detail. I will add what I put here when I get a chance.
#16
Jesse.
06/20/2006 (11:40 am)
Thanks Frank - I would never have thought of setting the IK Modifier to the last bone.... It all sounds exciting, I will soon review your tutorial but I would like to continue experimenting with staticShapes for awhile (especially using different details).Jesse.
#18
My big concern is step 4 - Setting up the nodes. I noticed a difference between your tutorial and one tutorial that is on staticShape (http://lowpolycoop.com/forum/viewtopic.php?t=8). You have Shape and Detail32 listed with an example (nodedPlayerMesh.blend) but nothing listed underneath it.
Using Outliner in Blender:
- Scene
.... - etc
.... - Shape
.... .... -Detail32
My interpretation is that the armature and collision should be placed underneath the Detail. Please help me out here.
Thanks Jesse.
06/24/2006 (9:32 am)
@FrankMy big concern is step 4 - Setting up the nodes. I noticed a difference between your tutorial and one tutorial that is on staticShape (http://lowpolycoop.com/forum/viewtopic.php?t=8). You have Shape and Detail32 listed with an example (nodedPlayerMesh.blend) but nothing listed underneath it.
Using Outliner in Blender:
- Scene
.... - etc
.... - Shape
.... .... -Detail32
My interpretation is that the armature and collision should be placed underneath the Detail. Please help me out here.
Thanks Jesse.
#19
06/24/2006 (6:27 pm)
Oh, it was not ready to export so I never parented the objects to detail32. The other tutorials finished did that later.
#20
I am reading GPGT bt Ed Maurina. On page 223, subtitled "Simplest Player Skeleton", talks about a root node called the "floor". "This node defines the bottom of the player and is where the mesh contacts the ground." IS this node an empty or a bone? Is it called root or floor?
When setting up armature for the mesh, do you have a blender file that shows a complete node setup including the root node, the shape node, Detail node, etc....
Maurina goes on to say that the Player class does not need a collision Mesh. It is set up automatically by the TGE.
With all these questions I have, step 4 should at least give a list of the important nodes required for a simple skeleton to work especially for the blender example you give in step 4.
I hope this criticism is what you are looking for...because as a part time artist, I would appreciate any help.
Thanks Jesse.
06/25/2006 (1:45 pm)
@FrankI am reading GPGT bt Ed Maurina. On page 223, subtitled "Simplest Player Skeleton", talks about a root node called the "floor". "This node defines the bottom of the player and is where the mesh contacts the ground." IS this node an empty or a bone? Is it called root or floor?
When setting up armature for the mesh, do you have a blender file that shows a complete node setup including the root node, the shape node, Detail node, etc....
Maurina goes on to say that the Player class does not need a collision Mesh. It is set up automatically by the TGE.
With all these questions I have, step 4 should at least give a list of the important nodes required for a simple skeleton to work especially for the blender example you give in step 4.
I hope this criticism is what you are looking for...because as a part time artist, I would appreciate any help.
Thanks Jesse.
Torque Owner Philippe C
I have updated the tutorail : if you don't agree , i will remove it
Just one remark on the blend model chapter 7
In the model nonblendPlayerMesh.blend : when i use "alt a" i am not able to see the animation in blender.
Chapter 8 & 9 : i don't know this capability and I am confusing.