Jump to content
The Dark Mod Forums
demagogue

Newbie DarkRadiant Questions

Recommended Posts

Reporting "Barren SEED Bug" if SEED volume is 'too tall'

I've been trying for some time to get SEED to work for me. It never seemed to generate any replicants. Finally found the problem... my SEED volume was 'too tall', or actually too deep into the water. Attached is a simple map file (once you remove the ".txt") that demonstrates the problem. There's a room with 2 identical SEED volumes, except for their overall heights (seen as depths below the floor). Each is asked to generate a dozen grass plants. The "fertile" one does, the higher/deeper "barren" one does not. This demo uses a within-SEED template for its target, but I had the same problem with an external target. In many cases the target entity itself would vanish. Sometimes but not always there would be a console warning at game start: "SEED: Feeling lonely with zero entities to care for".

I'll leave it to others to refine what 'too tall' precisely means (i.e., absolute or relative or dependent on settings), and what the underlying cause might be. Thanks to dragofer for suggesting diagnostic procedures that helped find the workaround.

barrenseedbug.map.txt

Share this post


Link to post
Share on other sites

I remember Tels (the guy that coded the system) talking about the problem of z-axis differentiation that others asked to fix--the system doesn't work well for undulating ground but has everything on a flat plane IIRC--so it might be related to that. Anyway, good that you found a workaround. Tels isn't around, and I don't know how deeply anyone else really understands his work, at least offhand.

  • Like 1

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Share this post


Link to post
Share on other sites

From now on, I'll be keeping my SEED volumes under 512 units tall (just a hunch), and hoping that avoids this problem. Based on what you said, maybe it only affects undulating situations, that is, where SEED's "floor 1" is in effect.

Share this post


Link to post
Share on other sites

Just tried signing up for an account at the bugtracker, and got a "504 gateway timeout" error when I hit "Sign Up". So email verification didn't happen. Can't be good.

Share this post


Link to post
Share on other sites

Regarding SEED problem... same data, different interpretation:

Further playing around leads me to think that the system, when creating the 2D distribution of generated objects with "floor 1", does so within a horizontal plain passing through the (unmarked) centroid of the SEED volume, instead of at the top. It then drops objects down from that plane. So any landscape above that plane will not get objects... those objects instead fall to any lower surface or are culled.

By this interpretation, the problem is not that a SEED volume is too tall, but rather its centroid is too low compared to the landscape.

  • Like 1

Share this post


Link to post
Share on other sites

Been trying to get back into finishing a FM I started years ago. I noticed one of the things that's taking me the most is adding and positioning entities and models on the map. This would be a good time for two useful newbie questions:

  1. Is there a way to tell DR to add an entity on the surface of the last selected brush? It tends to add it at the origin point, so I always need to drag it vertically to align it.
  2. Is there a shortcut to center all viewports to the currently selected item? A lot of time is wasted trying to find my selection in the 2D views. I'm hoping for something like the numpad "." in Blender, which focuses the view to the thing you currently have selected.
Edited by MirceaKitsune

Share this post


Link to post
Share on other sites

Someone correct me if I’m wrong but this always works for me. Select something nearby first that’s at equal or close elevation, deselect and THEN place your entity/model. Should come out close to where you want it then you can floor and nudge it. Why it’s not for you by default must be a preference setting.

I’ve also wondered about your second question, thought I saw it somewhere but haven’t searched.  Right now I just fly around camera view toward the red highlighted thing in question.

Edited by Jedi_Wannabe
Typo

Share this post


Link to post
Share on other sites

You can create the model near the surface you want as Jedi_Wannabe wrote, lift it up in the 2D view and use the "Floor Selection" button on the left side, to drop it to the first surface beneath it. This way, you don't need to fiddle around with the height. Apart from that, I am not sure if there is a quicker way.

Regarding the second question, you can use the combination Ctrl + Middle Mouse Button in your 2D view, to move the camera to the respective point. It is a bit difficult to orient oneself, but if you have the object in sight in all three 2D windows, you can center it quite easily by clicking on it in all three views. That is the only way I know, at least.

EDIT: you see the current camera position as a blue diamond and the field of vision as two blue line emerging from it. This helps to adjust the camera. With the Middle Mouse Button (without Ctrl), you can rotate the camera in the respecticve view window.

Edited by Destined
  • Like 1

Share this post


Link to post
Share on other sites

What is causing this?

https://www.vidlii.com/watch?v=7NF8YuVOfIB

If the player reaches a certain spot in the connecting tunnel, sound and lights switch off.

The tunnel itself consists of two "layers" - 

1. the tunnel itself (a func static)

2. identical caulk brushes (for sealing)

tunnel.thumb.jpg.f74edd9fc32a231eeb29fc3bcd0a4dd2.jpg

