[RELEASED] ObjectGrid3D - World Builder Tool (Unity Extension)

Hello,

I would like to announce the release of ObjectGrid3D, a world builder tool which can be incredibly useful when constructing your game levels. You can find the package together with the feature description on the Unity Asset Store at the following link: Unity Asset Store - The Best Assets for Game Making

Here is a small summary of the feature list (for a more detailed description please check out the Unity Asset Store link):
-3 different object placement methods (PointAndClick, Path, Block);
-object snapping (control snap settings separately for each axis, select pivot and destination points, snap surface subdivision, snap offset, objects can be snapped along the surface of the grid or along the faces of other object’s box colliders);
-precise snapping (allows you to snap objects along the mesh surface of other objects);
-create snap configurations to easily switch between different snap settings;
-object layers;
-object selection;
-mirroring (control settings for static and dynamic mirrors to speed up your game level creation process);
-tile connections (can handle tiles which differ in size);
-prefab links: you can link snap configurations and object layers to prefabs and when you activate a prefab for object placement, the corresponding snap configuration or object layer will be activated automatically. This can be a real time saver because it relieves you of the responsibility to manually activate the correct configuration or layer.
-prefab categories;
-you can place mesh, light, trigger, or particle system objects. You can also place object hierarchies which contain any combination of these object types;
-optimize for reduced draw calls.
… and much more!

If you are interested about what the tool can do, you can check out the following video:

Hey there,

ObjectGrid looks awesome! Couple of questions:

  • how does the system handle things like scene lighting & optimization etc? is it just a normal Unity scene or does it have a custom serialization format / structure for loading maps that have been created with the tool?
  • does it support any kind of ‘projecting on terrain’ type of mapping? would be cool to use something like the tile connections to do vertical connections to have objects map onto a terrain potentially?

Hello,

I ma glad you like the tool!

Regarding your questions:
-scene lighting and optimization → currently there is only one type of optimization that can be performed: the well known reduced draw call (i.e. batch rendering) optimization. The tool generates a secondary UV set for each of the combined mesh’s vertices so you can then use lightmapping if required. Lights can be placed around in the scene while taking advantage of the snapping functionality and object placement tools just like you do with regular mesh objects;
-serialization format → Unity serialization mechanism, pure and simple (gave me a few head aches a couple of times though) :slight_smile:
-terrain projection/terrain support → The tool was not designed with terrain support in mind and I have just checked to see if it is possible to place objects on the surface of a terrain and the results are a little bit weird. So I am afraid that at least for now, terrain support is not available. However, do you think it would be possible to give me a little bit more details about your second question. The one about terrain projection. I feel that I haven’t really grasped the idea fully.

Cheers,
Andrew

Ok. Regarding the serialization mechanism, I just thought I should be a little bit more clear on that. It’s just a normal Unity scene. There is currently no file format available to load/save the level data.

For the terrain projection, what I was thinking would be something like this:

2347675--158913--verticalTiles.png
Imagine each color of Tile is a ‘connector’ - the objects would be placed on a grid still (horizontal & vertical) - but would know how to tile themselves vertically when placed on a terrain.

This would be useful for placing buildings on a terrain (where there is a ground level). Could also be useful for extruding bridges over gaps - and the underlying bridge columns would intelligently extrude down under the grid.

Totally random thought to be honest, but was looking at the ‘path’ documentation / concept for your tool, and thought something like this would be useful ;}

Anyways, Will probably grab a copy soon ;}

Thanx!

Got it. Now I understand. This is an interesting idea and in fact, I believe this can be generalized a little bit to work not only with terrains but also with other objects in the scene. You could for example specify that a certain tile connection should be extruded downwards or upwards until another object is encountered (with a maximum extrusion limit in case no other object is encountered). This would allow you to use the system not only with terrains, but also with floors, walls etc.

Thanks for the idea. I can not put an exact time stamp on when this feature will be available but I’ve noted it down in my to do list. :slight_smile:

Cheers,
Andrew

Is this asset still beeing worked on?

Since this asset is on sale, I am intrigued to buy it. However, it does look abandoned.
http://forum.unity3d.com/threads/update-objectgrid3d-v1-1.370048/
In this thread you said in November last year that a big workflow update would be coming. Is it still coming?

What worries me as well, is that ever since the launch of the asset (I’ve been following it for awhile) the asset is declared as having been updated just a few days ago (March 28th in this case), when in reality the update dates back to November last year. Clicking on the release notes only leads to the asset store front page, which it always did.
Maybe this whole thing is just a bug in the asset store, however, I haven’t come across this issue on any other asset, yet.

Maybe the developer can shed some light on this as well as on the development status?
Thanks

Hi there 2dgame,

The asset is not abandoned at all. :slight_smile: However the tool is being rebuilt from scratch in order to make the codebase more extension friendly. The estimated release date for the update is May/June 2016 although I am pretty confident that it is going to be the end on June :).

It’s not an easy task, I am trying to make the tool as flexible as possible suitable for different kinds of games. This comes at the cost of sacrificing the GUI user friendliness and balancing the 2 is not really easy. I understand that you are worried, but please believe me that I have no plans to abandon it.

It’s actually good that you brought this up because this gives me the idea of posting more specific information on my website.

