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
Alpha 
The method I used to set index 255 as transparent is to set flag 'MF_HOLEY' or bit 0x4000, or flag 16384 in normal speak.

Without this bit, Quakespasm will not mask index 255. So far, QS 0.93 is the only 'out of the box' engine I have been able to see support for this. Older DP builds and FTE don't mask 255 on these models, where QS does. MarkV fails to properly mask 255 when other full-brights are present, where QS does not have this issue.

In order to set this flag I use Preach's home brew qmdl Python plugin. Import qmdl Helper and set the mdl flag as outlined in Preach's guide. You could set this flag in QMe under model Properties-> flags, however saving any model in QMe will break smooth shading across seams. So if you shade normals smooth in Blender, QMe will break them, qmdl will not and is the best approach to set this flag. 
Sorry Mankrip 
But that sort of argument really doesn't wash. It's all jolly beans until you find that one obscure mod with all the bollocked skins. Back in the day it would be pretty common to be painting in indexed colour right from the start, instead of converting from a true-colour image, and we have to assume that others in the past may have picked index 255 just because they can. I know we're just jacking around with Quake as a hobby and this isn't a serious production environment, but a little bit of effort to catch these very possible compat issues is the right approach. 
Mankrip 
Here's a positive case for using individual particles instead of alpha when it comes to force fields

https://tomeofpreach.wordpress.com/2012/11/18/forcefield-smoke/

It's easier to see in an engine with interpolation than in the animated gif, but each particle has an animation as it fizzles out on the boundary of the field, stretching vertically as it collapses horizontally. I don't think you could achieve the same effect with any fewer polygons if you used alpha masks. 
Fogroll 
I tried to update python32 with the modelHelper, but there is something wrong. I think it must be the version.

I use Python3.2 and when I want to use the HModelHelper I need a pip file. Then it wants a get-pip.py. Finally Pyhton gives an unexcisting handling.

So my modelling stays aligned with the brush vertices. I tried a to make a lowerground fog by using a slow screwed pattern. I wonder how it would look with an alpha.

example
fogroll.mdl 
 
It's all jolly beans until you find that one obscure mod with all the bollocked skins.

Dumb assets shouldn't dictate engine behavior. That's my point.

Supporting all the quirks in vanilla Quake requires lots of hacks already. The less hacks to support in the engine, the better.

Hack-based assets are only good for games with closed source code, where there's no other way around engine constraints.

There's no need to clutter open source engines with compatibility with outdated user-made hacks. Keeping it in is a green sign for users to keep doing ugly hacks instead of doing things in a sane way. 
 
Dumb assets shouldn't dictate engine behavior

They should, actually, making the assets display and function is the only job the engine has.

There's no need to clutter open source engines with compatibility with outdated user-made hacks.

Alpha transparency on models and textures is an user-made hack. BSP2 is an user-made hack. Skyboxes are an user-made hack. I could go on... 
OTP 
1) Then go ask id software for a refund because of all the user-made crap that doesn't work in the official versions of the engine.

The work of a Quake engine is to play Quake. Support for extra features isn't mandatory.

2) Quit derailing. You know I'm talking about poorly thought-out crap. But since you talked about alpha, here's an example.

self.flags |= EF_ADDITIVE; is a dumb way to implement additive blending, because blending modes should be mutually exclusive.
An independent self.alphamode field would allow for enumerated selection of blending modes and to toggle blending, eliminating the atrocious problem of self.alpha=0; being opaque:

self.alphamode = 0; // 0=disabled, 1=weighted, 2=additive, etc
self.alpha = 0.8; // intensity if enabled

And I'm not even touching on the "alpha should use 8-bit integer values" subject. 
Python 
I am new to Python. I had an install on Win7 of Python 35-32, and made sure qmdl-v0.6 is in the site-packages.

Now I haven't the slightest idea what to do.
When I try the examples like : knight = Helper(),
knight is not recognized.

What string is used to get grip on the mdl? 
Madfox 
Assuming you have your Python up to date it really isn't too hard.

start with:

from qmdl.helper import Helper
model = Helper()

Now the path to your model is:

model.load("C:/MyFolder/mymodel.mdl")

(Change C drive as necessary obviously)

Now you are ready to edit the model as described in the tutorials.

