Flipbook animation
by timmport · in General Discussion · 01/07/2006 (6:39 pm) · 20 replies
I am trying to find information about creating a type of animation where a sequence of dts models are displayed one at a time in a cycle. In another 3d framework I've worked in we called this flipbook animation but I do not know how this is refered to in torque so I can not do a search for it. Any information about what the analogous term is or how I might script this would be appreciated.
#2
I have been searching for a while and I am having difficulty finding a clear explanation of what vertex animation is. Although there are quite a few post that rerfer to vertex animation the only thing I have been able to gather is that it is not like kyframe animation, the verteces "pop" from one position to another and that all this information is contained within one model file. Is this correct and could you please point me to a resource that describes what vertex animation is and or how it works?
01/08/2006 (12:18 pm)
What I am describing is somewhat similar to an animated gif. Instead of a sequence of images you have a sequence of seperate meshes. The specific meshes that are displayed would be speicifed through the script as well as how long it would take to cycle through the entire sequence of meshes.I have been searching for a while and I am having difficulty finding a clear explanation of what vertex animation is. Although there are quite a few post that rerfer to vertex animation the only thing I have been able to gather is that it is not like kyframe animation, the verteces "pop" from one position to another and that all this information is contained within one model file. Is this correct and could you please point me to a resource that describes what vertex animation is and or how it works?
#3
tdn.garagegames.com/wiki/DTS/3dsmax/Creating_a_Simple_Character
This contains a short tutorial on animationg shapes for a character.
Tha animations are all stored in the DTS, though. I'm not sure if you can have separate meshes.
01/08/2006 (3:15 pm)
Have you tried the TDN?tdn.garagegames.com/wiki/DTS/3dsmax/Creating_a_Simple_Character
This contains a short tutorial on animationg shapes for a character.
Tha animations are all stored in the DTS, though. I'm not sure if you can have separate meshes.
#4
01/08/2006 (3:44 pm)
Thanks for the link. Unfortantely that is not the same as what I am attempting to find out about - a sequece of models that are displayed in succesion for a specified period of time like an animated gif.
#5
01/08/2006 (4:16 pm)
Yes I'm pretty sure that would be frame by frame animation you put in keyframes and the model moves between those frames. you could probably get a demo of a modeler like milkshape or blender and see how this works.
#6
skeletal animation - this is like vertex animation, but instead of remembering the animation of each vertice ..groups of vertices are attached to bones on a 3d skeletal structure that animates the model.. for skeletal animation only the animation of each bone is needed and the cpu converts the animation to movement of the vertices at runtime... skeletal animation has weight blending across joints.. making it preferable
when you say flipbook animation i think of one character running along on a page.. skeletal or vertex animation would cover this...
but you seem to be saying you want something where you have ..say the model change appearance over time.. like missing link cave man to present day man type thing.. where the start and end look very dissimiliar in texture and form... ..that would involve physically changing the model shown methinks or some intelligent art solution..
dont know of any script that does this straight of.. not the norm.. you could do it in fully rendered np.. dont know bout ingame :/
let me know if im on the right track..
if not you should give a longer description of the end animation you are trying to achieve..
01/08/2006 (4:19 pm)
Vertex animation - a 3d model is made up of many points, called vertex that are connected by lines, called edges to create trianguler polygonal shapes.. vertex animation records the movement of each of these points.. as such it is processor intensive for hi-poly models..skeletal animation - this is like vertex animation, but instead of remembering the animation of each vertice ..groups of vertices are attached to bones on a 3d skeletal structure that animates the model.. for skeletal animation only the animation of each bone is needed and the cpu converts the animation to movement of the vertices at runtime... skeletal animation has weight blending across joints.. making it preferable
when you say flipbook animation i think of one character running along on a page.. skeletal or vertex animation would cover this...
but you seem to be saying you want something where you have ..say the model change appearance over time.. like missing link cave man to present day man type thing.. where the start and end look very dissimiliar in texture and form... ..that would involve physically changing the model shown methinks or some intelligent art solution..
dont know of any script that does this straight of.. not the norm.. you could do it in fully rendered np.. dont know bout ingame :/
let me know if im on the right track..
if not you should give a longer description of the end animation you are trying to achieve..
#7
I would imagine to write something like this up you would need a infinite loop (or timer) and sometype of if/else type statement so that say every second that a new mesh is displayed and an old model is swapped out. Since I am a Torque script novice I was trying to figure out if there were already a standard/buit in way to do this already. In another 3d frame work I have worked in you would access this function through script. e.g.
flipbook(duration(3))
{
model1.dts
model2.dts
model3.dts
}
This structure displays each of the three models for one second each and takes 3 seconds to complete the cycle then repeats. I would be doing this with single polygon meshes with a different texture mapped to eacch one. Any ideas would be appreciated.
@treb I am using maya. I put 1 keyframe at coordinate A and a second keyframe at coordinate B Maya interpolates all the intermediate positions for the geometry to produce an animation. Is there a different way to apply keyframes than this so I can do what I am talking about?
01/08/2006 (5:52 pm)
@ Barry "but you seem to be saying you want something where you have ..say the model change appearance over time.. like missing link cave man to present day man type thing.. where the start and end look very dissimiliar in texture and form..."I would imagine to write something like this up you would need a infinite loop (or timer) and sometype of if/else type statement so that say every second that a new mesh is displayed and an old model is swapped out. Since I am a Torque script novice I was trying to figure out if there were already a standard/buit in way to do this already. In another 3d frame work I have worked in you would access this function through script. e.g.
flipbook(duration(3))
{
model1.dts
model2.dts
model3.dts
}
This structure displays each of the three models for one second each and takes 3 seconds to complete the cycle then repeats. I would be doing this with single polygon meshes with a different texture mapped to eacch one. Any ideas would be appreciated.
@treb I am using maya. I put 1 keyframe at coordinate A and a second keyframe at coordinate B Maya interpolates all the intermediate positions for the geometry to produce an animation. Is there a different way to apply keyframes than this so I can do what I am talking about?
#8
Create a ShapeBaseImage object for each DTS shape I wanted,
Create a ShapeBaseObject with a blank DTS to use for mounting the ShapeBaseImages to,(By blank I mean a DTS mesh with no actual mesh, just a small bounding box and the proper node hierarchy, including a mount0 node.)
Then I would use script to schedule calls to ShapeBaseObject.mountImage(whicheverDTSImage,0) with
whatever delay was necessary.
This is all speculation as I haven't tried it, but it seems like one way to solve your problem.
01/08/2006 (8:12 pm)
You could probably do this entirely in torquescript. I would go about doing it this way (keep in mind I am entirely self-taught in any programming I do):Create a ShapeBaseImage object for each DTS shape I wanted,
Create a ShapeBaseObject with a blank DTS to use for mounting the ShapeBaseImages to,(By blank I mean a DTS mesh with no actual mesh, just a small bounding box and the proper node hierarchy, including a mount0 node.)
Then I would use script to schedule calls to ShapeBaseObject.mountImage(whicheverDTSImage,0) with
whatever delay was necessary.
This is all speculation as I haven't tried it, but it seems like one way to solve your problem.
#9
tis a texture format that reference's many different textures.. (i think)
as the model wont actually change it should work fine!..
01/09/2006 (11:38 am)
Well you could use an ifl file methinks.. not sure if thats correct format name ..somebody correct me...tis a texture format that reference's many different textures.. (i think)
as the model wont actually change it should work fine!..
#10
01/09/2006 (11:50 am)
If you just want to swap textures, then an IFL animation would be ideal.
#11
01/09/2006 (4:17 pm)
I have looked up IFL animation and it is defintely what I can use. Does anyone know how to enable IFL during export from maya? I read in Danny Ngans DTS exporter reference that it is not supported yet even though the option is visible in the channel box. I have read accounts of other maya users getting it enabled but when I look in show tools it shows that no matter if it ifl enabled is set to "on" in maya is not enabled. Do maya users enable it through a .cfg file? If so what would be the text?
#12
never used ifl's myself so i can't guide you im afraid..
it should fix your particular problem 100%, from what i understand of them that is...
01/10/2006 (1:13 pm)
Search the resources on this site i guess? ...never used ifl's myself so i can't guide you im afraid..
it should fix your particular problem 100%, from what i understand of them that is...
#13
never used ifl's myself so i can't guide you im afraid..
it should fix your particular problem 100%, from what i understand of them that is...
01/10/2006 (1:14 pm)
Search the resources on this site i guess? ...never used ifl's myself so i can't guide you im afraid..
it should fix your particular problem 100%, from what i understand of them that is...
#14
http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=2057
maybe the skins/ thing is messing you up?
01/10/2006 (1:18 pm)
:/ ...sorry i didnt find betterhttp://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=2057
maybe the skins/ thing is messing you up?
#15
06/08/2006 (11:01 pm)
Has anyone figured out how to use IFL with Maya?
#16
Strangely they describe this feature as 'working', where as I would call that 'not working'.
Nick
06/09/2006 (2:17 am)
Unfortunatley, according to TDN tdn.garagegames.com/wiki/DTS/FeatureChart ILF exports from Maya but doesn't show up. Strangely they describe this feature as 'working', where as I would call that 'not working'.
Nick
#17
"from the 3dpag1 book"
06/09/2006 (5:00 am)
It can be done in torque script:"from the 3dpag1 book"
datablock StaticShapeData(WindowA)
{
category = "windows";
shapeFile = "~/data/shapes/windows/window1.dts";
damageRadius = 10;
radiusDamage = 50;
damageType = WindowAdebris;
maxDamage = 5;
};
datablock StaticShapeData(Shards0)
{
category = "windows";
shapeFile = "~/data/shapes/windows/shards0.dts";
};
datablock StaticShapeData(Shards1)
{
category = "windows";
shapeFile = "~/data/shapes/windows/shards1.dts";
};
datablock StaticShapeData(Shards2)
{
category = "windows";
shapeFile = "~/data/shapes/windows/shards2.dts";
};
datablock StaticShapeData(Shards3)
{
category = "windows";
shapeFile = "~/data/shapes/windows/shards3.dts";
};
datablock StaticShapeData(Shards4)
{
category = "windows";
shapeFile = "~/data/shapes/windows/shards4.dts";
};
function WindowA::Damage(%theDatablock,%aWindow,%sourceObject,%pos,%damage,%damagetype)
{
%aWindow.applyDamage(%damage);
if(%aWindow.getDamageLevel() >= %theDatablock.maxDamage)
%theDatablock.Explode( %aWindow, %pos, %sourceObject);
}
function WindowA::Explode(%theDatablock, %aWindow, %position, %sourceObject)
{
if(%aWindow.exploded)
return;
%aWindow.exploded = true;
%boom = new Explosion()
{
datablock = GlassShatter;
position = %position;
};
MissionCleanup.add(%boom);
radiusDamage(%aWindow,%position,%theDatablock.damageRadius,
%theDatablock.radiusDamage,%sourceObject.damageType,%theDatablock.damageImpulse);
%r = GetRandom(4);
%db = "Shards" @ %r;
%wreckage = new StaticShape()
{
datablock = %db;
};
%wreckage.setTransform(%aWindow.getTransform());
%wreckage.setScale(%aWindow.getScale());
%aWindow.schedule(200, "delete");
MissionCleanup.add(%wreckage);
}This code produces a breaking window by swapping out the window.dts. Just change it to what you need.
#18
http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=7154
06/09/2006 (5:27 am)
Take a look at this, it may help you. It is Multiple skins on a single model.http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=7154
#19
You will have to have a series of textures
(eg. one.png, two.png, three.png), and an .ifl file (simple text file, saved as an .ifl) in
which you list the order you want the textures to appear in (and the number of frames
that indicated how long the texture will play):
one.png 1
two.png 1
three.png 1
Then you have your 3d model in maya, set up as you would usually set it up for .dts
export. In the material color channel, you specify the .ifl file (however the textures
won't show up in Maya because Maya doesn't know what an .ifl is). Also, if you are
using a transparency, you would have to specify the .ifl file in the transparency channel
as well.
Then you create a sequence node, and call it Sequence_anim0 (the "sequence_" has
to be there) - and in the attribute editor specify the beginning and end of frames played,
and turn the "enable IFL" on. Then you export the .dts and .dsq; and if you import
the .dts to ShowToolPro, the sequence should play
06/09/2006 (8:51 am)
To create an IFL in Maya:You will have to have a series of textures
(eg. one.png, two.png, three.png), and an .ifl file (simple text file, saved as an .ifl) in
which you list the order you want the textures to appear in (and the number of frames
that indicated how long the texture will play):
one.png 1
two.png 1
three.png 1
Then you have your 3d model in maya, set up as you would usually set it up for .dts
export. In the material color channel, you specify the .ifl file (however the textures
won't show up in Maya because Maya doesn't know what an .ifl is). Also, if you are
using a transparency, you would have to specify the .ifl file in the transparency channel
as well.
Then you create a sequence node, and call it Sequence_anim0 (the "sequence_" has
to be there) - and in the attribute editor specify the beginning and end of frames played,
and turn the "enable IFL" on. Then you export the .dts and .dsq; and if you import
the .dts to ShowToolPro, the sequence should play
#20
Do u guys have any idea?
06/11/2006 (7:21 pm)
Thanks for your help, guys. But unfortunately I still have trouble with exporting. I got "Assertion Failure" at expression: matIdx>=0 && matIdx
Torque 3D Owner iHugMedia