Programming question regarding MDLs...

Discuss the creation of various model formats for Quake engines, and related matters to modeling.
Post Reply
Willem
Posts: 73
Joined: Wed Jan 23, 2008 10:58 am
Contact:

Programming question regarding MDLs...

Post 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?
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post 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.
MeTcHsteekle
Posts: 399
Joined: Thu May 15, 2008 10:46 pm
Location: its a secret

Post 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?
bah
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Post 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.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Urre
Posts: 1109
Joined: Fri Nov 05, 2004 2:36 am
Location: Moon
Contact:

Post 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.
I was once a Quake modder
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Post 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.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
MeTcHsteekle
Posts: 399
Joined: Thu May 15, 2008 10:46 pm
Location: its a secret

Post 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);};
??
bah
Post Reply