At the very beginning I only had the tunnel itself as sealing geometry. After a few days, the problem in the video occured. then I converted the tunnel into fs and added additional caulk brushes. The problem vanished, but returned a few weeks later as described in the video.

 

 

Share this post


Link to post
Share on other sites

@JackFarmerthat looks to me like the visportals might be having problems with the sealing geometry in that area. What I'd try would be to simplify the caulk tunnel so that you only need 4 brushes, and also make sure the visportal faces aren't partly covered by sealing geometry.

  • Like 1

Share this post


Link to post
Share on other sites

That's one of the most characteristic and consistent bugs in this whole game, and the one (or nearly the one, I think I brought it up on page 2 or 3) that I started this very thread for, the so-called black walls of death. Yeah, it usually means complex brushwork broke the boundary between leafs, like because of a rounding error... Things like tiny slivers, either overlapping, or there's a sliver gap, or weird angles intersecting, or things going off grid. And the culprit brushwork is usually right where the artifact starts so you know where to look. And the easiest way to fix it is usually to just rebuild the architecture around it with simpler, flush, and on-grid brushwork. That's a more descriptive way to just say "yeah, what he said". :D

Generally speaking you want leaf-sealing BSP brushwork to be flush, on-grid, all 90-degree or anyway not-sliver-angled simple affairs (maybe not always, but when there's no better reason not to, and especially around leaf-border areas where the sealing matters) and leave the slivers and wonky angles and detail-work to non-sealing architecture you convert to func_stats that just overlay on top of the sealing brushwork. Edit: A leaf is the area sealed inside of visPortals if you didn't know, but I think that's an early thing everyone learns.

  • Like 1

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Share this post


Link to post
Share on other sites
23 hours ago, Dragofer said:

@JackFarmerthat looks to me like the visportals might be having problems with the sealing geometry in that area. What I'd try would be to simplify the caulk tunnel so that you only need 4 brushes, and also make sure the visportal faces aren't partly covered by sealing geometry.

I have replaced the the caulk brushes in questions with a simplified construction consisting only of four brushes. This works perfectly. Thank you.

 

20 hours ago, demagogue said:

That's one of the most characteristic and consistent bugs in this whole game, and the one (or nearly the one, I think I brought it up on page 2 or 3) that I started this very thread for, the so-called black walls of death. Yeah, it usually means complex brushwork broke the boundary between leafs, like because of a rounding error... Things like tiny slivers, either overlapping, or there's a sliver gap, or weird angles intersecting, or things going off grid. And the culprit brushwork is usually right where the artifact starts so you know where to look. And the easiest way to fix it is usually to just rebuild the architecture around it with simpler, flush, and on-grid brushwork. That's a more descriptive way to just say "yeah, what he said". :D

Generally speaking you want leaf-sealing BSP brushwork to be flush, on-grid, all 90-degree or anyway not-sliver-angled simple affairs (maybe not always, but when there's no better reason not to, and especially around leaf-border areas where the sealing matters) and leave the slivers and wonky angles and detail-work to non-sealing architecture you convert to func_stats that just overlay on top of the sealing brushwork. Edit: A leaf is the area sealed inside of visPortals if you didn't know, but I think that's an early thing everyone learns.

@demagogue

Hmmm...yes, I am afraid I will have to check certain areas for that.

 

 

 

Share this post


Link to post
Share on other sites

Has anyone got an effective method for getting ragdolls into certain poses?
 

The key example, the one I'm looking for, would be to have them sitting in a chair in a certain way. By default you're not able to drag them into a chair because there's an invisible force preventing you from lifting them higher than 20cm or so.

I have a dim recollection that you can disable the above dragging limitation via a console command, giving much more freedom to move the body. Or at least some kind of command that makes life positioning ragdolls easier. Something that temporarily disables physics, gravity?

The most powerful option for getting specific poses would probably be to use Blender and export as a new model, but I think that'd only be usable for func_static bodies.

 

Share this post


Link to post
Share on other sites
33 minutes ago, Dragofer said:

Has anyone got an effective method for getting ragdolls into certain poses?
 

The key example, the one I'm looking for, would be to have them sitting in a chair in a certain way. By default you're not able to drag them into a chair because there's an invisible force preventing you from lifting them higher than 20cm or so.

I have a dim recollection that you can disable the above dragging limitation via a console command, giving much more freedom to move the body. Or at least some kind of command that makes life positioning ragdolls easier. Something that temporarily disables physics, gravity?

The most powerful option for getting specific poses would probably be to use Blender and export as a new model, but I think that'd only be usable for func_static bodies.

 

Hello Dragofer,

 

You want the hands and the feet to remain at a certain position at map start?

 

Share this post


Link to post
Share on other sites

There is saveRagdolls command - if i remember correctly it adds an arg to all ragdolls on the map with their current joint positions. You place ragdoll as you like it, use command, and next time the map starts it will be in that position. If you have more ragdolls, you just delete an arg from them in DR.

Can't you put a table next to the chair, drag the body from the table, and remove the table afterwards? Shouldering a body don't work with it?


S2wtMNl.gif

Share this post


Link to post
Share on other sites

@JackFarmer Yes. Well, maybe? I want to make it look like he's been dead for a while in that chair, and I could imagine it'd help if the hands and feet were also positioned in certain ways.

@ERH+ yeah a temporary table in front of the chair seems like a pragmatic solution in the absence of other tools. Still very tricky - I remember spending ages dropping the shopkeeper's wife in Perilous Refuge trying to get her to land sideways on the bed for a more fetal position. Had to do it several times even before I figured out the modified map file gets written to the base darkmod/maps folder, instead of fms/*mission*/maps.

Fortunately I found an article about this on the forums, after remembering I only searched the wiki. It looks like it has everything needed, including console commands, to make this task manageable. Will have to try this out and probs update the wiki:

http://forums.thedarkmod.com/index.php?/topic/6677-guide-to-ingame-moveable-and-ragdoll-editing/

 

Share this post


Link to post
Share on other sites

When I started the Air Pocket FM, I also looked at the wiki and forum posts about posing ragdolls. I got the impression that it took a lot of careful effort to do a pose and then you could easily accidentally overwrite it. I decided instead to concentrate on floating a ragdoll on water (finicky enough), and not sweat the pose. That pose was originally the usual-as-created-in-DR one, and then for some reason - as I was playing around - became an import-style T-pose, arguably an improvement for my purposes.

(Similarly, my sitting captive was originally going to be implemented as a ragdoll, but given the pose issues, I went with a sleeping, sitting, zero-acuity AI instead.)

Update of the wiki about this would be good.

 

Share this post


Link to post
Share on other sites

I need movers translating/rotating only in one direction every time  when triggered.

How can I do that? I thought that would be possible with translating door and default door mover, but every time when triggered, they change direction. Is there a command to stop the inverting?

 

Example below:

1. Using switch B -> entity B rotates +45°

2. Using switch B -> entity B rotates another +45°

etc.

------------

1. Using switch A -> entity translates + 100

2. Using switch A again -> entity translates another +100

etc.

movers.jpg.a04e7db1ffaff1c98df3c40e7025d743.jpg

 

Share this post


Link to post
Share on other sites

@JackFarmer

For the rotating you need funk_rotation, and set "invert_on_trigger "0". This starts and stops rotating when triggered. I guess you can have it turn 45% with a trigger_relay.

Say the func_rotation turns 360 degrees in 8 seconds, you trigger it, so it starts rotating, and trigger the trigger relay at te same time. Give the trigger relay a delay of 1 second and let it target the func_rotate, so it will automaticly stop after 1 second.

For the translation, you could use a sliding door, that slides, lets say 1000 units in 10 seconds, so it can slide 10 times 100 units. Do the same with the trigger relay to have it stop automaticly. But, after triggering it from the start position, you have to trigger it 3 times very fast to have it not reverse. You could do that with 2 trigger relays with a very short delay like 0.001.

If you can lay out more what the specific working should be I could try to make a setup and share the map.

Probably scripting would be more accurate .. but I can't do that ^^

 

  • Like 1

Share this post


Link to post
Share on other sites

@STRUNK

Thank you for your quick reply. I already thought about using func_rotate, but was hoping for an easier solution (I was positive that there was a spawnarg like "invert_on_trigger--0/1" for basic movers...).

I will try your suggestions and get back to you . Until then: Happy New Year!

Jack

  • Like 1

Share this post


Link to post
Share on other sites

@JackFarmer

One thing. I'm trying the rotation now and with she speed of the fun_rotation set to 45 and the delay of the trigger relay set to 1, it tends to overrotate a bit. The delay will be more like 0.993 .. and I'm afraid this wil in the end never be really 100% accurate for it might have to do with the clockspeed of you your computer, but I'm not sure about that.

Happy Newyear for you too!!

Edited by STRUNK

Share this post


Link to post
Share on other sites

@JackFarmer

I made something quite easy for the rotation with stim/respons that totally works : )  .... It might not work on a very small scale though .. but you could just bind a smaller thing to a bigger mechanism.

The little red cubes have a response (select > Entity > Stim/Response ), the little brass cube has a stim.

 

WS1.map

  • Like 1

Share this post


Link to post
Share on other sites

@STRUNK

Thank you for that!

I will check it out tomorrow (as soon as I am sober again). I will leave now for our NYs party.

Have a good one!

Jack

Edited by JackFarmer
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...