Page 1 of 14

GZDB plugin: 3D floor mode

Posted: Sat Feb 01, 2014 9:46 am
by boris
Warning
This is an early releasae of the plugin and not finished. While I fixed all crashes I found there might very well be bugs that will make it crash and make you lose work. So keep that in mind when planning to use this plugin in a productive environment.

What is this?
It's a plugin for GZDoomBuilder. It lets you edit 3D floors without having to manually handle the control sectors. This can speed up development a lot if you want to create compled 3D floor environments. See the videos below to see what it can do.

Download/Installation
Compiled: https://github.com/biwa/3dfloormode/releases
Source: https://github.com/biwa/3dfloormode

Just copy ThreeDFloorMode.dll to the plugins directory of your GZDB installation.

Entering 3D floor mode
There are several ways to enter the 3D floor mode:
  • pressing the Image button on the toolbar
  • go to Mode -> 3D floor editing mode
  • assign a hotkey in Tools -> Preferences -> Controls (look under the Modes section).
Configuring the control sector area
When entering the 3D floor mode you'll see the green control sector area (CSA):
Spoiler:
That's where the control sectors for the 3D floors will be placed in. By default it's a 512x512 area, with its bottom left corner at 0,0 map coordinates. You'll notice the hole in the CSA. Ideally your whole map is placed inside that hole. Right now that's not really necessary, but will be required once sloped 3D floors are supported.

Because the 64x64 default hole is pretty small for a good map, you can resize the CSA. It pretty much works like moving lines in lines mode, i.e. Just move the mouse close to a border (it will be highlighted) and drag it around with the right mouse button. You can only move the borders horizontally or vertically, so the CSA will always be a square.

The result should look something like this:
Spoiler:
You can also configure the tag range used for the 3D floors:
Spoiler:
To open the configuration dialog just move the mouse into the CSA (the whole CSA will be highlighted) and press the right mouse button.

The settings for the CSA are stored in the .dbs file that gets created by GZDB for each edited WAD. So if you want to give your WAD to someone else to edit and want to retain the CSA info, make sure to pass the .dbs file over, too. It's of course not needed to just play the WAD.

The docker
While being in 3D floor mode you'll have a docker (those things that are by default at the right, like the undo/redo docker). Thise docker will show you the 3D floors assinged to the currently highlighted sector. You'll have to press the pin button of the docker panel to constantly show the docker.
Spoiler:
Editing 3D floors
Besides the CSA the 3D floor mode pretty much looks and works the same (like selecting sectors) as sectors mode. However, when pressing the right mouse button it will not open the sector properties, but the 3D floor editing dialog.
This dialog will show all 3D floors that are associated to the selected sectors:
Spoiler:
Most of it should be pretty self-explanatory. Newly added 3D floors will have a green background. Checking "Show shared 3D floors only" will only display 3D floors, that are assigned to all selected sectors.

You can set textures and 3D floor properties, just like you can when manually editin the sectors and line specials for 3D floors. The sectors list contains all currently selected sectors, checking or unchecking them will apply or remove the 3D floor to those sectors.
At the right side there are some buttons for your convenience:
  • Duplicate: will create a new 3D floor with exactly the same settings as the 3D floor duplicated from.
  • Split: will create a new 3D floor for each selected sector with exactly the same setting as the 3D floor split from.
  • Check all/Uncheck all: checks/unchecks all sectors.
Videos
Here are two videos from earlier versions of the plugin.

Re: GZDB plugin: 3D floor mode

Posted: Sat Feb 01, 2014 10:04 am
by SyntherAugustus
Will be experimenting with this at some point today. Thanks!

Re: GZDB plugin: 3D floor mode

Posted: Sat Feb 01, 2014 11:52 am
by Blue Shadow
Just gave it a quick test. Very nice!

Re: GZDB plugin: 3D floor mode

Posted: Sat Feb 01, 2014 6:02 pm
by ibm5155
Really nice work!!!!
Now we have 3D floors, now, imagine on the future, we making 3D slopes with a simple click *__*

Re: GZDB plugin: 3D floor mode

