Page 1 of 1

Programming question regarding MDLs...

Posted: Fri Jan 16, 2009 2:25 pm
by Willem
OK, so inside the MDL file format there is support for simple frames and group frames. I'm trying to get it straight in my head which is good for what.

It looks like things like the walltorch use group frames. Is this so the engine can start animating them on a random frame? I don't see anything in the QuakeC that uses this information so it must be engine side.

Am I thinking about this the right way? Do group frames have other uses?

Posted: Fri Jan 16, 2009 3:34 pm
by Spike
framegroups autoanimate. this saves network bandwidth, and is required for animated 'static' items like walltorches.

for the most part, you don't know which actual frame will be shown at any given time, so its use is somewhat limited to basic stuff, like static items.
interestingly there are skingroups too.

framegroups can be controlled in csqc using frame1time/frame2time as the linear progression through the sequence. server-side qc has no control of framegroups other than to use one instead of a static frame.

logically you could implement your stand/run/walk animation as a framegroup. I'm not sure how many engines actually implement 4-way interpolation though. so mneh.

Posted: Fri Jan 16, 2009 6:16 pm
by MeTcHsteekle
Spike wrote:logically you could implement your stand/run/walk animation as a framegroup. I'm not sure how many engines actually implement 4-way interpolation though. so mneh.
i was thinking about that a few months ago, would save time eh?

Posted: Sat Jan 17, 2009 1:05 am
by frag.machine
The .mdl format support random or synchronized animations, so you can indeed create looping animation groups for walking, standing and others. IIRC I saw a few models for Prydon Gate NPC's using this technique. The main advantage would be not having to write boring QuakeC stuff.

Posted: Sat Jan 17, 2009 12:15 pm
by Urre
frag: Not only that, but also reduces network load a lot, because frame updates don't need to be sent at all. Perfect for all kinds of static animations, like trees blowing in the wind and whatnot.

Posted: Sat Jan 17, 2009 1:55 pm
by frag.machine
Urre: yeah, but only if you're talking about static entities. Dynamic entities still receiving update messages with the same frame number over and over.

Posted: Tue Jan 20, 2009 1:50 pm
by MeTcHsteekle
ya, so i like, grouped the stand/run/walk frames, but when i code it do i have to code them out like :

Code: Select all

$frame stand1 stand2 stand3 etc.
or can i just do

Code: Select all

$frame stand1
??


also i am wondering with the bars of frame code would it ok like:

Code: Select all

void() gug_stand1	=[	$stand1,	gug_stand1	] {ai_stand();if (random() > 0.8)
	sound (self, CHAN_VOICE, "folder/sound.wav", 1, ATTN_IDLE);};
??