Remember, you can still edit with QMe, if you go to model Properties -> Flags in the View menu, you can set the bit for alpha masking. The only reason I suggest against this method is QMe is horribly antiquated and will ruin any vertex normal shading you applied in external modelling software. 
Yes 
I installed PILL and qmldv0.6, but I can't get the module installed.

every statement I make in Python ends up with "don't excist" ie.
python.py / python is not a commen instrucktion.
from qmdl.helper import Helper() / from is not a commen instruction.

I think I need to reinstall python. WinXp gave me no trouble, Win7 I can hardly find the file. 
What The "stdin", Cleese? 
File "(stdin)", line1
invalid syntax

mounty pyhton's password? 
Me Noob 
I managed to work with md3 models in the md3tomdl converter, but for some reason I don't know what happened.
I can't use any argument in Python, because I'm such a noob.
I thought ">>>from site import qmdl" would be sufficient, but all turns out in syntax error. 
Model Convertion 
The convertion I made of the Q3-Q1 eliteforce soldier looks surpreme on texture quality, but the import mdl parts move terribly wanky. It's only vissible in the stand scene, it isn't that pronounced when the model starts moving.

Anyway hard enough to make my borc for contentment of my own sake. The texture may be a bit sloppy, but it seems I'm asimilated in some way.

:P 
Model Request 
I'd like to request a model of the ranger hanging from a rope.
Hanging as in with the rope around his neck.
It's for the sewer jam. 
Guilty! 
Gnoice 
is the implication here that it all got a bit too much for ranger? Or was it a lynching by a hostile mob? 
Fagots! 
When I would hang there with an axe I could come to a solution.
I assume he's victim of a whiplash. 
Autoerotic Asphyxiation 
 
Victem Of Python 
>>>from qmdl import Helper
>>>knight = Helper()
>>>knight.load("mymdl.mdl")
Traceback (most recent call last):
File "(stdin)", line 1, in module>
File "C:\python32\lib\site-packages\qmdl\helper.py", line 18, in load
with open(filename, "rb") as file:
IOError: [Errno 2] No such file or directory: 'mymdl.md'


In what directory should I set mymdl.mdl? 
Chthon Model 
looks like someone is making a faithful model upres for Chthon:

https://twitter.com/DanielWienerson/status/1157178572672364549 
Nipples? 
Many nipples! 
Madfox 
Python looks for mymdl.mdl in your "current working directory". When you run a script by double-clicking it or running on the command line, the working directory is usually the folder that the script itself is located in. So try putting both the model and the script in the same folder.

If you can't get that to work, you can try changing the line to include the full path to the model, like:
knight.load("c:\models\cave-troll\mymdl.mdl") 
Errno22 
Thanks for your attention, Preach. Sorry to interrupt for something that looks so simple, but python doesn't want my mdl files. It keeps returning the file don't excist by giving it another name. vlak.mdl is no x0blak.mdl, or do I invalid an argument here?
Maybe I've got Pyhon wrong installed.


>>> from qmdl.helper import Helper
>>> knight = Helper()
>>> knight.load("C:\python32\Lib\site-packages\qmdl\vlak.mdl")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python32\lib\site-packages\qmdl\helper.py", line 18, in load
with open(filename, "rb") as file:
IOError: [Errno 22] Invalid argument: 'C:\\python32\\Lib\\site-packages\\qmdl\x0
blak.mdl'
>>>

>>> from qmdl.helper import Helper
>>> knight = Helper()
>>> knight.load("C:\File\vlak.mdl")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python32\lib\site-packages\qmdl\helper.py", line 18, in load
with open(filename, "rb") as file:
IOError: [Errno 22] Invalid argument: 'C:\\File\x0blak.mdl'
>>>
 
Confusing Error Message 
madfox, a backslash in a Python string is treated as an escape character, which is why you're getting the weird error message. "\v" is the escape sequence for a vertical tab, which is hex "0b", which is why you're seeing "\x0blak.mdl" (Python prefixes hex sequences with "\x" when displaying them).

If you're using Python 3, you should be able to prefix the string with "r" to make it a raw string, like this:

knight.load(r"C:\path\to\file.mdl")

Alternatively, you could in theory escape the backslashes:

knight.load("C:\\path\\to\\file.mdl")

Alternatively, it sounds like Python will let you use forwardslashes instead of backslashes in Windows paths, at least in some circumstances, however I don't know if that would work with the module you're using. 
Correction 
The "r" syntax for a raw string literal is also in Python 2, apparently. 
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.