GZDB plugin: 3D floor mode

Any utility that assists in the creation of mods, assets, etc, go here.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: GZDB plugin: 3D floor mode

Postby boris » Tue Apr 28, 2015 10:39 am

You just click to place the vertices. Make sure that you're really in draw slope mode (the mode with the red icon), not slope mode (the mode with the grey icon). When you're in the correct mode your cursor should turn in a cross and a slope vertex should be shown near it, like this:

Image

Can you still highlight sectors after you try to enter draw slope mode? If that's the case then something went wrong when engagin the mode (as it would then throw you back to the last used mode).
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby ShinyCrobat » Tue Apr 28, 2015 1:03 pm

Everything you described it how it works for me, except for being able to place a vertice down. Though, I should say that Slope Mode and Draw Slope Mode have the same icon.
ShinyCrobat
 
Joined: 20 Jul 2013

Re: GZDB plugin: 3D floor mode

Postby boris » Tue Apr 28, 2015 2:35 pm

ShinyCrobat wrote:Though, I should say that Slope Mode and Draw Slope Mode have the same icon.

That's a bug in GZDB, try updating it to the latest version. Maybe that fixes your problem, too.
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby Leonard2 » Wed Apr 29, 2015 8:55 am

Finished testing the slope modes, here's some feedback:

The whole thing seems to work pretty well but it could be more user-friendly.
  • A quicker and easier way to assign sectors to slopes would be to display them as a simple selection (like when they are highlighted) when a vertex is selected, then selecting/deselecting sectors would automatically assign them.
  • You shouldn't force the user to select a sector first to draw a slope, I would prefer to assign them myself afterwards.
  • Choosing between a floor and a ceiling slope should be done per sector (ie in the "Edit Slope Vertex" list), this would allow more complex shapes without the need of a duplicate slope.
    Spoiler: Here's an example of what I'm talking about:

    A better example could be a roof using 3D floors since their floor/ceiling are inverted.
  • Allowing non-integer numbers for a vertex X,Y and Z would really be useful when using, for example, circular geometry.
  • It would be really useful as well if slopes were still shown even after leaving the slope mode. For instance, things don't disappear when you aren't in things mode. Of course, hovering them shouldn't work and the text should disappear.
  • Just like vertice heights, a preview in visual mode would vastly improve how straightforward such a tool is. It would be much better to allow the user to directly change a vertex height with visual feedback rather than manually entering the value. Marking them with a simple cross similar to sizeless things and then linking them should be enough.
User avatar
Leonard2
 
Joined: 15 Aug 2012

Re: GZDB plugin: 3D floor mode

Postby boris » Thu Apr 30, 2015 11:16 am

Thanks for the feedback.

Leonard2 wrote:
  • A quicker and easier way to assign sectors to slopes would be to display them as a simple selection (like when they are highlighted) when a vertex is selected, then selecting/deselecting sectors would automatically assign them.

Sound like a good idea.

Leonard2 wrote:
  • You shouldn't force the user to select a sector first to draw a slope, I would prefer to assign them myself afterwards.

Will be (re)added

Leonard2 wrote:
  • Choosing between a floor and a ceiling slope should be done per sector (ie in the "Edit Slope Vertex" list), this would allow more complex shapes without the need of a duplicate slope.

    Spoiler: Here's an example of what I'm talking about:

    A better example could be a roof using 3D floors since their floor/ceiling are inverted.

Hmm yeah, I see how this approach could be better. But it could also make it more confusing when (un)assigning sectors to a slope. I'll just try it and see how it works out.

Leonard2 wrote:
  • Allowing non-integer numbers for a vertex X,Y and Z would really be useful when using, for example, circular geometry.

Will be changed.

Leonard2 wrote:
  • It would be really useful as well if slopes were still shown even after leaving the slope mode. For instance, things don't disappear when you aren't in things mode. Of course, hovering them shouldn't work and the text should disappear.
  • Just like vertice heights, a preview in visual mode would vastly improve how straightforward such a tool is. It would be much better to allow the user to directly change a vertex height with visual feedback rather than manually entering the value. Marking them with a simple cross similar to sizeless things and then linking them should be enough.

Unfortunately that's not possible. Each mode decides on its own what should be drawn, so I'd have to replace each mode with a version that shows the slope vertices.
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby boris » Fri May 15, 2015 2:43 am

boris wrote:
Leonard2 wrote:
  • Choosing between a floor and a ceiling slope should be done per sector (ie in the "Edit Slope Vertex" list), this would allow more complex shapes without the need of a duplicate slope.

    Spoiler: Here's an example of what I'm talking about:

    A better example could be a roof using 3D floors since their floor/ceiling are inverted.

Hmm yeah, I see how this approach could be better. But it could also make it more confusing when (un)assigning sectors to a slope. I'll just try it and see how it works out.

