News | Forum | People | FAQ | Links | Search | Register | Log in
Modelling Help\Screenshots\Requests
It has always been difficult to get decent models for quake 1. So a thread where people can get advice on making models and post a work-in-progress for critiques is long overdue.

Any requests for models may well get met with silence. Specific requests will likely stand a better chance; "I'd really like a knight but carrying a shield" might be better received than "we need a mdler to join our mod remaking counter-strike for darkplaces".
First | Previous | Next | Last
 
thankfully you just need to reposition everything periodically to get around that! 
Well 
As I expected this goes far beyond my hat.

I'm not thinking about a server at all, neither that I can imagine what happens on the moment my console opens.
I fear it is much more than my small mind can suspect, as I am only translating my poor knowledge into the quake world my singleplayer attitude has learned.
I would gladly know how to get around this repositioning every once in a while, but..,

would it change things if I turned the sprite into a static entity, at least the convoybelt is also. So maybe they interact synchronical? 
 
Maybe I misunderstood. Was this a mod entity to make a conveyor? If it is just trains then maybe you can't fix it... 
Static Entity & Sprite 
I made a static entity of a convoybelt and a sprite of an injector.

For some reason these two interact fairly well, only after 42 minutes there is a delay of a second. This makes the injector mismatch.

My first intu�tive respond is to give the sprite, called info_spark, a delay of 0.1 sec.
So when the player arrives after let's say 30 minutes it is synchrone.

I don't know the difference in behaviour between static entities and sprites. Maybe that's the cause.
Therefore my question.
Would it change things if I turned the sprite into a static entity? 
Break The Loop 
You need to rewrite your code so that the conveyor belt is in charge of the sprite. Get rid of the 2.7 second delay so that the sprite doesn't loop at all by itself. Instead make it so that when the conveyor belt hits frame 40, it triggers the sprite to begin animation one more time. Then they cannot go out of sync. 
Sure 
But what piece of code should I use here:
convoybelt = truns.qc
void() trun_stand40 =[ 39, trun_stand1 ] {};
for a sprite = vonk.qc
void() model_vonk

something like:
void() trun_stand40 =[ 39, trun_stand1 ] {vonk_stand1();}; 
I can't integrate framerates of a sprite with a static entity.

So.., if I add a statement to the convoybelt.qc that goes like the grenadecode it works.
It looks like:

void() LightVonk =
{
self.movetype = MOVETYPE_NONE;
self.velocity = '0 0 0';
self.touch = SUB_Null;
setmodel (self, "progs/vonk.spr");
self.solid = SOLID_NOT;
vonk_stand1 ();
};

Now it sparks all the time.
That wasn't my purpose. 
Nail Infantry! (Yeaaah Boyyyy The Third) 
Before I dump the screenshots and webm, I'd like to say something first.
You see, the first draft of the guy was to edit the existing Enforcer model, by removing his blaster, replacing it with an infantry gun with a nailbelt going to an ammo cylinder on his back. Unfortunately, editing his model in Blender not only deletes the animation frames, but trying to fuse the gun model with the modified enforcer model deletes its UVs. And so I said "nah screw that, for now on I'll just make a reskin of the enforcer.". Maybe one time I'll do an actual full-fledged model on what I was trying to do, but for now I'll concentrate on getting things done.

In the meantime:
http://image.noelshack.com/fichiers/2015/46/1447608405-infantry20151115174322-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608410-infantry20151115174332-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608404-infantry20151115174336-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608404-infantry20151115174345-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608405-infantry20151115174559-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608406-infantry20151115174625-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608414-infantry20151115174740-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608416-infantry20151115174746-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608415-infantry20151115174849-00.jpg
http://image.noelshack.com/fichiers/2015/46/1447608415-infantry20151115174901-00.jpg

http://webm.host/41821/vid.webm 
 
Nice work, this guy seems like a solid addition to the game! 
Yeah I Like It 
 
Waiting For It To Be Used In A Tronyn Drake Map Lol 
 
Synchronity~groupframes 
Now I'm satisfied with the convoybelt, working in a rather reliable way, I'm trying the map in other engines.

They all work right, except DarkPlaces.
One of the convoybelts picks up the cellboxes just half the right time.
So the engineclaw puts down a cellbox, on the place where one has to appear. But it doesn't. It is there on half the time, while other engines:
JoeQuake-WinQuake-Quakespasm-Fitzquake-glquake are just in time.

What is so different with Darkplaces? 
 
I assume you're animating at least something using framegroups.

