A downloadable tool for Windows, macOS, and Linux

Buy Now$3.99 USD or more


Want to get some extra performance in your voxel games? Or need a central application to easily export your voxel models?

The Ultimate Voxel Optimizer allows you to export voxel models made in MagicaVoxel with a number of options and formats, to help fit your workflow perfectly, and is available for Windows, Mac, and Linux.

Features

  • 4 export methods to choose from, including vertex colors, materials, textured, and optimised texture
  • Import any compatible .vox file
  • Export to .obj, ASCII .fbx, or binary .fbx
  • Choose whether to import an object's transformation data
  • Retain filepath structure when exporting models
  • Import a whole folder of .vox files for mass-exporting
  • In-program info buttons to help you decide what fits your workflow
  • Settings are saved between sessions to give more efficiency

New!

  • Cut entire sides of an object to remove unseen polygons
  • Set your objects' pivot points to any value
  • Compatibility for models with rotations, flips, and duplicates
  • Improved MacOS support

The Ultimate Voxel Optimizer imports .vox files using the latest MagicaVoxel specification. This means that some models, including those made in Qubicle, may need to be loaded and saved in MagicaVoxel to correctly export.

Support

The Ultimate Voxel Optimizer is supported with Windows, Mac, and Linux.

If you encounter any bugs or unexpected behaviour, or want to request a feature, please leave a comment on this page, or direct message on twitter.

You can follow me on twitter at: https://twitter.com/nateonus to get updates on this program and other things I'm working on.

StatusReleased
CategoryTool
PlatformsWindows, macOS, Linux
Rating
Rated 5.0 out of 5 stars
(2)
AuthorNat
Made withUnity
Tags3D, Pixel Art, Unity, Voxel
Average sessionA few seconds
LanguagesEnglish
InputsMouse

Purchase

Buy Now$3.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $3.99 USD. You will get access to the following files:

Ultimate Voxel Optimizer v1.1.1 - MacOS.tar.gz 41 MB
Ultimate Voxel Optimizer v1.1.1 - Windows.zip 35 MB
Ultimate Voxel Optimizer v1.1.1 - Linux.tar.gz 65 MB

Development log

Comments

Log in with itch.io to leave a comment.

(+1)

Hello! I had a feature request and an issue.

Can you allow .vox files to be dragged into the application instead of requiring to use the file picker?

We're also having an issue using our material with the .obj files that are created with this program. We use a single material in Unity which takes our palette texture.

To use files created by MagicaVoxel, we just export the .obj, import to Unity, and apply this material to the .obj file. The colors all match each other. This doesn't seem to work with .obj files created by this program.

The VertexColor option says we can't use .obj files in Unity, and the Material option says one material per color (?) which also doesn't make sense for us. The two textured options are also out of the question.

What exactly should we be using to use a single material while using .obj files in Unity?

Thanks for the comment!

I know I had some issues with drag and drop files in the past - But I'll have another look to see if I can figure it out.

Regarding the palette material, I don't know why I hadn't thought of this already.
Using one palette texture for all models will certainly be a good idea, so I'll add it near the top of my to-do list.

For now, I would recommend you use the material export, and import your meshes with 'Location: Use External Materials' in the materials tab.

Thanks again for letting me know!

Thanks for listening to our issues. By 'use external materials' in unity, do you mean the legacy option? I tried that, but I couldn't get it to work either.

If I understand correctly, you will add an option to allow us to export a .obj from this software, import the model to Unity, and allow a material like this to be used with it? Then we can just assign the material to it like this.

If this can be added in the next few weeks, I don't mind waiting. We really need this program for when we start to playtest on mobile, but it would be nice to start optimizing our models sooner than later so we don't have to go back and do so many.

Thanks again for the help!

After taking a little bit of thought, exporting in that way won't add any optimization to your models, since it'll be identical to the magicavoxel export.

I'll add it into the program as an option, but if you really want to optimize your models, I would recommend using the textured methods.

(+1)

So there isn't a way to optimize the meshes while still being able to just use the color palette? Why so?

Effectively it comes down to how the color palette works. If you store the color data without using UVs, you have to split each polygon based on its color.
Say for example you have a large square that is subdivided into 4 smaller squares in voxels. Using materials, each of those smaller squares have to be independent polygons, leading to 8 polygons. If you use a texture, you can reduce that to 2 polygons. 

There are still some reductions that can be made with a palette texture or materials, however, such as batching/instancing within Unity. 

I'm currently working on a Unity plugin for the program, which will allow you to directly import your vox models through Unity with all the same properties as the standalone program. Might be of interest to you since you can batch materials using it.