I tried around a bit, and it works pretty well. However, there's one big downside. I implemented a feature that adjusts the heights of all sectors (and of the slope vertices) belonging to a slope vertex group, if the height of one of its sectors changes. I.e. in my example map, when you'd change the floor height of the center sector of a ramp, it would also change the floor heights of the borders, basically locking the sectors together. That doesn't really work out when the slope vertex group can be used to describe both a floor and ceiling slope, because you can set the floor and ceiling heights of the affected sectors to conflicting values in the edit sector dialog.
I have another idea, though: optionally inverting floor and ceiling for 3D floors. I.e. a floor slope could slope the ceiling of a 3D floor control sector, and the other way around for ceiling slopes. I'll see how that works out.
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby Leonard2 » Fri May 15, 2015 12:19 pm

boris wrote:because you can set the floor and ceiling heights of the affected sectors to conflicting values in the edit sector dialog.

I'm not sure I understand what you mean here.
If a sector's heights changed then only check for a change on its sloped surface.
If a single sector or a selection has both ceiling and floor slopes, you should just ignore the user's changes in case they conflict and eventually warn him about it.

boris wrote:I have another idea, though: optionally inverting floor and ceiling for 3D floors. I.e. a floor slope could slope the ceiling of a 3D floor control sector, and the other way around for ceiling slopes. I'll see how that works out.

That wouldn't cover every possible uses without the need of a duplicate slopes in some cases.
User avatar
Leonard2
 
Joined: 15 Aug 2012

Re: GZDB plugin: 3D floor mode

Postby boris » Fri May 15, 2015 4:55 pm

Leonard2 wrote:
boris wrote:because you can set the floor and ceiling heights of the affected sectors to conflicting values in the edit sector dialog.

I'm not sure I understand what you mean here.
If a sector's heights changed then only check for a change on its sloped surface.
If a single sector or a selection has both ceiling and floor slopes, you should just ignore the user's changes in case they conflict and eventually warn him about it.


Have a look at this video:

As you can see the floor/ceiling of different sectors change when I make a change to just one of the sectors. Now imagine I select both the GATE4 sectors, and set their floor height to "--16" and their ceiling height to "++16". That would mean that the sloped floor and sloped ceiling are not on the same plane anymore. Not changing the z positions of the slope vertices is a bad idea, because once the slopes are reapplied to the sectors (for example when moving slope vertices) the slopes will be set to something the user doesn't want.

Leonard2 wrote:
boris wrote:I have another idea, though: optionally inverting floor and ceiling for 3D floors. I.e. a floor slope could slope the ceiling of a 3D floor control sector, and the other way around for ceiling slopes. I'll see how that works out.

That wouldn't cover every possible uses without the need of a duplicate slopes in some cases.

But does every obscure case have to be covered? How often would you actually want to do something like the GATE4 sectors in the video? With the inverted floor/ceiling for 3D floors you'd still only need 2 slope vertex groups when doing a sloped 3D floor between two sloped sectors.
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby Leonard2 » Sat May 16, 2015 1:44 am

boris wrote:How often would you actually want to do something like the GATE4 sectors in the video?

What if I want the sloped 3D floor to be thin like a sheet of paper?

How often would the user contradict/intentionally break the sloped surface that he defined himself?
And even if this happens, then maybe you could create a duplicate of the sloped surface at the new (contradicting) specified height and assign it to the corresponding sectors.
Now that would make this plugin even more useful.

I still think defining the surfaces per sector is a better idea, it makes more sense geometrically.
Even using both the ceiling and floor surfaces on the same sector makes sense with the paper thin 3D floor example.
User avatar
Leonard2
 
Joined: 15 Aug 2012

Re: GZDB plugin: 3D floor mode

Postby boris » Sat May 16, 2015 3:01 am

Leonard2 wrote:What if I want the sloped 3D floor to be thin like a sheet of paper?

Is that actually common practice? And if so, in what scenarios? Room over room with keeping the heights to multiples of 128?

Leonard2 wrote:How often would the user contradict/intentionally break the sloped surface that he defined himself?
And even if this happens, then maybe you could create a duplicate of the sloped surface at the new (contradicting) specified height and assign it to the corresponding sectors.
Now that would make this plugin even more useful.

What I'm concerned about is the user unintentionally breaking it, which can result in unexpected and confusing behaviours. Just creating a new slope vertex group in such a case sounds like it could be a viable option.
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby abbuw » Tue Aug 04, 2015 3:31 am