You can check that page once in a while and I will post more specific information about what has been done and what remains to be done. Meanwhile, if you have any further questions, please contact me at octamodius@yahoo.com.

Also, whenever you have any questions about the general status, please drop an e-mail. You can also post in the forums, but I check my e-mails more often than the forums, and sometimes it happens that notifications are not sent.

Thanks!

Kind Regards,
Andrew

Regarding the updates, tehre have been 3 of them up to this point:

  • Small update which performed a couple of bug fixes;
  • Update 1.1 - added new features and bug fixing;
  • Small update which implements some features and improvements suggested by users and small bug fixes.

More info about these updates can be found on the ObjectGrid3D website page given in the previous post (here).

Thanks for clarifying! I’ll buy it.

I bought this tool yesterday thinking it will help me to design my levels faster but i’ve played with it a couple of hours and still can’t understand how this thing work.

for example im trying to position the corner of this prefab at 0,0,0 and it’s impossible it always try to snap outside.

The only way to position it correctly is to change the snap settings to X - Pivot Point Max and Z - Pivot Point Max
But then my cursor is very far from the prefab.

I tried reading the documentation but it’s very confusing and the videos doesn’t help much either because they are at 30x speed.

I think you should make a step by step video to teach at least the basics of this tool.

Hi there b4c5p4c3**,**

I perfectly understand your problem and believe me that I know that the current snapping system can be a little bit hard to use at times. In the next update all those snap settings that you currently have available will be dropped in favor of a much easier to use snapping system.

I have already implemented the new snapping system in the next version, but because its a total rebuild from scratch of the tool, I can not send you that package since it has a lot of missing functionality. Instead, let me see if I can implement this functionality inside the current version.

Video tutorials will also be available starting with the next update (due June 2016). Meanwhile, if you wish you can make a list of the things that you find confusing and I will put together a video which treats those issues.

Thanks for bringing this to my attention.

Kind Regards,
Andrew

Hi,

Got ObjectGrid3D on sale - going to use in projects.
Unity 5.3.4p1 on Mac OS X 10.11.4.

And found some annoying issues:

  1. X,Y an Z key shortcuts does not work for first prefab placement.
  2. Calculation of object bounds is not good for some of prefabs - too large. Disabling recurse in GetHierarchyObjectSpaceAABBRecurse “fixes” this problem but not for complex prefabs.

One wish (maybe I overlooked it) - it would be nice to define overlapping distance for prefab placement.

Hi there Smokas,

Regarding the X, Y and Z keys. This is actually available for all shortcut keys. The reason is that when you click in the inspector, the focus is transferred over to the Inspector window and I do my event processing in the OnSceeneGUI method which is called only when the scene view has focus. So in order for the shortcuts to have any effect, you have to first click in the scene view first. I know this is inconvenient and the solution is quite easy to implement, but I just can’t figure if it is a stable one or not. So I will keep this in mind and try to solve it.

Regarding point 2, I am already aware of that and it has been fixed. However, I haven’t submitted it yet to the Asset Store. Please send me an e-mail at octamodius@yahoo.com and I will send you the updated package.

Regarding the last point, I am not sure I understand. Could you please give me more details on this?

Kind Regards,
Andrew

Hi,

You call it “interpenetration”.
In the image below here are two types of fence - first is interpenetrated, second - not:

I understand you doubts about point No. 1 very well :slight_smile:

Hi there Smokas,

Ok. I think I understand. If I remember correctly, while the tool was still in development I implemented this functionality and then removed it because I didn’t think it would be useful :slight_smile: I will implement it and then send the package to you. So basicly there will be a field which allows you to choose an epsilon value (i.e. the amount by which objects are allowed to interpenetrate - I hate this word by the way and I have no idea why I called it that way :slight_smile: ). But please send me an e-mail so that I can send it to you before it gets approved on the store.

I understand you doubts about point No. 1 very well
Thank you :slight_smile: I am glad you understand!

Cheers,
Andrew

Hi there Smokas,

The solution is ready. Please send e an e-mail when you would like to recieve it.

Thanks.
Andrew

Mail sent. BTW Right Click in Scene works fine - window gets focus but prefab is not placed and can be rotated.

Hey XGT08,

I had OG in my scene and started to integrate SteamVr but i got this error:
Assets/SteamVR/Scripts/SteamVR_Utils.cs(256,38): error CS0121: The call is ambiguous between the following methods or properties: SteamVR_Utils.GetRotation(this UnityEngine.Matrix4x4)' and ogMatrix4x4Extensions.GetRotation(this UnityEngine.Matrix4x4)’

So i added an additional parameter to this function in OG, don’t know if it will work now flawless.
Maybe you can give me some hint, how to fix that proberly or what is the best way to do now.

Hi there Hormic,

It seems that SteamVR implements its own extension method for the Matrix4x4 class and that is causing a name clash with the function which resides in the ObjectGrid3D scripts. Adding an additional parameter should work fine, but in my opinion it would be best to just rename one of the functions to something else. If I were you, I would rename the function in the ObjectGrid3D package to something like GetRotationQuaternion.

Please let me know if this helped.

Kind Regards,
Andrew

1 Like