|Posted by Kell on 2004/03/27 11:21:33|
|since there's been some discussion of custom monsters, both old and new, I thought I'd share these ideas I've had pulsing in my cerebelum for some time. Depending on my current mapping projects, I'd like to try modelling these sometime in the near future, but I'll pitch the design briefs here and let you foul creatures leer at them...|
Should Have Mentioned:
you can't change the colours of the explosions' pixels. these (which include: rocket explosion, tarbaby explosion, chthon lava splash, and any other type of particle animation) are hard coded into the game, thus would need some new engine to change. :(
i was actually thinking of making the polyp explode into a bunch of like coloured gibs, as if it was loosing integrity and suddenly fell apart or something. anyway, when it's done you can take a look at it and see what it's like.
and...I suppose I should zip the mdl before uploading it o_O
gimme a sec...
it's still a WIP, so there's debug text in there and stuff...
also, i ommited the melee attack and implemented a more fancy movement code.
the monster will try to stay within a specific range of the player, backing away if the player is too close and closing in fast if it is far. it's all math dependant, so if the thing is really far from the player it moves very quickly, then slows down to a crawl as it gets into range.
once it's in range, it cirlces the player, firing it's wind/air attack.
i coulnd't get a decent looking air effect using particles, so i opted for a sprite that looks sort of like air waves, although i think some people may mistake it as Sound instead of wind... if someone can come up with a better sprite (or even better yet, model a nice air wave shock model) i'll gladly use that instead.
as it is, the wind will push you backways and up a bit. if you fight the wind, that is, walk into it to try not to move, the wind will hurt you, depending on how much you fight it and how long you are in the wind wave.
it will also abritrarily become invisible. kell, i know you wanted an nauseating piping, but all i could come up with that was remotely similar is an annoying high pitch whine
the monster will not attack while invisible however... it continues to move though.
as for the death, it does not explode, perse, but it does blowup into a shower of chunks which will hurt you if you touch them. acidic maybe? :P
to play: unzip into a folder, keeping folder names on.
do quake -game foldername +map polyp_q1
the map is unforgivingly ugly, but it lets you test out a 1 on 1 fight or 3 on 1 . there are no weapons, so do impulse 9 at the start.
remember, work in progress :) i'll work on it some more later. ;)
will check out when I get back to my lair :)
For the gib death, I reskinned the 3 gib models with essentially the same texture as the polyp skin but without obvious details. I called them polypop1 - 3 .mdl:
I did discover the thing about the particle effects being presets when I looked at the 'global model proerties' options. For the polypops, I unchecked 'trail of blood' and selected 'wizard green tracer' instead. In game it looks pretty good as an acidy spatter.
Going just on what you describe above:
I like the idea of the movement - actually backing away as well as advancing. And having the speed proportional to the distance to the player is a very neat touch, really suggestive of predatory intelligence.
My only concern with the absence of a melee is that the player is usually disadvantaged by a melee attack, because all the emphasis is really on ranged weaps. But I do like the ideas for the movement, so I'll playtest and see what it's like before commenting further.
The particles. Hmm, I kinda thought the rocket, grenade or vorepod trails would have been ok, but I obviously don't know all the technicals involved so I'll shut up about that. A sprite seems the better option than a model, and I'll have a bash at one if need be. I reckon a model would look a lot less like wind because it would look inherently solid.
The 'naueseating piping'. I did make the murmur.wav and I tested out as a replacement for both the shadowring whisper and the func_train ratchet. It does play more than once, but only every second or something, not in a seamless loop. The actual type of sound isn't terribly important - it doesn't have to be piping. Would you be able to use the shadowring whisper ( sound/items/inv3.wav iirc ) which loops? I think it's really important that the player has some hint as to where the polyp is when invisible.
The death/explosion...acidic maybe? Definitely :D "must be using it for blood"
Other than that, it sounds like a very cool implementation. I especially am looking forward to the movement behaviour since that is what I imagined would be the polyps most interesting aspect.
I built a more refined testmap, with appropriate stuff for testing against the polyps. Had other feedback to give, but cafe is closing and I have to go.
I created a new folder for this, and swapped some of the souds around, so it's a separate directory.
you didn't like the gib sounds! :D i thought it sounded cool with all the splattering noise! :P
i'll work on it a bit later today, btw... did a few changes though... it won't head straight towards you, but will strafe at the same time, but that's about it so far./..
it sounds col the first time, then gets intrusive. I don't think it's a god idea to have so many .wavs playing as the result of normal combat.
Btw, I tried another method for giving the player a hint as to the polyps' location while invisible: I added the grenade smoke trail to both models. It looks a bit comical when the polyps are visible, like a tailpipe from some dieselly old car. But when invisible it's quite spooky to see just these thin wisps of smoke weaving through the map to find you. So maybe keep it just for the polyp_i.mdl..? Try it yourself.
It would still be cool to get a looped wav working for invisibility, but the smoke trail alone would be okay.
Now, I had a bash at modelling myself last night ( no, I don't mean I modeled myself, I modeled a mons..oh whatever )
and came up with this:
No offence to Preach's work, but I had a very specific concept in mind and couldn't contain it any longer.
As well as the flat-color renders above, I stuck my effort in a map with some of his cronies for a Quake Family Portrait7trade;
The texture wot the gaunt is covered with is an amalgamted mush of vore skin, just to give an indication of color and style. Something distinctly gigeresque would not be unappropriate for the gaunt skin I think.
The 'model' weighs in at 149 brushes, yielding a polycount broken down thus:
23 polys/each wing
64 polys/head ( including teeth )
26 polys/each arm
29 polys/each leg
~ 150 - 200 verts ?
as a comparison, the shambler.mdl is also 284 polys, 144 verts. The shambler is a more solid, less convluted mesh so this gaunt probably has more verts but even so, it's well within the range of the existing monsters.
The problem, of course, is that this isn't a mdl...it's a map :(
I honestly cannot comprehend how anyone has ever been able to model anything without a grid equating to the engine's world units. So I used Radiant, and made this.
Now there's the quest to find a method - any method - to convert .map to .mdl
Speeds has already recommended a couple of things and I got hold of an old converter which might work. But I'm open to suggestions. If it comes to it, I'll try rebuilding the model vert for vert in the correct editor. But I'd obviously like to avoid that.
Any help appreciated.
In the meantime, here's a zip containing the above screenshotted map/wad and bsp:
I understand completely what you mean by a grid overlay -- I had thought as well that idea would be a good plug-in for Blender.
You can use 3dExploration (www.xdsoft.com/explorer) which can translate all common Quake files like .map into common 3d data files like .3ds, .obj etc and then import those into a Quake model editor.
dude! wicked! :)
there are some things i don't like about it, but they are mostly minor things... like, the legs are really skinny, and i think it would be cool if the horns curved forwards just a bit
but wow, if you do get it modeled, i'll definatly code that one too!
the only problem i see with the model is clipping problems with the wings, that's a common problem with models in-game with wings, which means it wouldn't look right in smaller spaces, which means it would limit where you could possibly put them. but that's just my opinion.
One gaunt, in mdl format. It looks like the scale's been preserved correctly. I basically used that 3D exploration program to convert the map to dxf, and imported that into QMe. The main problem was that .map files don't have the internal surfaces culled like .bsp files do. So at first the model had over 600 polys, as if you'd made each brush a seperate func_wall, so all the backfaces remained. But a little bit of surgery and the model's left with just over 300, not quite the count you were after, but it's easily alright for quake.
As for my model, I can see why it needs a more quakey skin, but none of the attempts I made worked out too great. Unless I get very inspired some time this week, I'll probably just convert it for prydon gate or something : - )
model skin coords... the wings would need to be seperate as well as the horns so that it could be skinned properly...
necros: yes, the legs are skinny, as are the arms. I did those last because 1) I knew I'd find them harder to sculpt than anything else and 2) they're almost the least prominent parts of the monster's form ( I think the order of prominence runs: wings - head - tail - legs - arms - torso ). I kept them skinny to save polys a bit and because they weren't so important, but also becaue they are called gaunts...they're supposed to be skinny ;) But if they look wrong when animated, then they can be bulked a little without adding more polys.
The horns do form basically a straight edge along the front of the face....and in Pitch Black, they do curve inwards. That's also what Lovecraft's descriptions says. I forgot :/ That can be remedied.
It will get modelled. I'll have to wait 'til I get home to check Preach's conversion, but really besides the sculptural work and probably the skinning, it's Preach who's risen to this challenge; there's no way it'd even be worth my time trying this without Preach to actually make it happen. So not if - when it's animated etc. you will be coding it. Compromise is not an option. Escape is impossible. You will be assimilated.
zwiffle: I agree absolutely. Doing testmaps, I know the shambler's bbox will fit down a 96 unit corridor, but it's arms will clip into the walls. The standard/classic/generic corridor width of 128 units alleviates this. The gaunt model fits into a 128x128 doorway, but since it's going to spend most of its time flying - in fact, it's going to spend most of its time hovering - I doubt the mapper will need to fit it through many small spaces. Of course, there is always the greater likelihood of the gaunt flapping close to walls or pillars in pursuit of the player and sweeping its wings straight through the architecture. It may be possible to code it's movement to encourage it to give brushwork a wide berth, but that sort of playtesting is a bit away and...it's necros' problem anyway :P ( yeah, I'm still watching you, dude )
Preach: you are unstoppable. I love you :)
looking at those horns, i can already envision a sort of melee attack where it attacks you like rhine would use it's horn or something... sort of fly/charges you and swings it's head as it closes...
also, the tickling as the gaunt holds you...
that's great! :P you should actually be able to see the tail move around under you as you're being held...
ok, i'm waiting for the model now. :D
what about instead of using lightning for a ranged attack, the gaunt charges you like a fiend/lostsoul, physically hitting you with it's body?
well, the Pitch Black creatures use their vertical blades with extreme vicousness to 'butt' their prey, shattering bone easily. That's not a bad idea. I suggested in the design brief that a conventional melee attack would be beneficial so it wasn't just a case of the lightning and occassionally the gauntdrop. As an actual replacement for the lightning or other ranged weapon I have reservations; having the gaunt move as fast as a fiend's longjump attack would bring it close to the player very quickly, which sort of defeats most of the advantages of having it fly. It also means that multiple gaunts in a combat situation are very likely to end up crowded round the player, their wings clipping into everything.
But I do know exactly what you mean about seeing the gaunt swoop suddenly at the player and strike with its gladiate head ( note: it's the vertical blades that act as weapons though; the horizontal horns contain its sensory organs. but whatever )
So code away. Too cool not to try :)
So Far So Geodesic
I've done the hover
( lightning ) animations. There's still more to do, including pain, death, swoop etc. But these are the 2 I thought would be longest and most often seen by the player. I'm actually getting the hang of qME now; I learned 4 new tricks with it today. So I whinged. I tried. I learned. I stopped whinging :P I'm actually pretty confident this monster is going to happen.
While experimenting ( read: furiously fux0ring ) with qME I was able to make the h_gaunt.mdl
, the head used for gibbing.
I'm still having trouble getting the skin map sorted out, but the simplicity of the head model made skinning it a piece of piss. It's exactly the same polys as the one on the model...consistency is a good
Here's a pic:
necros: although not all the anims are there, you can start coding with the model now if you like. Besides, some of the animation may need to be based on specific forwardspeed values. So it would be better if I wait before doing them.
Oh The Woes Of Skinning For Quake 1
Making a nice skinmap for quake is by far the hardest part. The big problem is that to do one in the style of modern games requires a load of foreplanning. What I'd recommend for skinning the gaunt is to split the wings and head off, and create a skin frame where they aren't obstructed by the body.
To do that, make a copy of your model, that you'll only use for the skin. Select all the vertexes around the neck, split them. Do the same at the base of the wings. Then reconstruct all the objects from the base mesh
Then just move the head away from the body with the object tools, and the wings likewise, so that from the front view no parts overlap. Then run the skinmap wizard.
If you like you can mirror the wing onto itself, to save space on the skin, but that sort of thing can get messy. You could also mess around with the vertexes in the skin frame so that more faces are visible from the front, as long as you're careful with the ones you split at the start. Save frequently and good luck!
Oh, and when you've finished, animate the model with the copy you made earlier(You did make it, right?). That way you can export the frames from that one, and import them into the skinned version. By the magic of QMe it doesn't matter that the skinned version has had vertexes split, it'll import the frames anyway.
Ok... Started Coding
don't have much to show yet... just basically got the model in the game and such...
one thing: the monster is facing the wrong direction, so when it turns to face me, it's back is pointed towards me, so you *may* want to fix that. ;) also, you have to promise not to change the order of the frames that are already completed... this causes a lot of hassle for me as the coder and is easily avoidable for the modeller.
cheers and good luck with the rest of the animations! :)
i think it looks rockin, btw! the straight horns on the front look rather good ingame, although the bottom part has the texture really skewed...
if i might make a suggestion regarding the skin, perhaps you could try to do a q2 style skin for the head, by splitting up all the vertices so that you don't have to worry about stretched skin and such, plus you can get more detail into the head... i don't know too much about it though... :\
also, definatly go along with preach's suggestions. it will really benefit the model: you can see how the head part of the skin was also projected onto the part of the wings behind the head, for example :P
if you don't mind, i plan to use both the gaunt and the polyp in my next map! :D (plus the gug if it gets done!)
Jesus Crap, It's Done Er.. No, It's Started. :P
wow, you wouldn't believe how much trouble it was just to get the stupid bastard to pick the player up and move around!
it took me like 6 hours for what you see here:
it's a pak file, the map is "gauntmap", no sounds, only regular scragg ones and the model faces the wrong way, but i swear that's not my fault! :D (oh yeah, the map is butt ugly again)
it's far from finished (the monster that is)... but i felt i should at least show what i got today, maybe that'll encourage you to finish the animations, kell. :D
basically, all it does is pick you up and fly around. it doesn't drop you, and can't attack any other way. plus it gets a little buggy if it doesn't pick you up on the first try as it starts to just float around... :( (will be fixed later)
to test it out, basically, just walk up forward so it notices you, then stand still. :P no really, it has a hard time actually hitting anything, but that's just cause it's not done yet. :)
problems that i don't think can be avoided:
-when the gaunt holds you, the view is very jerky. that's because the monster only gets refreshed every 0.1 seconds (and you can't change that without breaking stuff on slower computers), and i used setorigin to manually set the origin of the player underneath the gaunt, plus gravity still affects you, so even though i reset the player's velocity to 0 everyframe, you still start to accelerate down, so again, that contributes to the jerkiness.
-needs gaunt_corner entities to work. the way normal movetogoal (which is what all monsters that move use) works is it basically just heads towards the player until it hits a wall (then it goes into wall following mode) or it reaches the player. so obviously, that wouldn't work if the player is held directly beneath it. so when the thing grabs you, it just starts going to it's path corners (or in this case gaunt_corner). the mapper can put paths over lava, with a drop ent between so that it can drop at the right moment. i'll probably work on this a bit more so that it can go to _any_ gaunt_corner which is closest, instead of the first one of the list.
by contrast, the dropping player stuff and the lightning attack should be relatively simple to implement, and i'll probably get that done tomorow. plus i'll need sounds, and the rest of the model. :D
off to bed for me! cheers
Quake 1 Skinning
May I share with you a technique I discovered to get perfect skin mapping with Quake 1 models.
- First, make the model without worrying about skinmapping at this stage. When the mesh is finished, save a copy of the .mdl as an .md2 in QME.
- Import the .md2 into NST (Npherno's Skin Tool) for Q2, and create a new skinmap. As an example, here's a new skinmap for the Quake 1 knight I did:
If your model already has a skin (like the Q1 knight), you can do a "retrofit" to the new skinmap, like this:
This can act as a guide as you paint over it to increase the skin resolution. I've started painting over the knight skin, as you can see, at 512x512 res, but I would reduce the skin to a 256x256 before using ingame:
- Finally, you need to convert your fully skinmapped .md2 model back into an .mdl to use in Quake 1. So far, QuArK 5 is the only tool I believe lets you do this conversion (qme does mdl->md2, but not vice versa, it seems).
I hope this has been helpful.
You must be logged in to post in this thread.
Website copyright © 2002-2021 John Fitzgibbons. All posts are copyright their respective authors.