GZDoom Builder R2374 crashes when I attempt to use the latest version of this plugin.
Code: Select allExpand view
Method not found: 'Void CodeImp.DoomBuilder.Rendering.IRenderer2D.RenderArrow(CodeImp.DoomBuilder.GZBuilder.Geometry.Line3D, CodeImp.DoomBuilder.Rendering.PixelColor)'.
   at CodeImp.DoomBuilder.ThreeDFloorMode.ThreeDFloorHelperMode.UpdateOverlay()
   at CodeImp.DoomBuilder.ThreeDFloorMode.ThreeDFloorHelperMode.OnEngage()
   at CodeImp.DoomBuilder.Editing.EditingManager.ChangeMode(EditMode nextmode)
   at CodeImp.DoomBuilder.Editing.EditModeInfo.UserSwitchToMode()
   at CodeImp.DoomBuilder.Actions.Action.Begin()
   at CodeImp.DoomBuilder.Actions.ActionManager.InvokeAction(String actionname)
   at CodeImp.DoomBuilder.Windows.MainForm.EditModeButtonHandler(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
User avatar
abbuw
Contact your poison control center.
 
Joined: 12 Jun 2012
Location: South Lake Hills

Re: GZDB plugin: 3D floor mode

Postby Kappes Buur » Tue Aug 04, 2015 4:34 pm

abbuw wrote:GZDoom Builder R2374 crashes when I attempt to use the latest version of this plugin.

I don't know what's wrong with your system, but I do know that it works in r2375 and in r2374.

Spoiler:


[edit]
ReedtheStrange also has a problem with the plugin
viewtopic.php?f=3&t=32392&start=3225#p852150

Maybe you could PM ReedtheStrange to see if it has a common cause.

Meanwhile, did you check the GZBuilder.log file for any clues?
User avatar
Kappes Buur
 
 
 
Joined: 17 Jul 2003
Location: British Columbia, Canada

Re: GZDB plugin: 3D floor mode

Postby Kappes Buur » Mon Aug 10, 2015 12:41 am

Kappes Buur wrote:
abbuw wrote:GZDoom Builder R2374 crashes when I attempt to use the latest version of this plugin.

I don't know what's wrong with your system, but I do know that it works in r2375 and in r2374.


I must apologize. :oops:
When I answered the above post, I was using the older version of the plugin, which did not provide the slope option. And that is working as intended. After watching boris's videos showing off the slope function, I just now downloaded ThreeDFloorMode-v0.1.0.zip and installed it, and indeed it crashes as soon as I click the icon.

So, abbuw and ReedtheStrange were correct. Sorry, guys.

Screenshot
Spoiler:


And the crash log:
Spoiler:


And my GZBuilder.log, in case it is of value
Spoiler:
User avatar
Kappes Buur
 
 
 
Joined: 17 Jul 2003
Location: British Columbia, Canada

Re: GZDB plugin: 3D floor mode

Postby boris » Mon Aug 10, 2015 10:27 am

Kappes Buur wrote:I must apologize. :oops:
When I answered the above post, I was using the older version of the plugin, which did not provide the slope option. And that is working as intended. After watching boris's videos showing off the slope function, I just now downloaded ThreeDFloorMode-v0.1.0.zip and installed it, and indeed it crashes as soon as I click the icon.

So, abbuw and ReedtheStrange were correct. Sorry, guys.

Image

Anyway, here's a version that should work again: https://github.com/biwa/3dfloormode/rel ... v0.1.1.zip

Changes since last release:

  • Fixed crash due to changed arrow drawing API in GZDB
  • Added option to change position of slope vertices when a sector they belong to is dragged
  • Slopes can now be drawn (again) when no sector is selected
  • Creating or modifying a slope vertex group will now also set the heights of the affected sectors. Technically this is not needed for (G)ZDoom, but to work nicely with GZDB when changing heights in visual mode
  • Changing floor or ceiling heights of a sector that belongs to slope vertex group will now update the heights of the slope vertices, and also apply the new slope to all other sectors. This is not triggered by any action, but only when heights are changed in visual mode or the map element editing dialog is opened
  • Slope vertex groups can now by copied and pasted. It will always copy/paste complete groups, even when the user does not select all slope vertices
  • Existing slope vertex groups are now shown in draw slope mode
boris
I post less than Manc and Hobo
 
Joined: 15 Jul 2003

Re: GZDB plugin: 3D floor mode

Postby Kappes Buur » Mon Aug 10, 2015 12:50 pm

boris wrote:Anyway, here's a version that should work again: https://github.com/biwa/3dfloormode/rel ... v0.1.1.zip


Thank you. :)

I have a question, though. How do I affix the slope start and end points?
Left- or right-clicking does not work.

https://youtu.be/gCuT5-amCIo
User avatar
Kappes Buur
 
 
 
Joined: 17 Jul 2003
Location: British Columbia, Canada

PreviousNext

Return to Editors / Asset Manipulation

Who is online

Users browsing this forum: No registered users and 1 guest