(2 edits)

Does this not work with the latest beta version of magicavoxel? It says my saves are not compatible.

And can you please add a way to scale too? If that was built in we could skip blender entirely.

Hey, thanks for the comment. Having a sclae value is definitely a good idea - I'll put that into the next update!

Regarding the beta version of magicavoxel, it adds in some changes to the vox file format to support animations and per-frame objects. If you're using them features then it's doubtful they will work.
However if you haven't used these features, then the program should still work. I'll have to look into it and run some tests before the next minor update to see why it's saying things aren't compatible.

Thank you for the reply. No, none of the files I tried use animations. I'm glad to hear about the scale! 😸

Hm, then I'll take a look into fixing that for the next update. 

I recommend you use the non-beta version for now if you're using my program a lot, until I find out what's causing the issue.

(1 edit)

Hey! One more question - does this program automatically change the coordinates to Unity's? In Blender we change up to y and forward to positive Z. If not, can you add that as an option too? That would then allow us to skip Blender.

The program converts to Unity's coordinate systems, so up on your model remains up in Unity and other game engines.

Just bought the tool, it works great! One issue tho, pivot(origin) is set to corner instead of center which causes problems when I'm trying to use it in a tiling system within unity.

Origin can be re-adjusted with a mesh editor but thats an extra step also I don't know why but with binary fbx I'm having texturing problems whenever I import it into blender.. creating another step to fix.

I'd love to have an option where I can choose to have origin set to be at the very center of vox's canvas.

(1 edit)

I want to also add: exporting as *.obj appears to solve this issue.

(+1)

Thanks for the feedback! I'm actually working on a pivot system right now! 

Textures in fbx files are a massive pain, since the fbx file stores an absolute path to the texture file. If the model is moved, then the reference to the texture can be lost. How a program accesses the texture file is dependent on the program, and so it can be a massive pain to get the texture references working correctly in multiple different platforms.

I'm hoping to look into exporting as gLTF files, which may have better support for programs than fbx files.

(1 edit)

I downloaded the Mac version. However, there is no reaction when I clicked "Add Files..." or "Add Folder..." button. The cursor of "Export Path" is visible but I cannot type anything into the bar. Moreover, the font and the window are small. There is no way to adjust the font size nor the window size. 


Edit: I borrowed a Windows device to test if this product can reduce the number of tris as it suggested. Turns out that it does its job. However, the MagicaVoxel texture does not work on the reduced version. Since this product is designed for MagicaVoxel, I had expectation that the texture should work on the reduce one as well.

Hey, thanks a lot for the comment! 

Regarding the add files/folder button, as well as the export path, these are using an external cross-platform library to browse files. I'll try and figure that one out asap and have it fixed for you.

Not being able to change the window size was, frankly, an oversight on my behalf. This'll be included in the next update.

Regarding the texture - Magicavoxel's texture is effectively just a palette, and it's extremely similar to just a material or vertex colour export. A good amount of MV's lack of optimizations come down to the texture file, as it means you're unable to reduce a multicoloured surface into it's optimal amount of polygons. In effect, MV's texture is what causes the models to be inefficient, so it couldn't be supported easily.

Hope this helps. If you need anything else or have any other comments then just let me know.

I appreciate your reply. This product would be convenient if you can fix the file path and size problems on Mac. 

The number of some objects in my objects appear quite frequently. (walls, grass...) Fortunately, there are no many such kind of objects in my project. Using this product already can greatly reduce the number of tris, and I know how to paint them. Thanks for letting me know that the Magicavoxel textures are not easily supported, I was about to waste my day on it.

By the way, I did not mention that I had problem importing FBX file genereated by this product to blender. The error was "ASCII FBX files are not supported". However, I succeed in importing them into blender using some mesh combine add-ons via Unity.

Regarding importing into blender, you'll need to convert the FBX into a binary FBX. You can do this in the program on Windows, otherwise you'd need a tool such as https://www.autodesk.com/developer-network/platform-technologies/fbx-converter-archives, which is suitable for mac and Windows.

Hey Kolyn, if it's convenient for you, could you send me a message via twitter or Discord? Twitter is https://twitter.com/nateonus and discord is Nat#5389. 

I've got a version of the program to send you that hopefully has this issue fixed, but I'd really appreciate if you could test it before I push it into release.

Sure, I do be happy to do so. Discord friend request sent.

nice one and do add some demo on same!

(1 edit)

excellent stuff, congrats on the full release! Just bought my license :)