PicaVoxel

Sorry for not answering this sooner (this thread always slips my mind). Essentially, Laurent is correct when it comes to mobile. Updating meshes at runtime in Unity is expensive, even moreso if you have colliders attached. That’s why I don’t make any guarantees for mobile platforms. The runtime portion of PicaVoxel is mainly aimed at desktop.

Draw calls is an interesting question. Despite using a shared material, the draw calls (batches in U5) always seem high. I’m guessing this is down to the meshes having >900 vert attributes. Again, we’re rubbing up against limitations with procedural meshes in Unity.

Your mileage may vary though, which is why I honour refunds within the first two weeks if you find that PicaVoxel doesn’t suit your project.

I love this toolset very much, and Can you provide a teaching video about the new features like Marching Cubes Meshing and Emissive and Mosaic shaders?

Thank you! I do need to do some more tutorial videos, but I’m happy to answer any specific questions here or via email (support@picavoxel.com)

Marching Cubes meshing is simply a third meshing mode you can switch to in the PicaVoxel Volume inspector (Meshing Mode drop-down).

There’s a step-by-step guide on the new shaders in the manual (page 18).

@GarethIW i can’t reach you by email (undelivered exception), i let you a PM.

Is the engine compatible with playmaker?

Your Jarhead game is awesome. Any chance you sell it as a complete kit asset? ;D

I don’t use Playmaker, but I don’t see why it wouldn’t be.

Hehe, thanks - but no :slight_smile:

How can I destroy voxels, like in your game the tower? I want to shoot on object and it goes bang.

and is it possible that destroyed objects, autorepair after a amount of time?

I’ve been considering developing a voxelized rpg and was wondering if you can create an item and then scale it down (basically for better resolution), I’m wanting the flexibility of voxels but better detail. And can each item be scaled seperately? Are the objects created saved as individual files say for importing into multiple projects?

Any performance comparison with say Voxelmax?

Thanks in advance

Each PicaVoxel object (we call them Volumes) has its own Voxel Size parameter which sets the size of the individual voxels in units. So yes, you can scale your models as you see fit, and have different sizes for each.

The created objects are not saved as individual files, but you can create prefabs from them.

I would suggest using an external editor such as MagicaVoxel or VoxelShop to create your models, and then import them with PicaVoxel. That way your models are not tied to a particular Unity project. PicaVoxel has full workflow support for .vox and .qb voxel formats.

I’m afraid I don’t have any performace comparisons with other assets for you.

Hi!

I just updated to PicaVoxel 1.4.7 and every time I try to import a .vox file from MagicaVoxel, I get an error. It just returns an object reference exception and points to this line of code.

if (voxelData.Length == 0) return; // failed to read any valid voxel data

Is this a bug or am I somehow doing something stupid?

Don’t worry - it’s not you, it’s a bug :slight_smile:

I’ve just submitted a fix to the Asset Store (same version number). In the meantime change line 105 of MagicaVoxelImporter.cs from:

 //numFrames = stream.ReadInt32();

to

stream.ReadInt32();

Basically uncomment the line and remove the numFrames assignment, so it just does a blank read.

This was all caused by wanting to get rid of the unassigned variable warnings that Unity throws up, trying to keep the asset import clean!

2 Likes

Thanks for the quick reply! The fix worked perfectly! Keep up the good work! :slight_smile:

Hey @GarethIW I updated to 1.4.7 and save/load is no longer ok, what’s the new syntax for save/load?
voxels*.dataholder.data.LoadFromString(PlayerPrefs.GetString(PPname));*

Also the chunk building is super slow, any plan to thread mesh building?

There’s nothing in PicaVoxel that has the above syntax (dataholder etc) and I have not changed the syntax for loading from a byte array since the very early versions. Did you add your own code to the PicaVoxel classes?

Also, mesh generation in PicaVoxel is threaded. Are you sure you’re not looking at another asset?

That and meshbuilding in the editor is super slow plus search was in full word mode (sneaky) so I couldn’t find threads. This is what happens when reviving year old project with confusing names. So now I spend time before naming my projects, a bit like this

By the way Voxel.Active is a getter. I think I changed it to a variable because when I load I don’t want the mesh to be built (it causes a hiccup), could you add something?
I’ve hacked a thing in the meantime.

            set{State = value ? VoxelState.Active : VoxelState.Inactive; }

Hello people,
the last couple of weeks I’ve worked for my current project on a workflow and scripts for rigging a PicaVoxel object using Qubicle, Blender and - no wonder - PicaVoxel. As I thought it would be useful for others as well, I’m hereby releasing it to all PicaVoxel owners. It enables you to combine PicaVoxel objects with Unity avatar setups and so to animate multipart voxel models via Mechanim.

As a bonus, the asset also contains an importer for the new Qubicle Binary Tree format to take automation even further.
I’ve tried to write the workflow as detailed as possible without being bloated. I’ve tested as much as possible, but I’m sure there’s lots of room for improvement. Out of need for my project, I’ll go on to extend this further, so expect more in the future.

If you got any comments, requests, bugs etc. please feel free to contact me via the mail adress you can find in the workflow document. Looking forward to your feedback.

Now go and get the asset here (if you’re interested that is):
http://www.outeregions.de/upload/RigIt!WorkflowV1.1.unitypackage

2 Likes
  1. Is it possible to rig and animate a PicaVoxel model?
  2. Does PicaVoxel work with Voxel Importer?

You can’t rig it directly in Unity because it’s not a SkinnedMeshRenderer that Unity uses for these cases, but have a look at my post above yours, I just created a workflow and scripts for exactly that purpose and I’m continously working on extending it for my own project.