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. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Hey, that video is awesome. This feature will take some amount of work to redo prefabs on the go, but only once. That's cool, thank you for pointing that out, I don't want to overburden you with my case, this will suffice.
     
  2. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    If that will work for you it's great! :) It's absolutely no burden. If you find this approach to take a lot of time, then let me know and I will try to implement the last approach that you mentioned. So what I am thinking of is again a button :D which when pressed will take all prefabs in the active category, create a new set of prefabs each one being attached to a new parent and store them in a new category or something like that. That's probably the best I can do. So just let me know.
     
  3. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    I would very much like to have it. Mainly because I use a lot of assets from the store, and it is very common to have prefabs rotated.
     
  4. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Ok :) I will let you know when it's ready. It will most likely be ready tomorrow.
     
    shamsfk likes this.
  5. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    Been working through this problem with the profiler,etc .... Looks like the problem is caused by the garbage collector running amok.
     
  6. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
  7. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    That is incredibly useful info! Thanks a lot!

    I opened up the profiler myself, in my case I get 136 Bytes of memory (3 allocations per frame). I do not know exactly where this is coming from but I erased the callback and I still get the same results. I am also using around 10000 objects.
    Profiler.png

    But the info you gave me is VERY useful, I now know where to insist more. I just wish I could reproduce the same issue. In my case with this amount of objects I am still using the tool with no problems. Small lag of course, but it is still very much usable.

    I believe I might have an idea of what may be causing it, but I would like to ask you if you would have some time to test out the solution when it will be ready.

    Thanks,
    Andrew
     
  8. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    Sure... More than happy to test... It helps us both out ^_^

    Mine looks like this.... Might want to be sitting down before reading the numbers. :p

     
  9. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    :D That is pure insanity indeed. I will send you a package as soon as I implement the solution that I have in mind.

    Thanks!
     
  10. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @Ninlilizi
    I sent you a PM with a test package :)

    Thanks!
     
  11. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    @XGT08
    Hey once again) Is it possible to remove the constraint of randomized rotation not working well without aligning to normals? It's just that I found very tedious to rotate trees by hand after painting them with the brush, like very tedious.
     
  12. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    @XGT08
    I'm experiencing a strange and odd behavior: when I'm in select mode, I select an object (a parf of a fence in a big scene) to tweak it's alignment properly, I'm pressing E to rotate and it works ok, and when I press W to move, my editor camera move FAAAR away from the object, like if it tries to fit the whole level.
    It happens not every time, so I can't still figure out the reason. But now and then it does.
     
    Last edited: Apr 28, 2017
  13. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    The W key only activates the move gizmo. It doesn't affect the camera in any way. You probably accidentally pressed the F key which focuses the camera. Depending on how many objects were selected and how big they were, the camera was focused 'away' from them.
     
  14. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    I'm afraid I don't understand :) Can you give me an example or a screenshot and more details?
     
  15. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Look a the video please: https://drive.google.com/open?id=0B3yeBboXyl8ASGVNM0lmczVLU2M

    When placing objects on terrain with Brush to place trees it is required to uncheck Align to surface property to keep them vertical. But random rotation doesn't work correctly in that case (it still rotates around terrain's normal, but should rotate around world's up vector)
    So afterward I need to manually rotate every single tree wich is very tedious.
    Can it be fixed?
     
  16. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @shamsfk
    Wow :D Ok. I can see it. I could clearly see that pressing W will move the camera away. This is funny to me since the W key should have nothing to do with that. :) I will look into it.

    Regarding the second issue, you need to change the randomization axis to the Y axis as shown in the image below:
    RotRandomization.png

    So by default it is set to Surface Normal, but in your case from what I understand it must be set to Y. Let me know if this works.
     
  17. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @shamsfk
    Unfortunately I haven't been able to implement the feature you requested. I am currently caught up with trying to solve an optimization issue within Octave3D which seems to happen to 2 of my customers. It's a bit urgent and I would like to take care of that first. I thought I could solve the issue faster, but it seems it's just a bit tricky. I will let you know when I start working on it and then I can make a more precise approximation. Thanks!
     
  18. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @shamsfk
    I am pressing the W key and I can't get that behaviour to happen :). Can you give me your Unity version please?

    EDIT: Quick question. Have you made any changes to the default Unity hotkeys. For example, if you press the right mouse button and then W does it allow you to move the camera forward?
     
  19. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Did no changes. Yes I can move that way.

    Unity is 5.5.3f1. I don't always get it, sometimes it just begins to happen and happen and happen and happen, but then it stops and I can't find a reason(

    No problem, that is not urgent.

    Thank you!
     
  20. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Hi! I keep getting an error all day long:

    Code (CSharp):
    1. ArgumentException: An element with the same key already exists in the dictionary.
    2. System.Collections.Generic.Dictionary`2[UnityEngine.GameObject,O3DWB.SphereTreeNode`1[UnityEngine.GameObject]].Add (UnityEngine.GameObject key, O3DWB.SphereTreeNode`1 value) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:404)
    3. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:607)
    4. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    5. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    6. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    7. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    8. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    9. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    10. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    11. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    12. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    13. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    14. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionaryRecurse (O3DWB.SphereTreeNode`1 parentNode, System.Collections.Generic.Dictionary`2 dictionary) (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:611)
    15. O3DWB.SphereTree`1[UnityEngine.GameObject].GetDataToTerminalNodeDictionary () (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/SphereTree.cs:285)
    16. O3DWB.GameObjectSphereTree.OnAfterDeserialize () (at Assets/Assets to Keep/Octave3D World Builder/Scripts/Interaction/Spatial Partitioning/Bounding Volume Hierarchies/Sphere Tree/Game Object Tree/GameObjectSphereTree.cs:96)
     
  21. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Oh... OK :) I will look into it. I think somebody else reported this before. Until I find a fix, please press the Refresh scene button right below the main toolbar. That should fix it.
     
  22. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Thank you!)
     
  23. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    I have a CPU trouble using octave.
    When I just open a scene it works pretty much ok. But after awhile (just sitting open) it starts to degrade greatly. Please look at profiler:
    https://drive.google.com/open?id=0B3yeBboXyl8AYVdjRV84SUdHZXc
    I have ALOT of Octave prefabs.
    We currently deleted Octave from the scene and project to be able to work normally.
     
    Last edited: May 3, 2017
  24. XGT08

    XGT08

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

    EDIT: Issue was solved.
     
    Last edited: May 3, 2017
  25. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi everyone!

    Just a quick note to let you know that for the moment I will not be able to work at full capacity since I am currently searching to purchase an apartment and there's just not enough time for me check out all the options available, talk to people and also provide support at the same time for all my packages. I will do my best to respond to everybody's inquiries as fast I can, but there might be delays in my responses.

    Lately there have been 3 complaints about Octave3D performance. At the moment I do not have an immediate fix for that as I can not find the real source of the problem. Having lots of objects in the scene and lots of prefabs in the categories will certainly add overhead no matter what I do since there's a lot of data which needs to be serialized. However, it seems that for some of you, the performance degrades so drastic that you can no longer use the plugin.

    One customer told me he managed to fix this by disabling and then enabling the Octave3D script. If that doesn't work please try the same thing with the actual game object to which the script is attached. Also, I can sen you a package that seems to remove some of the overhead involved so that should make things even better. Just PM or send e-mail and I'll try to respond as soon as possible.

    Thanks for your understanding!
    Andrew
     
    Mark_01 likes this.
  26. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Not worked, please see a shot, disabling object dont help too:
    https://drive.google.com/open?id=0B3yeBboXyl8AR3o0dkNpVm5YaE0
     
  27. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Wow.... I deleted all the objects but CPU load stayed high.. But the moment I delete Octave asset it drops to normal. Just wow.
     
  28. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    That looks different to the problem I encountered. Could you hit the 'Deep Profile' button and expand the Bheavior updater and relevant items under there to give better idea where the problem could be.
     
  29. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    EDIT: Issue was solved.
     
    Last edited: May 3, 2017
  30. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    The moment I import Octave again it happens again.
     
  31. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Yes it seems different than the issue you had. In your case it was the hierarchy callback thing. In his case it's a scriptable object related issue.
     
  32. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Unity crashes at me when I try to deep profile it with Octave imported. Unity 5.5.3f1.
     
  33. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    I've had some crashing issues with 5.5.3 .... That seem less pernicious with 5.5.2 ... Could be an option for debugging
     
  34. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    Been a whole pile of stability regressions since 5.5.1 afaik.
     
  35. AGregori

    AGregori

    Joined:
    Dec 11, 2014
    Posts:
    527
    Until I find a fix, please press the Refresh scene button right below the main toolbar. That should fix it.

    I've also had the Octave slowdown problem since earlier versions, on all my projects. That button usually does fix it.
     
  36. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Ok. So I believe the performance issue has been fixed :)

    Screenshot with performance drop:
    PerformanceDrop.png

    And here is the screenshot with the fixed problem:
    PerformanceGain.png

    These tests were run with approx 10000 objects in the scene.
     
    Mark_01 and shamsfk like this.
  37. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Yeah I can confirm it is solved!)
     
    XGT08 likes this.
  38. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Does Octave support smart gizmo like functionality in select object mode?
     
  39. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Glad to hear it was solved! :)
    No, sorry, that is not supported. Octave uses the Decor Paint mode for that.
     
  40. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    Can I use smart gizmo in Octave edit mode then? It is really needed to edit in a quick manner, as edits are account for more than 2/3 of a job.
     
  41. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Unfortunately that is not possible. I can attempt to implement some of the SMG functionality in Octave, but it will take a few days.
     
  42. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    307
    That's perfectly fine. Let me say that I'm already amazed by the share speed of your reaction to bugs and requests.
     
    XGT08 likes this.
  43. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Thanks! I try to do my best :) It's also in my best interest to make my plugin as good as possible so any bug reports and suggestions are more than welcome.
     
    Mark_01 likes this.
  44. Metron

    Metron

    Joined:
    Aug 24, 2009
    Posts:
    1,137
    Hi,

    currently it seems only to be possible to combine all meshes that are children of an Octave3D object. I would suggest 2 options:

    1. Give the possibility to combine the children of a parent object.

    -> I like to keep the hierarchies clean. So I put similar, close objects as children of a parent. I'd like to combine them.

    2. Give the possibility to combine selected objects.

    Thanks for taking this into consideration :)
     
  45. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi Metron,

    I actually have been thinking of making these changes for quite a while now believe it or not :)
    I am currently busy with the next update, but after I release it, this will be the next thing I do.

    Thanks,
    Andrew
     
  46. Deleted User

    Deleted User

    Guest

    I am considering buying this but I need to know what is different (or better) compared to other assets like GeNa and ProGrids 2?
     
  47. Deleted User

    Deleted User

    Guest

    Since I couldn't find any support e-mail listed on the asset store and here I wrote you a PM.
     
  48. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    SupportEmail.png

    They're quite easy to miss :) I recommend clicking on Support Website which will open a new page on my website where the e-mail is shown. But in any case PM is actually really good. I am writing an answer for you right now.
     
    Deleted User likes this.
  49. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Deleted User likes this.
  50. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi there everyone,

    So Octave3D V 2.1 has been released on the store and I would like to quickly run you through some of the changes that have been made in this version:

    1. When using the brush, the brush elements are now displayed nicely inside a scroll area and modifying the parameters for a prefab element can be done by clicking on an element's preview. This saves a lot of space and makes things a lot easier because you no longer have to scroll 100 miles to find the element you are interested in. Here is an example image of what I mean:
    BrushElementScrollView.png

    There is also a button Load active category which allows you to load all the prefabs inside the active category inside the brush. This is an append operation meaning that it will not replace existing prefabs; it will only append to what already is there. The Look and feel button opens up a new window which allows you to control the way in which things are presented (preview scale, tint color etc).

    The brush can now be populated with prefabs in 3 ways:
    -drag and drop prefab;
    -use the Load active category button;
    -right click on a prefab preview inside the active category view.

    2. selection snap to grid. When you are working in object select mode, you can hold down the B key to select a snap pivot (from one of the selected object's boxes) and then hold the left mouse button to snap the selection to the grid. This is incredibly useful when for example, you have been using modular pieces to build an environment and you decide to make changes in a certain area (e.g. enlarge a room or corridor). Up to this point, this was a bit difficult to do since you had to probably delete the old objects, make changes and then place them again etc. Now you can just move them away, add what you need and then use grid snapping to snap the old objects where you want them. So I see this as a fine tuning/repair functionality but it could have other uses as well.

    3. selection grab. Again when working in object select mode. you can press the C key to activate something that is called Selection Grabbing. When this feature is active, you can move the mouse to adjust the position of the selected objects while also snapping them to the surface hovered by the mouse cursor. Axis alignment is also supported if needed. Again, this is useful for fine-tuning. For example, image you placed a couple of props on a terrain but you would like to adjust the positions of some of these objects. You can just go into selection mode, select the objects, press C to activate grabbing, move the mouse to move the objects around and then press C again when you finish to exit grab mode. The advantage of this is that it keeps the objects on the surface and aligning their axes if needed. Otherwise you would have to use the move and rotate gizmos to make the necessary adjustments which is not always as fast/productive as it should be. Here is an image with the grab settings window:

    Grab settings window.png

    There's a few other things that have been added, so make sure to check the version history file for more details. I just wanted to outline some of the things that I consider the most important for this update.

    Don't forget to drop a buzz if you have any questions. :)

    PS: Version 2.2 is already pending review on the store and I'll do a write-up for that too as soon as it's live.

    All the best,
    Andrew
     
    Mark_01, Deleted User, hoodoo and 3 others like this.