Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

RPG in a Box

Bring your stories and ideas to life! · By Justin Arnold

Voxel editor features

A topic by lectronice created Aug 31, 2016 Views: 461 Replies: 28
Viewing posts 1 to 29
(2 edits) (+1)

Hi!

Here's a bit of feedback on the voxel editor :)

So I'm back to work on Nékromegà and I'm currently designing a bunch of characters. I'm pretty happy with the new free rotation feature of the voxel editor: it makes it much easier to use. I'd love to ditch MagicaVoxel to make my workflow smoother. Switching between two different softwares and doing continuous export/import is tedious, especially when animating characters (which MagicaVoxel doesn't support at all). But there's still something that prevents me to do so: a better color palette manager.

Currently in RPGB we have this color picker and the [+] button to store colors, which are handy for quick editing, but not really suitable when creating a new model from scratch, especially since these colors aren't saved. I'd love to see a way to save / load color presets so I could use the same default palette for all models. Simply adding a "save" option to the colors stored with the [+] button would be great (or save it automatically). Possibly with a drop down menu to switch between different saved color palettes.

I'm also thinking about two other small features: extending the free rotation to the top and bottom view (or at least increase the angle), and a way to zoom out a bit, precisely to have a better view of the top and bottom parts of the model.

And that would be perfect :)

Hey lectronice! Looking forward to seeing more of Nékromegà. :)

It's good timing that you are asking about these features, because I am planning on a partial revamp of the Voxel Editor very soon (for v0.3.4 - I will be releasing v0.3.3 in the next day or two). I am planning on designing the editing mode to be more like MagicaVoxel and Qubicle, including the idea where you "attach" voxels to build something (along with a paint tool) as opposed to the current approach which I think is too tedious.

I'll add your ideas to my list and attempt to get them included in v0.3.4. I definitely want to redo the camera so you can rotate all the way around the model as you suggested, and zooming should be pretty straightforward. I also think the saving of palettes should be doable. It could be something that gets stored and loaded using the application's already existing "settings.cfg" file. I'll keep you updated!

All of this sounds definitely excellent!

(1 edit)

I've made great progress over the past several days!

Saving of palettes was completed (which I think I posted about already), and I have full camera rotation and zooming working in the Voxel Editor. I need to do some more testing, but I also have the new editing functionality complete for the Voxel Editor. There are now three modes, Attach, Paint, and Erase, that work similarly to MagicaVoxel while in voxel mode. I took some quick screenshots to show them in action. :)


I am planning to push another release sometime this coming weekend that will include these changes. There are still a lot of convenience features I'd like to add to the Voxel Editor, but I think this will be a good base to start with!

That's very exciting news :) I have a bunch of MagicaVoxel characters ready to be imported and animated, I'm looking forward to this!

(1 edit)

I'm looking forward to seeing the characters and more of your game! The style and walk animation of the ones that I've seen are great.

I am working on one additional improvement to the Voxel Editor for the next release (which will hopefully be this weekend still). I took the time to look further into a "MultiMesh" object that Godot Engine supports, which does low-level mesh instancing and therefore allows a much larger number of instances (in this case, the voxel cubes). There was originally an issue with being able to set the color of an individual instance, but I think I have worked around it.

If I can get it working, there should be a good performance increase, especially on larger models like your doors. And it should help with the issue of the render limit where voxels start disappearing after a certain point, since each MultiMesh is only considered one render element.

Here is a colorful mess of 25,000 voxels that was part of my testing. :)

(2 edits)

Sounds like great improvements :)

However, here's a little bug: I'm currently importing new characters from MagicaVoxel, and after saving a couple of them without problem, the editor crashes without warning when I try to save a new one. I didn't do anything special, just importing, adding a few tags, and saving. This occured twice in a row, not sure what may cause this.

EDIT: Apparently this happens less often if I close each model before importing a new one and/or if I save the model empty first. But it still crashes after 4 or 5 imported models. Could it be a memory related issue?

EDIT 2: This occurs even when I don't import models. Adding tags and unchekching "walkable" then saving is enough to cause a crash.

Sorry to hear that you've been having issues with crashing! It does seem memory related since it occurs after importing multiple models.

If you open the application fresh, are you able to open many of those same models at once? I am wondering if it's related to importing/saving, or just the number of models in memory at once.

Also, I will be curious to see if this change to use the MultiMesh concept will make a difference at all. I except to wrap things up today and hopefully get the release out tomorrow for you to try.

It's a bit random, once it occured when I had only one model opened. Also, I'm not sure it's linked to the number of voxels since it also happened when saving a completely empty model. After a fresh start I've just tried saving one model with 13 different models already open, and I had no problem. It always happens when saving though, not when opening a model.

Okay, thanks for the update. I'll have to mess around with it some more and see what I can figure out. It seems like it almost definitely has to be some sort of memory/instability issue since it's random like that. I appreciate your patience in working through issues like this, and hopefully it doesn't hold you up too much in the meantime.

I've had to rewrite a lot of code due to the latest Voxel Editor changes, but I think it will be worth it, and it's forced me to clean up some things along the way. :)

After a lengthy debugging session, I am 99% sure I have found the issue that is causing the crashes to occur! It's getting pretty late here, so I am going to do some final testing in the morning and then I will provide more details and push the changes out to Itch.