Posted: Sun Feb 02, 2014 11:31 am
by Numnzel
Simply awesome!

Re: GZDB plugin: 3D floor mode

Posted: Mon Feb 03, 2014 2:10 am
by MaxED
Can I add the sources to the SVN repository and distribute the plugin with GZDB?

Re: GZDB plugin: 3D floor mode

Posted: Mon Feb 03, 2014 7:49 am
by ibm5155
hmm is it pocible to make some kind of 3D models inside gzdoom builder? it would be cool if it used the same way it create a sector and you transform a sector to 3D model...

Re: GZDB plugin: 3D floor mode

Posted: Mon Feb 03, 2014 11:26 am
by boris
MaxED wrote:Can I add the sources to the SVN repository and distribute the plugin with GZDB?
Yes, of course.
ibm5155 wrote:hmm is it pocible to make some kind of 3D models inside gzdoom builder? it would be cool if it used the same way it create a sector and you transform a sector to 3D model...
You can already export the whole map to the Wavefront .obj format. Some time ago I was actually considering to write a plugin that would export a selection directly to MD2, to be used in GZDoom. What stopped me from doing so was pretty much the 256x256 texture size limitation of the MD2 format.

Re: GZDB plugin: 3D floor mode

Posted: Tue Feb 04, 2014 11:57 am
by simc
I have a crash right after opening the 3D mode, the instant I move the mouse pointer.

The reason might be an old computer, 32-bit Vista.
Spoiler:

Re: GZDB plugin: 3D floor mode

Posted: Tue Feb 04, 2014 2:02 pm
by boris
simc wrote:I have a crash right after opening the 3D mode, the instant I move the mouse pointer.

The reason might be an old computer, 32-bit Vista.
With "3D mode" you mean the 3D floor mode, and not visual mode, right?

Can you reproduce that crash (i.e. does it happen every time)? Does it also happen with a fresh map?

Re: GZDB plugin: 3D floor mode

Posted: Tue Feb 04, 2014 3:52 pm
by CorSair
I had same problems earlier. I tried first in 1.14-1840, but didn't work. So, next logical step was to get newer version(1.14-1893)... and magically, it works.
Out of curiosity, which build of GZDoomBuilder this is based on? Should it work in older versions, older than I previously had?

Re: GZDB plugin: 3D floor mode

Posted: Tue Feb 04, 2014 4:05 pm
by boris
Right now I'm using revision 1887. But I also tried it with 1892 and 1884 (that's what simc is using, I think) from DRD Team and it works fine for me in both. Skimming over the changes there were some changes to the side panel, but since I'm not doing anything spectacular with it, it shouldn't matter.

Re: GZDB plugin: 3D floor mode

Posted: Sat Feb 08, 2014 11:30 am
by boris
Basics for 3D slopes are working:


Re: GZDB plugin: 3D floor mode

Posted: Thu Feb 20, 2014 12:55 pm
by Nash
I'm trying to learn this plugin but the images in the OP are missing... :( Nevermind I figured it out, wasn't too hard.

H-o-l-y crap this plugin is fucking sick. I now have a deep urge to abuse 3D floors with this plugin. >:)

Some suggestions for the CSA:

1) Text input option to define the CSA borders instead of dragging with the mouse
2) Some automatic "fill" option where you define how large the hole is for the playable area (like 1024 x 1024) and then the plugin automatically centers the hole to [0, 0] and finally fills up the rest of the map with the CSA right up to the border limit (by reading the border limit setting defined by the user in the current configuration file he's using - for example, for my project I explicitly set the border limit to -+16384 because I don't intend to use those areas as physics will glitch. By default, GZDB uses -+32k)

Can't wait for slopes!

Re: GZDB plugin: 3D floor mode

Posted: Thu Feb 20, 2014 6:06 pm
by Numnzel
Nash wrote:for example, for my project I explicitly set the border limit to -+16384 because I don't intend to use those areas as physics will glitch. By default, GZDB uses -+32k)
How you changed it? I don't see anything for modify the border limit in the game configuration window.