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:
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?
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)
-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.
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:
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 ;}
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.
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
The asset is not abandoned at all. 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.
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 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.
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:
X,Y an Z key shortcuts does not work for first prefab placement.
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.
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?
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 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 ). 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 I am glad you understand!
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.
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.