Voxel Editor Redesign

Sep
14

Voxel Editor Redesign

Voxel Editor Redesign

Hello again! One of the main areas I have been focusing development on recently is the Voxel Editor. I was never really happy with the usability of the Voxel Editor, which is one of the reasons I added support for importing from MagicaVoxel early on. I decided it was time to put some more attention on it and have reworked it to be more user-friendly and efficient (with inspiration from some of the popular editors like MagicaVoxel and Qubicle).

The original drawing mode was replaced by three new tools: Attach, Paint, and Erase.

The Attach tool adds new voxels either onto the base grid or adjacent to existing voxels by placing the mouse over the face of an existing voxel and left-clicking. A transparent voxel will indicate the position of the new voxel.

The Paint tool will change the color of existing voxels by left-clicking. Hovering over a voxel will temporarily change the color as a preview.

Finally, the Erase tool, as its name implies, removes existing voxels by left-clicking. A red box will indicate the currently selected voxel that will be deleted.

As seen in the images above, I also added outlines to the voxels. This should make editing and working with the model a bit easier. This is optional, however, and can be toggled on and off using the Toggle Voxel Outlines button on the toolbar if you wish to view the model without the outlines.

rpginabox voxel outlines

Finally, the camera was improved to allow for complete rotation around all six sides of the model. Zooming and moving the camera up and down is possible now as well. I plan to add much more functionality to the Voxel Editor, such as a selection tool for copying and moving specific voxels, but I think this is a good base for going forward. The original method of manually placing voxels using the scroll wheel to adjust depth could become very tedious, so hopefully these new tools will make model creation simpler and more enjoyable!

Other New Features

A nice convenience feature that I added to the Voxel Editor’s color picker is support for persistent palettes. There is now a dropdown in the color picker (as shown in the image below) which can be used to store multiple palettes. When a palette is added or modified it will be automatically saved in the application’s settings file.

Another new feature worth mentioning is the Put Player scripting function. This is used in situations where you want the player to instantly move to another tile within the current map. The function takes two parameters: the unique ID of the tile that the player should be moved to and the direction the player should be facing once moved.

The script above was created for the orange portal in the animation below. It checks to see if the portal’s property of “open” is true, and if so then it puts the player on the tile with an ID of “tile_portal02”, in this case the tile in front of the blue portal on the small island.

In addition to everything above, I also have started adding in some keyboard shortcuts to the Map Editor and Voxel Editor. These keyboard shortcuts are listed in the changelog below.

As usual, thanks for reading and for your interest in my project! 🙂

Full Changelog for v0.3.4-alpha

New Features:

  • Reworked the Voxel Editor to be more user-friendly and efficient. The original method of manually placing voxels using the scroll wheel to adjust depth was replaced by a set of editing tools that should make model creation simpler and more enjoyable. The following list describes these new tools as well as several keyboard shortcuts that were added:
    • Attach (F1): Attach new voxels onto the base/bottom grid, or adjacent to existing voxels by placing the mouse over the face of an existing voxel and left-clicking. A transparent voxel will indicate the position of the new voxel.
    • Paint (F2): Change the color of existing voxels by left-clicking.
    • Erase (F3): Remove existing voxels by left-clicking. A red box will indicate the currently selected voxel.
    • Alt + Left Click: Pick color at cursor position while using Attach or Paint
    • Right Click + Drag: Rotate camera
    • Shift + Right Click + Drag: Move camera up/down
    • Ctrl + S: Save Model
  • Voxels are now displayed with outlines in the Voxel Editor to make the individual voxels more distinguishable and to assist in editing. This feature can be toggled on and off using the “Toggle Voxel Outlines” button on the Voxel Editor toolbar.
  • Added keyboard shortcuts for the Map Editor camera:
    • Shift + Arrow Keys: Move camera
    • Ctrl + Left/Right Arrow: Rotate camera
    • Ctrl + Up/Down Arrow: Zoom camera
  • Added keyboard shortcuts for the Voxel Editor animation toolbar:
    • Ctrl + Left Arrow or Page Up: Previous frame
    • Ctrl + Right Arrow or Page Down: Next frame
    • Ctrl + Up Arrow or Home: First frame
    • Ctrl + Down Arrow or End: Last frame
    • Ctrl + N: Add blank frame
    • Ctrl + D: Duplicate current frame
    • Shift + Left Arrow: Move current frame left
    • Shift + Right Arrow: Move current frame right
  • Added a new scripting function, “Put Player”, that will instantly move the player to a tile within the current map.
  • The Voxel Editor’s color picker now supports multiple palettes that are automatically saved and restored upon returning to the application.

Changes:

  • Added the new “Pending” navigation path type to the Navigation/Interaction context menu in the Map Editor and to the dropdown within the Modify Navigation/Interaction script node.

Bug Fixes:

  • Fixed an issue with the Player Position parameter in the “Load Map” scripting node that would cause the script to not be updated or saved properly when editing it in the Script Editor.
  • Modified method for rendering in the Voxel Editor that should prevent voxels from disappearing after hitting a certain limit. This should also improve performance while working in the Voxel Editor, especially for larger and more dense models.
  • Fixed an issue in the Map Editor where, after attaching a script to an object, the same script would be incorrectly attached to any subsequent objects for which the Properties dialog was used and no script was selected in the dropdown.
  • Fixed a threading issue related to the progress dialog that would occasionally cause the application to crash.

About Justin

Creator of RPG in a Box