Search Unity

Octave3D-Level Design - Snapping, Prop placement, Multi-Prefab painting

Discussion in 'Assets and Asset Store' started by XGT08, Aug 10, 2016.

?

Do you prefer written documentation or video tutorials? (regarding the Octave3D remake)

Poll closed Jun 10, 2023.
  1. Written documentation

    68.8%
  2. Video tutorials

    31.3%
  1. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @tomraegan

    :) I'm glad to help out when I can. Enjoy!
     
  2. Macklehatton

    Macklehatton

    Joined:
    Dec 22, 2013
    Posts:
    10
    In both block and path placement mode, when I select a different extension plane with E and start placing the objects they are shown in a different rotation than they were originally in. When I hit Shift+LMB to finish drawing the object is placed with the original rotation but the locations and spacing they are placed using is based on the incorrect rotation. In the last image there are several dozen objects overlapping.

    Am I understanding how this tool is intended to be used? Is it supposed to be possible to place objects at one rotation with the extension plane using a different rotation? I suspect this has to do with the usual up axis problems when going from Blender to Unity. I would be convenient if the path and block placement modes used the current rotation or the prefabs rotation than what I assume is the original mesh's rotation.

    Plane1.png Plane2.png Plane3.png
     
  3. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi there,

    This is a bug which has been fixed in version 2.0.6. However, this version is not currently on the store. Please send me an e-mail and I will send the updated package to you.

    Best Regards,
    Andrew
     
    Mark_01 likes this.
  4. Macklehatton

    Macklehatton

    Joined:
    Dec 22, 2013
    Posts:
    10
    Thanks for the quick reply. Right after posting I found an asset processor that fixes the rotation problem. It's good to know that's not something I'll have to worry about in the future though.
     
  5. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    AA.. glad to hear that. However, do you think I could still send you the package just to make sure the issue has been resolved. What I am essentially asking is if you could perform a small test just to be 100% sure that the update works. I tested it with my own prefabs, but it doesn't hurt to test it with others :D

    Thanks!
     
  6. Macklehatton

    Macklehatton

    Joined:
    Dec 22, 2013
    Posts:
    10
    Sure. Happy to help, I'll PM you.
     
  7. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
  8. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    @XGT08

    Okay, tried it. At first it was great, I placed a lower level facade and then placed one on top. I find the Q to move up is very glitchy. It sometimes works, but it is aggravating and kills my hands.

    The second house was a little more difficult and I had a difficult time moving it up again.

    The third one refused to place where I clicked and ended up far away. So I had to get out of placement mode and move closer to that facade. Then I tried to place another on top of it and it didn't work at all. I pressed Q and moved me mouse off my huge screen and it still was not high enough and it would sudden pop off and go lower.

    It may be that my use is not the best use of your tool. :) I can place them by hand much faster and it is less frustrating. I will try again with a future project more similar to your demos.

    I did get a lot of null object errors but nothing else.
     
  9. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Ok. I understand. Would it be possible to send me a screenshot with the models you are using? I need this to get an idea of what the problem could be. So basicly maybe a screenshot of the environment you are creating.

    Also do you think you could reproduce the null object errors and send a screenshot?

    Thanks for doing this!
     
  10. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Teila

    Also, can you please give me the name of the asset package that you are using. Or link to the asset store?
     
  11. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    MarketSquareSmall1.jpg
    I am using the Rome asset pack from Quantum Theory but...I have modified them a great deal so probably won't help you at all.

    The above picture is what I am doing...stacking the floors on top of each other, adding doors and windows, and later adding the props by hand. :) That is my scene up there so far.
     
    Last edited: Sep 11, 2016
  12. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Teila

    Looks great! Thanks a lot! I will see what can be done.
     
    TeagansDad and Teila like this.
  13. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    Hi Andrew, I just got an update that another bug got squashed.

    To some of you , I am known for not posting a lot in the forums here.
    XGT08, ( Andrew / Octave ) .. I had got ObjectGrid3d long ago, and
    this second " incarnation " renamed " Octave3D ( World Builder ) absolutely
    ROCKS!!! The package has more power then I will ever get used to I think.

    If there is a problem Andrew, will help and listen... I know this should be posted
    as a review on the asset store and i have been, meaning to re-do the review for him,
    since this is really a major upgrade/rewrite of the original ObjectGrid3d. He has always
    responded to me on mail, and if I had problems we got it sorted out one way or another.
    He has made 2 private movies for me as well, since some times, videos are far
    easier to explain stuff , over writing. This is my first visit to the forum as well.
    So officially Andrew, Thank you for all the hard work you put into this package.
     
    XGT08 and Teila like this.
  14. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Mark_01
    Hi there buddy and welcome! I'm so glad you joined the Octave3D forum! Thank you for all the kind words!

    So there is a new update available on the store which contains some new features and bug fixes. Probably the most notable feature is the new object to object snapping mechanism of which I am really satisfied with at the moment.

    Of course, if any of you guys spots any issues or room for improvement, please do let me know. I am willing to do anything that I can to make it better.

    I have also made a video tutorial explaining how to use the new snapping functionality and you can watch it here.

    Enjoy!
     
  15. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Teila
    I haven't gotten a chance to grab the Rome pack just yet :D, I did however manage to get my hands on another package and I will play around with that one and try to identify any issues. For the moment it's the best I can do.
     
  16. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    Thank you too, for listening and implementing so many new features in this version. To be honest, I know I still
    have not fully grasped everything that I know Octave3D can do. The new features you added for me were great.
    The video tutorials you are working on help a lot. To me I am sure Octave3D will have a very long life, on the
    asset store. Congratulations on such a fine, well needed tool, for prefabs. I will update the review
    as soon as I can find the words to help convey what a great use Ocvatve3d is to me.
     
    XGT08 likes this.
  17. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    No problem. :) Like I said, I can do it other ways. I am setting up all the houses and then going to try to use Octave to snap them as objects. That might work better. Not too worried about it. :)

    I do appreciate your amazing support.
     
    TeagansDad, XGT08 and Mark_01 like this.
  18. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Alrighty then :D Thanks for understanding!
     
    Teila likes this.
  19. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi everyone,

    I've just released a new update which fixes a really annoying bug that some users were experiencing. It seems that sometimes when rotating the camera, if the mouse reached the Inspector GUI and the right mouse button was released, it was no longer possible to place objects in the scene. The only solution was to either switch to play mode and back or to restart Unity. This has now been fixed. :)

    I would also like to let you know that I have tested Octave with another tool which you may have heard about. This tool is called World Creator (www.world-creator.com) and it is great for building awesome looking terrains/landscapes and given the fact that Octave has a nice collection of terrain placement tools, the 2 of them work great together.

    Enjoy!
     
    Mark_01 and worldcreator3d like this.
  20. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi everybody,

    I would like to let you know that Octave3D V 2.0.8 is now live on the Store and starting with this version support for 2D is available which means that the tool can be used in conjunction with 2D sprites to build 2D game levels.

    If you are curious, here is a short video in which I talk about this functionality.

    Enjoy!
     
    Mark_01 likes this.
  21. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    :) Thanks so much for the continued development ..
    going 2D as well ... very good idea ...
     
    XGT08 likes this.
  22. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi Mark,

    :) Thanks. I had a user who was using the tool for 2D, but it was weird because I never designed it that way. It just almost worked accidentally using the Decor Paint Mode. So I decided to provide official support for 2D sprites and this what this new version is about mostly.

    Thanks for dropping by!
     
  23. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    3D and 2D ... whats else to cover... LOL ;)

    Seriously tho ... I hope word spreads far and wide .. in Unity ,,
    Octave3D is the best tool for what it is for!! Hands down
     
  24. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    :) Well there's lots of dimensions left: 4D, 5D etc :D LOL, but I don't know if I can pull that off.
     
  25. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    ROLF :p your right !!
     
  26. The_Arrival

    The_Arrival

    Joined:
    Dec 3, 2014
    Posts:
    82
    Hey there,

    first of all, great tool as far as i experienced it. I have a few questions i couldn´t find the answer thus far:

    - how can i save my prefab setup, so i can apply the WorldBuilder asset to diffrent scenes using the same setup. Maybe it´s even possible to save diffrent setups and organize them in categorys like "ice world", "desert world" and so on.

    - is there an way to rotate the preview picture of the prefab. currently most of my prefabs are not readable by that preview. It takes the same perspective like the unity preview (which i can rotate, but not permanently). It would be great to be able to set a custom perspective/rotation to each prefab preview

    - we have carefully placed the piviot points in our assets to make the placement easier, for example the same cornerprefab from the first screen has it´s piviot point set like in the second screen. Worldbuilder offers me the center of the whole mesh and all four corners as snapping points. how can i use my set piviot point for snapping?
     

    Attached Files:

    Last edited: Oct 20, 2016
  27. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi there,

    Thanks! I am glad you are finding it useful!

    Now, regarding your inquiries:
    -saving the prefab setup is not currently possible, but this is something that other users have requested, so it will be available in the next version. I can not put an exact time stamp on it, but it shouldn't take too long. For the moment it should work if you share the Octave3D object between different scenes. Just drag and drop it from one scene to another in the hierarchy view and it should work just fine. If this is an urgent feature, I will start working on it and do my best to finish it as fast as possible;
    -rotating the prefab preview is not possible and to be honest I do not know if this will be available. In order to generate that texture, I call a UnityEditor API function and I use whatever texture it gives me. I know it would be a nice to have, but for the moment, I don't think there's much I can do about it;
    -I see. It is not possible to do that at the moment, but it can certainly be implemented.

    I am currently implementing an update for another package of mine and I would like to ask you if any of these features are urgent. If they are, I will work in parallel. I try to avoid doing that in general an that's why I'm asking :)

    Thanks a lot for using Octave3D! I will be waiting for you answer :)

    Best Regards,
    Andrew
     
  28. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @The_Arrival
    I know sometimes I sound like a robot, but please understand that I am not always like that :) 2:37 AM and preparing to go to sleep hehe. Please let me know if any of the features you requested (except for the second one) is urgent and I will shift priorities.

    Thanks!
     
  29. The_Arrival

    The_Arrival

    Joined:
    Dec 3, 2014
    Posts:
    82
    Hey XGT,

    first of all, thanks for the quick answer. Don´t worry about robot mode! I´m also working since 3 hours straight on setting up prefabs, categorys and the pipeline for levelbuilding... i also feel like a cick robot (2:20am here)

    - piviot feature is not that important for now but would be definatly nice to have! i found a workaround for all of my assets so far. since at least ONE corner is usually aligned with my grid it´s "just" tedious use of the hotkey "j" to cycle those pivots. Annoying, but doable.

    - As long as there is a way to transport the setup, i´m fine with this one. So you suggest draggin the object in the hierarchy, making a prefab out of it and drag that prefab into any scene i wanna build? If that works, i´m good. I´ll test this later on.

    - unfortunatly the preview is definatly the most anoying one, since it makes the picture pretty much useless for 80% of my prefabs. We spared backfaces were ever possible and out of bad luck(?) almost all of them are turned wrong so i can´t tell which ich which. The screenshot shows the dilema :) I wonder if it´s possible to setup the orientation of the prefab, so unity renders them in the angle i need.

    So i´d say until there is no spontaneous inspiration on how to force the preview angle, finish your other asset first. I also hate switching tasks :)

    Good night
     

    Attached Files:

  30. The_Arrival

    The_Arrival

    Joined:
    Dec 3, 2014
    Posts:
    82
    Damn... now i´d need a quick fix!

    I draged a prefabfolder into another category by accident. I did CTRL-Z to undo and now my prefabwindow is broken. unity throws this error stack and i have no idea on how to fix it. Resetting the layout, restarting the unity... nothing works anymore

    NullReferenceException: Object reference not set to an instance of an object
    O3DWB.PrefabFilter.FilterPrefabsByFilterProperties (System.Collections.Generic.List`1 namedPrefabEntities) (at Assets/Octave3D World Builder/Scripts/Entities/Entity Filters/PrefabFilter.cs:72)
    O3DWB.PrefabFilter.FilterPrefabs (System.Collections.Generic.List`1 prefabs) (at Assets/Octave3D World Builder/Scripts/Entities/Entity Filters/PrefabFilter.cs:64)
    O3DWB.PrefabFilter.GetFilteredPrefabs (System.Collections.Generic.List`1 prefabs) (at Assets/Octave3D World Builder/Scripts/Entities/Entity Filters/PrefabFilter.cs:49)
    O3DWB.PrefabCategory.GetFilteredPrefabs () (at Assets/Octave3D World Builder/Scripts/Assets/Prefab Categories/PrefabCategory.cs:209)
    O3DWB.PrefabCategoryPrefabScrollView.AcquireFilteredPrefabs () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Views/Entity Views/Prefab Categories/PrefabCategoryPrefabScrollView.cs:54)
    O3DWB.PrefabCategoryPrefabScrollView.RenderContent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Views/Entity Views/Prefab Categories/PrefabCategoryPrefabScrollView.cs:40)
    O3DWB.GUIRenderableContent.RenderNoIndent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:105)
    O3DWB.GUIRenderableContent.RenderGUIContent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:88)
    O3DWB.GUIRenderableContent.Render () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:51)
    O3DWB.ActivePrefabCategoryView.RenderContent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Views/Entity Views/Prefab Categories/ActivePrefabCategoryView.cs:53)
    O3DWB.GUIRenderableContent.SurroundWithBoxAndRender () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:111)
    O3DWB.GUIRenderableContent.RenderNoIndent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:104)
    O3DWB.GUIRenderableContent.RenderGUIContent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:88)
    O3DWB.GUIRenderableContent.ToggleVisibilityAndRender () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:69)
    O3DWB.GUIRenderableContent.Render () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/GUIRenderableContent.cs:50)
    O3DWB.PrefabManagementWindow.RenderContentInScrollView () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Windows/PrefabManagementWindow.cs:112)
    O3DWB.PrefabManagementWindow.RenderContent () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Windows/PrefabManagementWindow.cs:46)
    O3DWB.Octave3DEditorWindow.OnGUI () (at Assets/Octave3D World Builder/Scripts/Inspector GUI/Windows/Octave3DEditorWindow.cs:120)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
  31. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Thanks for understanding :)

    Regarding scene dragging. You don't need to make a prefab. Actually making a prefab will not work if I am not mistaken. You have to use Unity's newer multi-scene editing functionality. I believe it was added in Unity 5.3. So all your scenes can appear in the hierarchy view just like regular objects. And then when you would like to switch to another scene, you can just take the Octave3D object from the current scene (in the hierarchy view and move it as a child of a different scene).

    But no worries, I will implement prefab configuration save load and things will be much easier then.

    Regarding the prefab previews. I know it's frustrating when the prefabs are not oriented accordingly. Changing the prefab rotation might work, although I am not sure if Unity takes the rotation into account. Could be worth trying. However, Octave3D stores these textures after they have been first created so you will have to regenerate them by pressing Refresh GUI textures (right below the main toolbar).

    Regarding the bug... Oh my :D I will have to take a look at that. I will start working on it now and see what happened.
     
    TeagansDad likes this.
  32. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi everyone,

    I know it's been some time since we last talked :). I took a small break and had to also work on some other packages hence my absence from the forum. But I am back now :D

    I am currently working on an update for Octave3D which should be finished pretty soon (still a little bit more work to do though). Among other things, this update will allow you to save prefab categories (together with prefabs and prefab tags) in config files so that you can load them later for reuse. This is a much needed feature because there is currently no way of keeping all this data around when switching to another scene which can halter the production process since you have to essentially rebuild the prefab configuration manually again.

    You will also be able to save other settings such as snap, selection and erase settings and all look and feel related stuff.

    I will let you know when this version is live.

    Cheers,
    Andrew
     
    Mark_01, 2dgame and TeagansDad like this.
  33. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    634
    Sounds wonderful Andrew ! no doubt this will be welcome by many and
    another selling feature .. never hurts!! :)
     
  34. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi Mark. Thanks! Always nice to hear from you!
     
  35. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Hi everybody,

    I would like to let you know that Version 2.0.9 of Octave3D is now live on the Store and there are a couple of features which I believe you might want to know about so I would like to explain what these are and what they do.

    Some of you may have noticed that after organizing all prefabs into categories and creating any necessary tags you couldn't transfer all this data to a different scene. Starting with this version, you can now save all prefab categories (together with prefabs and prefab tags) into a file which you can then load when needed.

    The 2 Save/Load buttons can be found inside the Prefab Management window as shown in the following image:
    SaveLoadPrefabConfig.png

    You can also do a similar thing with snap, selection, erase and look and feel settings. In the next image I have outlined the 2 buttons which allow you to save/load those settings:
    SaveLoadOctave3DConfig.png

    Pressing any one of these buttons, will bring up a new window which allows you to choose which settings can be saved. The 2 windows are exactly the same with the exception that one of them applies to saving and the other to loading:
    SaveOctaveConfigWindow.png

    For the moment, it is not possible to save/load prefab brushes for Decor Paint, but these should be up and running pretty soon.

    Another feature that is available is the ability to associate an object group with a prefab category. So when that category is active, all objects that you place in the scene will be assigned to the associated group. This is configurable so you can turn this off if you wish. Note: At this point there is a chance that the object group mechanism may be a little tricky to use correctly due to a number of toggle buttons that you need to check. I will record a tutorial video in which I will explain how object groups work and let you know when it's available.

    All the best,
    Andrew
     
    Mark_01 and TeagansDad like this.
  36. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Seems like a great asset so far, but there's one thing I see that I can't make it do quickly enough compared to the competition, and that's terracing like in the image below:



    Above is a screenshot of a much lower-cost competitor called TileEd. I have yet to purchase it despite it doing an excellent job at exactly what is shown because the author seems dead-set on considering it 'feature-complete', despite me being strongly against that stance since it's missing 2 final features -- 1) I'd prefer only a TINY bit more flexibility in terraces (i.e. stacking walls on top of walls), as well as 2) a built-in tile-pooling system to help with optimizing huge levels.

    Your system has the potential to win me over if you can show me how to automate the terrace-painting and optimize/pool the placed tiles without necessarily combining meshes (I want to make multiple terrains like this and stream them together, loading them as I approach each chunk of the world).

    To clarify -- what would it take with your system to:

    - autopaint corners, walls, and end-caps on a single-layer of a terrace?
    - pool tile objects or activate/display only the tiles visible to the camera?

    Also, can you replace tiles you've already painted by painting over them again? (see the dirt area in the image above). It would help to be able to toggle between adding OR replacing when you brush over an already painted terraced area, possibly by holding SHIFT or something.
     
  37. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @awesomedata

    Hi there,

    Welcome to the Octave3D forum!

    First of all, I would appreciate if this forum would be used to discuss Octave3D only. Secondly the "much" lower-cost tool you are mentioning is quite specialized and if you take a look at the presentation videos you will see that the 2 systems have been pretty much been built for different purposes. I believe there is a whole lot that Octave3D can do to justify its 50$ price tag.

    There is something called Tile Connections in Octave3D, but they are not as flexible as the tile painting system. Integrating this kind of functionality is going to be quite tricky so it won't happen overnight. In any case if I were to start working on this, I would need somebody to test. Would you be willing to sign up for this?

    EDIT: I read you post again and I realized that I missed the pooling system the first time around. I do not at the moment have a clear answer for that. I will have to look into it. So from what I understand you would like to activate/deactivate tiles based on camera visibility? Is this correct?

    Best Regards,
    Andrew
     
    Last edited: Dec 1, 2016
  38. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Yeah 3D tilemaps doesn't need to necessarily be a part of a prefab painter. I just purchased Octave and it's good though a little unstable and sometimes awkward to use. My vote would be to focus on making the prefab painting experience smoother and not additional features.

    I've played with 3D tilemaps in the past and it is difficult to construct a tileset that doesn't introduce art fatigue very quickly from how repetitive it is. If your goal is to make an oldschool rts or something it seems a better idea to crank out maps with a tileset tool and then dress them with a prefab painter.

    Not sure why a pooling solution would matter since you are painting prefabs in the editor and can't dynamically load them. You can just mark them static and let the engine occlude them during gameplay. Unity already does frustum culling so I wonder if those people who developed their own solutions for culling non-visible meshes have even tested if its a performance improvement.

    More relevant would be a form of nested prefab so you could save your painted levels as something besides a scene. I threw together a ScriptableObject that saves all the instantiated prefab children of the Octave object and their positions/scale but you might be able to improve on it and include it in the asset. Obviously this won't compile since its full of crap from my project but if its helpful you could look at it: http://pastebin.com/eXQTNw23

    This actually allowed me to load painted prefab levels at runtime without saving them to a scene. Rather than bother with pooling I found it was faster to just instantiate them every time and create a combined mesh.
     
    XGT08 likes this.
  39. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Fuzzy_Slippers

    Hi there Fuzzy_Slippers,

    Thanks for dropping by!
    You said something about instability issues and the tool being sometimes awkward to use. I would like to improve those things, but I would have to know more. Do you think you can give me more details?
     
  40. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    @XGT08

    Sorry this is so long, but it's all relevant:


    I would totally be willing to sign up to help you develop this feature! Just shoot me a PM and anything you need, you've got it.


    Yes, but with manual entry of tile types that might need more or less instances in memory than the general pool settings. I've got some ideas for this pooling design to help make it more flexible for practical use in larger open worlds (which is a current limitation of ALL tile systems available on the asset store so far).



    A tool's intended purpose ultimately doesn't matter if its users want/try to use it for a different purpose. I, like many others considering your tool, am after an all-round flexible level-editing tool to do everything it can to help me make efficient, tile-based / modular levels super-fast, and with as little technical effort as possible -- we want it to flow as easily as painting! -- which, as far as I'm concerned, is what I hope your system will eventually do. It handles standard 3d modular assets brilliantly otherwise already, it's just that 3d tiles (also modular 3d assets) need just a little more love.

    The other tool mentioned is actually too specialized. That is exactly why I'm looking at your tool now. Unlike yours (in its current state), it not only offers fast tile-based-painting for levels, it offers object/prefab placement too (the same as your system), and I can make it do what I need it to (with a few workarounds and pooling system integration), but because its author ignores/overlooks efficiency as an end-goal for the user, and because it uses a heavily rule-based approach for its autopaint-tiles feature, it adds complexity (and user-burden) while also losing both the efficiency and the flexibility your system has of putting tiles anywhere -- especially when it comes to building vertical wall-structures (see how there's no 2-or-more-story wall structures anywhere in the previous screenie?)

    Your system is a much better approach all-around, and I'd prefer to have a flexible, efficient, shortcut-oriented tool like yours to be able to 'block-in' volumes of terrain or 'draw-on' each part of a (non-terrain-or-voxel-based) level's terrace volumes & surface-structures (something like what you do in your video using the invisible blocks to place cartoony block assets -- but with hollow terrace-type structure volumes instead.)

    For how to go about doing this, in my mind, a simple tile-brush system could be combined with your painting system and your volumetric cube-based approach to placing tiles over existing ones, making this a relative breeze to implement, as all tiles can assume to be cubed volumes, with top, middle, and (optional) bottom walls and caps to each (exposed) surface, and depending on the 'brush' used, that 'brush' could manually replace tiles later with its variations. Any existing nearby or overlapping tiles to a new volume (assuming they are made of the same prefabs the brush currently 'painting' the new cube-volume consists of) could be replaced where needed after a new cube-volume is drawn or painted that is touching or overlapping any existing cube volumes. In the end, you'd still have simple gameobject prefab tiles, editable like every other tile. The only real difference is how they're placed each time -- and how they (and other modular assets) are integrated into a pooling system.


    I'd be willing to draw you up a few image concepts to show everything in detail if necessary. I've got both simple and flexible ways in mind to implement these with your existing code/tools/workflow if you're interested. Just give me the word.
     
  41. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Off the top of my head I've had the tool sitting in a scene and start getting spammed null reference exception errors from the tool when doing something else even when not selecting the object. I poked around the code and it looked like you hook into the scene view in the editor but subsequently don't check for null on some of your singletons (I forget which one now unfortunately). Editor hooks can get a little screwy with the constant compilation while coding so I wouldn't assume everything is kosher and put more error handling.

    I'm on a pretty beefy machines (i7/16gigs/1070) but I ran into some severe slowdown using snapping tools. Poking around at it I think it's because some of my prefabs might be a little too complex and so it was struggling to sort through all the objects, but I'd do some more error handling there. Since you are already hooked into the editor for updates and click handling it is pretty easy to set up your own coroutine system so one solution would be to delay any heavy calculations over several frames to not lock up the editor since Unity doesn't handle threading gameobjects. You could also have some user definable limits to whatever sorting or raycasting it is doing.
     
  42. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Fuzzy_Slippers
    Ok I understand. I will have to look into this. Regarding the slow down, maybe you were using the Object to Object snap functionality with the snap mode set to vertex because in that case it can indeed cause a slowdown because the tool has to actually work on the mesh vertex level. In any case, I will have to check these thing out and hopefully I can come up with a solution.

    @awesomedata
    "I'd be willing to draw you up a few image concepts to show everything in detail if necessary. I've got both simple and flexible ways in mind to implement these with your existing code/tools/workflow if you're interested. Just give me the word."
    That would be great! Thanks! I have already started working on it yesterday and I pretty much have the GUI set up, but more input and ideas would be great! So I will be waiting for your input.
     
  43. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    On the issue of tile based pieces, is there a way to constrain placement to the grid? I mean something like if I have a grid of size 5x 5z I would expect I would only be able to place pieces at 5,10,15,20, etc but none of the options seem to produce that. Ideally I would like the placement prefab to be even constrained similarly as if I was moving it around while holding CTRL in normal Unity gameobject movement.

    This info might be in one of the videos but I hate video tutorials because I can't CTRL-F to find what is currently relevant. More written documentation is always nice.

    Also, I think it would be helpful to have a Vector3 'Grid Offset' for the center of the grid so you can change where subsequent grid centers end up.
     
    TeagansDad likes this.
  44. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Fuzzy_Slippers
    There is a chance that I probably misunderstood what you said, but you can already do that with the tool. Just activate the center pivot point by pressing J and press K to adjust the grid cell size to that of the object guide (or go to the object snap GUI and set the grid cell size from there). This should produce the desired result. Again, I may have misunderstood.

    EDIT: After you change the grid cell size to math the tile size, you don't necessarily have to activate the center pivot point. You can hold down Space to snap center to center. Or simply activate the following option in the snap settings GUI:
    SnapCtoC.png


    The original version of the tool which was called ObjectGrid3D had a documentation of 90 or more pages. It was divided in 2 parts: Features and GUI (if I remember correctly). Aside from the fact that some users hated reading the documentation, it was hard explaining in words and images things that I can simply show in the video. One user once complained that the documentation was too long. Some customers hate reading doc, others don't like videos, others hate both. :) I choose to go with videos for the simple fact that I find them a lot more instructive than plain text. Before I invest time in something, I have to decide whether it's worth it and for the moment I'm afraid that writing a doc is just not going to cut it :) Been there, done that, it was still not enough for customers. And I bet that if I had both (doc and videos) people would complain that they are confused and don't know where to look for info (videos too long, doc too long etc). For the moment, I will stick with videos. :)

    Ok. Can be done. :)
     
    Last edited: Dec 3, 2016
    Mark_01 and TeagansDad like this.
  45. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Nope those settings or keys don't do what I'm requesting. This has nothing to do with pivots.

    Here's a simple way to duplicate it: change the Unity editor Snap Setting Move X,Y,Z to a larger number like 5. Click Snap All Axes. Now generate a cube, switch to movement mode, and while holding CTRL move the cube around. Notice how you can't place it at any value that isn't a multiple of 5? You can't place it at 2.5 or 8.3. If I have pieces where are a uniform size rather than trying to snap their edges together it can be simpler to just place them locked to grid cells of the modular size.

    Capture.JPG
    With those settings I can't seem to constrain any movement. I can place objects at any position and it does not enforce any kind of snapping. In this particular case I want to quickly snap together 15m square pieces and want to only move them in half steps (hence 7.5). This kind kills using this tool for modular pieces for me.

    If you use Pro Tools this is the functionality of Pro Grids which is fairly simple. There you just set a grid size, click a snap axis, and without needing to hit CTRL it enforces.
     
  46. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    @Fuzzy_Slippers
    This worries me a bit. I understand that it does not do what you desire, but it should snap to grid. If it doesn't, it is a bug which I can not reproduce.

    I think I understand now what kind of behavior is required. So the way I see it is that there can be 2 fields (for X and Z) which allow you to specify the move constraint. So for a value of 2 on the X axis means that objects can be placed at 0, 2, 4, 6, 8 etc (multiples of 2) on the X axis and so on for the Z axis. Is this correct?
     
  47. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    One more thing. Because objects are supposed to sit on the grid, the tool will place the bottom of the objects at these intervals and not the actual object positions (unless Use original pivot was checked). So the behaviour will be slightly different than the one which can be achieved using the Unity Move Gizmo.

    May I ask why you need this? Doesn't object to object snapping work well in this case? As I understand you want to place the pieces next to each other? Object to object snapping should do here.
     
  48. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Yep that move constraint behavior is what I'm looking for. Using the bottom of the object is good.

    I've found the object to object snapping works well for simpler prefabs (walls, floor, deco) but I have prefabs that are one mesh but represent a more complex shape (like a pre-built hallway) and those haven't been snapping straight on. They tend to wiggle too much and instead of snapping edge to edge where I'd like on the bottom tend to snap along any edge on the prefabs already in the scene. I also do not want them to rotate on anything but Y axis but the utility rotates them around quite wildly trying to snap them on any edge.

    Trying to get them to snap is far more tedious that way than just dragging them into the scene and using standard Unity controls which isn't a great workflow either.

    I'll try it in an empty project tomorrow to see if it works more as expected there in case I have another editor tool interfering.
     
  49. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,906
    Indeed for quite irregular shapes, it might not produce the desired results. Although in that case you can switch from Box to Vertex and it might help. Note: Vertex mode can become slow in certain situations because the tool si actually working at the mesh level.

    The object to object snapping functionality SHOULD NOT affect the rotation in any way. If your objects are being rotated, something is definitely wrong and having played with this functionality before I am pretty sure it works correctly. There is nowhere in the snapping code that the rotation is affected. Only position.

    Can you please try it with an empty project and see if it works? If it turns out that it does, I would avoid implementing the move constraints simply because I would want to avoid adding even more controls in the snap settings GUI. If not, of course I will implement it.
     
  50. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    I'm seeing the same behavior in an empty project.
    nogrid.JPG
    If I set a grid cell to a certain size and snap to center is highlighted why can I place objects absolutely anywhere even with snap to center selected? Isn't it supposed to be place objects in grid centers? You can see those objects are everywhere. This is Unity 5.4.3f1.

    Not sure what you mean about rotation. When snapping it rotates the new object to try to fit to the old one. This is in vertex
    snap.JPG

    or box snapping
    box.JPG

    Yeah looking at the Object Snapping video mine definitely does not do what it does in the video even with the same settings. I'm running the newest version of Octave from the store. It seems kinda like snap to cursor hit point is on no matter what I select.

    More Edits: I had some standard assets in that project and removing them and using just plain Unity cubes everything is working correctly again. I'm going to start adding files till I hit the problem.
     
    Last edited: Dec 3, 2016