framegroups are normally directly linked to the server time.
(there is a model flag which can sync it to some random time base instead, basically acting as a random offset so torches etc arn't all in sync)

darkplaces instead links it to the time when the entity's frame last changed (including when it first became visible).
this is much more useful when using framegroups for animations - especially firing animations.

the quakeworld protocol does not reveal the server's time (at all!), so timings will be screwed there too - fte implements the dp behaviour because $REASONS. 
Yes 
I'm using framegroups.

I made the static entities in that way that as soon as the claw picks up an ammucell it disappears from the convoybelt, and as soon as it puts one down it is deleted from it.
If I had made one static entity from both convoybelts I wouldn't have had this effect.

But I didn't saw this coming, at least three of the four work well, so I guess it is a mirror effect. I'm afraid I can't do much except warn DarkPlace player the server is cheating. 
Spoiler 
darkplaces instead links it to the time when the entity's frame last changed (including when it first became visible).
this is much more useful when using framegroups for animations - especially firing animations.


What, really? That sucks. I had a great idea for a trick which exploited the global timer on framegroups. I might even have to press on and just warn that it breaks in darkplaces... 
Surely Went Fishing 
I made a fishing Ogre. It sits aside the water.
It consists of four cycles of 12 frames with a break on the first frame {ai_stand();self.nextthink = time + 2;}; for timespace.
The last stand frames are a whip of the fishingrod.

I just need this entity for sidekick, not as monster.

My first question:
how do I stop the attack routine, as when I enter the map the monster freezes when I don't use notarget?

My second question:
This stand pose takes about 30 seconds. I made another walk cycle, so he stands up and takes a few steps, then sits back again.
This is done in the ai_walk, but what I need is four times the stand subroutine, then it should be followed with the walk cycle, then back to the stand cycle, and so on.

My first thought was just to make one long script of the stand and walk frames, but then I realized there is a limit to the monster frames. I thought it was 256 frames and this amount would exceed this count. 
 
remove ai_stand. 
Right 
That stops him from freezing in attack.

Now I try the next part, the walk cycle.
For making it not to complicated I added the last part to the stand pose. This looks like void() forg_stand109 =[ $stand33, forg_walk1 ] {};

Now he starts the walk cycle, but again it freezes because of the ai_walk() part. If I use notarget the walk cycle ends well.

Now I can't get out by deleting ai_walk() as I need it to make him move. 
 
use
movetogoal() instead of ai_walk. 
Yeh 
Thanks necros, you're a star!

Now my last intention, say I make it sit, walk to aside for two steps, then I want him back to the startpoint with another function, I think of ai_run, still without attack.

How do I fix that in the stand function?
I mean, the last forg_stand109 goes to forg_walk1.
So I can use this function again, but when I use the ai_run I must formulate the stand function again to forg_stand109 =>forg_run1.

I know this sounds all complicated, maybe I should turn the whole thing into a static entity.
But as far as I can see, the limit of a static entity is 256 frames.
What is the limit of the monster.qc? 
Quake1 Player 
I've been tinkering on the player.mdl.

I decided to remodel the whole model poses, just to have the fun of adding some new ones.
I'm not a deathmatch player so I will never have the change to meet him, but if someone has a request to give it a new pose I'm willing to do.

Here's the beta of the foxplayer
I added a swim pose, but any other possibillity would go. 
@madfox 
quakeworld requires that your skin is not modified.
you can change the texture coords, but make sure your model still looks okay with the vanilla skin exactly as it is.
(this also applies to nq replacement textures, but is harder to control for).

you can use framegroups to get around protocol limitations. or you can just use a better client that supports higher frame numbers. 
@spike 
I don't understand a word of it.
Did I modify the skin texture?

I'm sure you try to inform me well, but I just took the original skinfile and dropped it on the model after making sure it had the same texture cooords and Q1pal. Further I don't have that much engine experience,
I'm just a singleplayer in a shooter fence. 
Yeaah Boyyyyyyyyyyy Ressurection 
After weeks on working with these guys, they're now fully operational (although need some polishing up but still), and are ready to be integrated on top of Scourge of Armagon's source code, so I could use rotating doors, force fields and try to look for a way to make monster spawners to use in TrenchBroom.

Rocketeer - shoots accelerating rockets:
http://image.noelshack.com/fichiers/2015/53/1451432379-infantry20151230002549-00.jpg

Dimensionnal Traveller - once humans seeking the power of Shamblers, they got it without their endurance and resistance to explosions. See Doom 2's Hell Knight:
http://image.noelshack.com/fichiers/2015/53/1451432382-infantry20151230002559-00.jpg

Shell Trooper - A retake of Quoth's Defender, he shoots grenade with great accuracy on top of a nasty Shotgun blast as a close range attack:
http://image.noelshack.com/fichiers/2015/53/1451432382-infantry20151230002619-00.jpg

Butcher - An Ogre that took a cybernetic suit to better endure attacks and switch from a Grenade Launcher to a Flak Canon:
http://image.noelshack.com/fichiers/2015/53/1451432380-infantry20151230002642-00.jpg

Shock Marine - The Elite version of the Enforcer, he's now better equipped to do his job:
http://image.noelshack.com/fichiers/2015/53/1451432379-infantry20151230002656-00.jpg
http://image.noelshack.com/fichiers/2015/53/1451432778-infantry20151230004523-00.jpg 
Vortex 
Nice work Daya, glad they're coming together at last!

In celebration of Arcane Dimensions coming out, and some of my models getting some use at last, I've finally got round to releasing a new one! Animated gif and details at the post below:

https://tomeofpreach.wordpress.com/2015/12/30/vortex/ 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.