Blender
#1666 posted by Preach on 2019/08/27 08:19:32
I remember being annoyed when I wrote a MDL export plugin for an earlier version of Blender, and the next version changed the APIs I was relying on. Puts you off maintaining it...
What I often recommend for creating MDL files is a two stage process - export from your model editor into a more commonly supported format, and then convert that to MDL. I have a tool that support conversion
from MD3 to MDL:
https://tomeofpreach.wordpress.com/md3tomdl/
or from FBX to MDL:
https://tomeofpreach.wordpress.com/qmdl/fbxtomdl/
Hopefully one of those routes is possible from the version of Blender you use.
Statics
#1667 posted by madfox on 2019/11/06 20:39:18
I made turning windmill as a static entity. And did some qc to make it turn. I wanted to make it toggable but not sure how to do it.
When I use two poses to make them turn and break I can use a button on them.
Now the strange effect is that although all windmills have the same targetname, only three of them turn. Toggling makes the other ones turn.
Not sure if the code is right, but only three mills while all size are the same targetnames?
turning walls
Here is the static code:
$frame 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
$frame 21 22 23 24 25 26 27 28 29
void() vibro1_stand1 =[ $0, vibro1_stand2 ] {};
void() vibro1_stand2 =[ $1, vibro1_stand3 ] {};
void() vibro1_stand3 =[ $2, vibro1_stand4 ] {};
void() vibro1_stand4 =[ $3, vibro1_stand5 ] {};
void() vibro1_stand5 =[ $4, vibro1_stand6 ] {};
void() vibro1_stand6 =[ $5, vibro1_stand7 ] {};
void() vibro1_stand7 =[ $6, vibro1_stand8 ] {};
void() vibro1_stand8 =[ $7, vibro1_stand9 ] {};
void() vibro1_stand9 =[ $8, vibro1_stand10 ] {};
void() vibro1_stand10 =[ $9, vibro1_stand11 ] {};
void() vibro1_stand11 =[ $10, vibro1_stand12 ] {};
void() vibro1_stand12 =[ $11, vibro1_stand13 ] {};
void() vibro1_stand13 =[ $12, vibro1_stand14 ] {};
void() vibro1_stand14 =[ $13, vibro1_stand15 ] {};
void() vibro1_stand15 =[ $14, vibro1_stand16 ] {};
void() vibro1_stand16 =[ $15, vibro1_stand17 ] {};
void() vibro1_stand17 =[ $16, vibro1_stand18 ] {};
void() vibro1_stand18 =[ $17, vibro1_stand19 ] {};
void() vibro1_stand19 =[ $18, vibro1_stand20 ] {};
void() vibro1_stand20 =[ $19, vibro1_stand21 ] {};
void() vibro1_stand21 =[ $20, vibro1_stand22 ] {};
void() vibro1_stand22 =[ $21, vibro1_stand23 ] {};
void() vibro1_stand23 =[ $22, vibro1_stand24 ] {};
void() vibro1_stand24 =[ $23, vibro1_stand25 ] {};
void() vibro1_stand25 =[ $24, vibro1_stand26 ] {};
void() vibro1_stand26 =[ $25, vibro1_stand27 ] {};
void() vibro1_stand27 =[ $26, vibro1_stand28 ] {};
void() vibro1_stand28 =[ $27, vibro1_stand29 ] {};
void() vibro1_stand29 =[ $28, vibro1_stand30 ] {};
void() vibro1_stand30 =[ $29, vibro1_stand1 ] {};
void() vibro1_broke1 =[ $0, vibro1_broke2 ] {};
void() vibro1_broke2 =[ $0, vibro1_broke1 ] {};
void() vibro1_start;
void() vibro1_start =
{
local float r;
if (self.pain_finished > time)
return;
r = random ();
if (r < 0.5)
{
vibro1_stand1 ();
self.pain_finished = time + 1;
}
else
{
vibro1_broke1 ();
self.pain_finished = time + 1;
}
};
void() info_vibro =
{
precache_model ("progs/vibro04.mdl");
precache_sound ("vibro/vibrosount.wav");
self.solid = SOLID_BBOX;
self.movetype = MOVETYPE_NONE;
setmodel (self, "progs/vibro04.mdl");
setsize (self, '-4 -4 -4', '4 4 24');
self.use = vibro1_start;
vibro1_broke1();
};
#1668 posted by madfox on 2019/11/06 20:44:08
#1669 posted by metlslime on 2019/11/06 21:54:33
vibro1_start randomly plays either "broke" or "stand" -- so, that's why some of them are not moving. If you want them all to start moving when triggered, don't have the random check in there.
Yes
#1670 posted by madfox on 2019/11/06 23:06:58
That seem to be the right solution, they all roll now.
==================
void() vibro1_start;
void() vibro1_start =
{
local float r;
if (self.pain_finished > time)
return;
{
vibro1_stand1 ();
self.pain_finished = time + 1;
}
};
void() info_vibro =
{
precache_model ("progs/vibro04.mdl");
precache_sound ("vibro/vibrosount.wav");
self.solid = SOLID_BBOX;
self.movetype = MOVETYPE_NONE;
setmodel (self, "progs/vibro04.mdl");
setsize (self, '-4 -4 -4', '4 4 24');
self.use = vibro1_start;
vibro1_broke1();
==========================
For my humble request, the same macro is used by the turnwall. But it needs to start and stop.
How can I make it toggable?
Toggle
#1671 posted by Preach on 2019/11/06 23:12:46
create two functions vibro1_toggle_on, and vibro1_toggle_off
The "off" function needs to set nextthink to -1, and set "use" to vibro1_toggle_on
The "on" function needs to set nextthink to time + 0.1, and set "use" to vibro1_toggle_off
Finally, you need to add a line to vibro1_start which sets "use" to vibro1_toggle_off.
#1672 posted by yhe1 on 2019/11/07 04:04:42
Damn, you trying the recreate chasm levels inside quake? I don't think the chasm levels are that good, only thing worth salvaging are the monster and weapon models.
Yeah!
#1673 posted by madfox on 2019/11/08 04:08:19
I'm starting to believe my own lies, yes that's the way to do it.
Now I can spin down the fans at commands. Really thanks for the hint.
Usually I get cramped by warnings but this time the algebacary is on my site.
yeh1, the levels may not be that good, but what if I use the buttom to go under to furnish the refinary and jump in a fan tunnel?
Chasm monsters deserve a well arrayed terratory.
I wish I could lay my hand on that alfa_mask texture. I'm using static fences , as they are the only way for me to obtain transparancy.
@madfox
#1674 posted by Tribal on 2019/11/09 07:38:10
I like the theme behind Chasm maps, but they are too tiny (you don't have space to run/maneuver) and, like old doom maps, they aren't 3D (you don't have vertical action).
Would be better if you stick with the theme, but not with the old limitations/architecture. Think of it more like a remix than a remake.
Stratos Attack
#1675 posted by madfox on 2019/11/12 18:30:18
I'm trying to give Stratos a quakey apearance with chasm effect.
So I attached the scrag attack to its needs and changed the w_spike into a circle sprite.
It is shooting round sprites now, but the positioning is a little out of centre.
Also it shoots them one after another, nor at the same time.
#1676 posted by yhe1 on 2019/11/13 04:26:14
If I recall correctly, that huge robot from AD fires two rockets at the same time, as does the centroid from mission pack 1, couldn't you look at their code?
Fire Range
#1677 posted by madfox on 2019/11/13 08:53:27
I could take a look at the soa.qc.
For now I'm puzzled by the shooting range of the scrag which comes in a v shape from the scrag towards the player.
Stratos fires exact in the opposite way.
V Shape
#1678 posted by Preach on 2019/11/14 23:50:12
The V shape is an illusion created by the particle effect on the scrag spit model. If you replace w_spike.mdl with the rocket model you'll see how the smoke particles give a clearer indication of the way the spike moves. It's really just a single object moving in a straight line from scrag to player.
Yes
#1679 posted by madfox on 2019/11/15 01:20:31
That's the same outcome when I use a sprite in stead of the w_spike.
My intention is to make it look more like the Stratos attack, ie. starting at the same time on both sides.
I've got the idea the sprite won't come up for nine frames, only the first one is used. That doesn't give it the facet look like a sequence of rings.
The railgun from dr shadowborg uses this sequence, I just don't know how to intergrate it.
Static
#1680 posted by madfox on 2020/01/13 20:54:34
I'm trying to convert the Chasm weapons to quake.
For the shotgun I just used the w_rifle.mdl for the shotgun.
Now I'm trying the double shotgun and it works in the same way.
There is just one thing I can't understand, when I try to use the g_rifle in stead of the g_shot for static it falls just below the surface.
I can heighten the static in the map or in the origin of the mdl, the thing just falls in ground.
What can be the reason of it?
Reason
#1681 posted by madfox on 2020/01/13 23:25:34
I used v_shot in stead of g_shot.
Kinda Rusty But
#1682 posted by necros on 2020/01/14 02:04:28
check your bounding box's minimum? could be the min_z is 0 not -24.
Laser_touch
#1683 posted by madfox on 2020/01/25 23:32:18
I solved the shooting vector by changing Wiz_Start_Fast statements :
missile.nextthink = time + 0.6;
0.6 and 0.8 into the same counts.
And in Wiz_FastFire
dst = self.enemy.origin - 13*self.movedir;
deleting into
dst = self.enemy.origin;
The two launch lasers come from both sides to the player without crossing.
//===============
Another thing is wondering me. While working on the Chasm_Rift models I keep the skin texture of 64x960. This odd format makes me play the mod only in Quakespasm. Fitzquake and other engines just won't start.
What would be the easiest way to convert this skin 64 x 960 to a more commen format?
Something with UV filters, I tried Noesis but I can't find a way to get to the skinfile.
#1684 posted by chedap on 2020/01/26 04:21:55
AFAIK there is no limit on skin width. If that's the case, the easiest way is to just swap U and V. Here's a quick'n'dirty script that should do the job. Make sure you test everything though, as it doesn't take stuff like on-seam offset into account at all.
It's also possible to move UVs around arbitrarily, then just re-project the skin texture, but it would be somewhat tricky to keep the pixels intact.
Right
#1685 posted by madfox on 2020/01/26 04:30:20
My computer is incompatible with the program.
I could try yo use it in Python, but Python doesn't like me.P:
Thanks anyway.
#1686 posted by chedap on 2020/01/26 04:40:26
Holy Cow!
#1687 posted by madfox on 2020/01/26 06:38:02
Yes, thanks chedap.
That was just the thing I was looking for!
Well
#1688 posted by madfox on 2020/01/31 21:50:36
now I have my skinfile from :
height=960 x width=64
to
height=64 x width = 960.
If I'm not mistaken the maximum height = 300, the size of the width isn't that important I'm told.
When I make a try-out of the resized skins in Fitzquake085 it just shuts down. Maybe Mark V will do, but I was wondering how to reorder the skinfile back to a commen quake format.
#1689 posted by chedap on 2020/02/01 07:12:00
Well yeah, that's what I said it'd do: switch width and height. Weird that it shuts down. I know Nehahra had 1500px+ width skins, but that's Nehahra.
I'll try things out myself, give me a couple of days. Previously I just tested if it loaded in QME.
Skin Size
#1690 posted by madfox on 2020/02/01 07:35:53
First skinfile I know is 300x200. Later on it changed to other formats as engines become more advanced, but it seems to be a prior limit.
I know there is a way to hussle with the UV map, but I never succeeded in doing so.
|