Fantastic, keep up the great work!

The updates and fixes are now available! Let me know if you run into any new issues. The changes to the Voxel Editor impacted many areas of code, so I almost inevitably missed something.

The crashes appeared to be caused by a really obscure issue relating to my progress dialog. It was a threading race condition where I was updating the text label on the progress dialog both when it came into view (to default the text to "Please wait"), and when the particular process first updated it (for example, to say "Generating mesh"). So, according to the timing, it would occasionally try to update the text label from two threads and once.

Anyway, I am fairly confident it is fixed now. Before, I could continually save a model and get it to almost always crash by around the 15th to 20th save, more often around the 5th or 6th save. After fixing it, I've done upwards of 50 saves and it has never crashed once. It even inspired me to add the Ctrl+S keyboard shortcut since I was saving models so many times to test. :)

Also, thank you for finding these bugs! If the fix does take care of the crashing, that will make me feel a lot better about the stability of the application. :)

Hey, one small request :) Would it be possible to add more than one line of colors in a palette preset? My current palette has 23 colors, so I need to create several presets and switch between them. Not a big deal, but it would be easier to access colors.

Also, congrats on the Ctrl+Z! Yay for the Ctrl-Z! Hooray!

Haha, thanks! Let me know if anything does not seem to undo correctly. I am pretty sure I ran into a bug after performing a certain set of actions, but I couldn't ever reproduce it after that one time.

Also, I pushed out a small update to expand the palette area. You can now add up to 36 colors (three rows of 12) to each palette preset. :)

Awesome, thanks!

Sorry, it's time for another small request... A feature I'd find really useful for the editor would be to keep the palette window on top (or dock it somewhere) instead of closing it when clicking outside of it. Currently it closes when you edit the model, so you have to reopen very often if you want to switch between colors regularly. I also have a few other ideas for the editor, but I'll bother you with them later :)

I can understand that becoming tedious! The other day when I was implementing the palettes the idea of moving it out somewhere else crossed my mind. I threw together this quick and dirty mockup of what I am thinking. I would move the tool buttons and palette components into a tab where you could directly access everything together. The color picker gradient thing would still be in a separate popup, but I assume most of the time you'll be using the palette presets once they are configured (correct me if I am wrong). I envision you could right-click or something on a color in the palette to change it directly. Let me know what you think!


Yes, this would be perfect! I use colors a bit like I use tiles in the map editor, as building blocks, so having them always displayed would be great.

Sounds good! I'll be working on this over the weekend.

One minor inconvenience I've noticed: when you attach voxels using the bottom view, said voxels are attached to the grid instead of the model, so you can't work from "under" the model.

Thanks for catching this - a fix will be in the next update!

I just pushed out v0.3.5 which includes the new Editor Tools panel. I moved around some code as part of this update, so hopefully I didn't break anything!

The difference in our time zones makes things interesting - I'm pretty sure I am usually going to bed around the same time you are getting up in the morning. :)

Well yes, if you went to bed after posting this, that was pretty much when I got out of mine :) There's probably game studios with teams working 24 hours a day over different time zones, it might be quite challenging to organize such a workflow.

Hi!

I'm currently creating and animating characters from scratch within the voxel editor, and all is fine, except a few minor issues I noticed after a while.

The most annoying one is a hard to catch display bug I've no idea how to reproduce. Basically, after maybe half an hour creating, moving, and duplicating frames, and editing them, there's a moment when some voxels become invisible. They can still be deleted, but then, other voxels disappear or reappear randomly depending on where new ones are created. Saving, closing and reopening the model seem to fix the issue, no voxel stays invisible. It doesn't happen very often, so I can't provide more information for now, but seems to be triggered after a while working on the same model.

Another (very minor) issue is the fact after playing an animation a few times, not sure exactly when, the frame number starts to be displayed as a float, for example, Frame: 2.564356/9 instead of Frame: 2/9.

Finally, there may be a problem with the mirror tool, though once again, I'm not sure exactly what -- sometimes it seems to behave differently depending on the selected view.

All these three issues may be linked to the same problem since they seem to only appear after a while. Sorry I can't describe them more precisely, I'll probably understand them better after a few more models (which I need to finish before starting to play with the cameras scripts).

Anyway, this is pretty cool, not having to export/import with MagicaVoxel anymore is really nice :)

Hello! It's good to hear that everything is going well (for the most part!) :)

I'll see if I can recreate those bugs once I get some things wrapped up for this next release. The frame number issue is probably an easy fix. I am guessing it's a precision thing since I am not casting to an integer and eventually it gets off by a bit as it adds and subtracts 1. Do you recall if it was a value very close to an integer, for example: 2.000001, or was it actually similar to the example you gave of 2.564356?

It was closer to the second example, with a bunch of various numbers. Also, it was possible to get back to integers with the |< button, but playing the animation again made the problem reappear.

(1 edit)

In fact it seems to always be the same numbers after the dots: X.874275/X

And my animation plays a bit weird. I have a 8 frames walk animation which starts at frame 2 and ends at frame 9, except it starts playing at 1.874275, so I briefly see the first frame before the actual walk cycle. It happened right after launching the app and loading the model. Oddly enough, it only happens with one model.

EDIT: I changed the starting frame to 3, then put it back to 2, and the issue disappeared.