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,905
    Hi there,

    No, you don't need to remove Octave before building. I my case it works fine. Do you thin you could supply a test project? Also please tell me what version of Unity you are using so I can test with the same version.

    Thanks,
    Andrew
     
  2. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    The version of Unity I use is 5.6.2f1 and here's the test project with a build.
    https://drive.google.com/file/d/0B-gdFDCOiejxUU9aM0tNT3E2aTA/view?usp=sharing
     
  3. XGT08

    XGT08

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

    Thanks a lot for supplying the test project. That will be very helpful. I have downloaded it and now I will start identifying the problem and work on a solution. I will let you know when it's ready.

    Thanks,
    Andrew
     
  4. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @Char222

    Hi there Char222,

    Look, I know you are probably going to hate me for saying this, but for now there doesn't seem to be anything I can do to eliminate this issue. I don't know if you're a programmer or not, but I will try to explain what the problem is and why I can not solve it for the time being at least.

    Because Octave is a Unity Editor extension only, I have instructed Unity to ignore the script content in all project files when switching to a development build. I've done this using #if UNITY_EDITOR guards. This basicly means that when you perform a build, none of the data should make it in the build because the script compiler will detect the UNITY_EDITOR check and any code marked as such should not make it in the build. What seems to happen in this case though is that Unity still attempts to compile the script content even if I explicitly told it not to. WHICH IS NOT SUPPOSED TO HAPPEN BY THE WAY. At least not to my understanding.

    What complicates things further is that it still seems like Unity is trying to satisfy my request partially by not compiling some of the data which I marked for serialization. So when the scripts are compiled for the build, Unity will detect that inside the Editor, these scripts had a different memory layout, but during runtime the layout is different because some variables/data were pushed out because of the UNITY_EDITOR check. It's really just an assumtion from my side, but in my opinion, none of this should happen.

    I know you are probably not interested in hearing all this mumbo-jumbo :), but I really do not know what to do. I could eliminate the UNITY_EDITOR checks and that might solve the issue, but I totally refuse to do that since that will add a lot of overhead at build time. It 's not even entirely possible since some scripts actually require this guard. OR I could instruct Unity to stop serializing the data inside the Editor which basicly means you will loose all data every now and then (between Unity session, on script recompile or any time Unity decides to unload and load data inside the editor like reimporting assets for example). None of these 2 solutions are feasible to me.

    I did some searching on the Internet and there are quite a few people who encountered this issue in one shape or another. And from my understanding this is actually submitted as a bug report to Unity back when Unity 4.6 was a thing.

    Some info can be found:
    1: http://answers.unity3d.com/questions/1288797/a-script-behaviour-has-a-different-serialization-l.html
    2: https://forum.unity3d.com/threads/a...ent-serialization-layout-when-loading.209650/
    3: https://www.reddit.com/r/Unity3D/comments/5jkymu/a_script_behaviour_has_a_different_serialization/

    I also found numerous topics on this subject when I tried to create my own thread about this issue. However, I didn't manage to extract a solution out of this.

    So I really hate myself for saying this, but I think the only way this is going to work for now, is if you can delete the Octave3D script from the game object. Save all configs before you do so, remove the script and then attach again and load configs. Annoying as all living hell. I know, but I honestly do not know what else I can say.

    There was one thing that attracted my attention though and it seemed to fix the issue, but only temporarily. So what I did was:
    1. duplicate the test scene that you gave me (CTRL + D);
    2. load this scene;
    3. open up the build settings;
    4. make sure you add the scene in the build list;
    5. build;
    6. it worked;

    Then I rebuilt again and it no longer worked. Maybe if you give this a try it might work for you.

    I am really sorry for not being able to help you out even further, but I promise that I will keep an eye out for any possible solution that might arise and the moment I find something, it's going to be done.

    Thanks,
    Andrew
     
  5. Char222

    Char222

    Joined:
    Nov 5, 2015
    Posts:
    10
    @XGT08
    No problem at all. I have done placing my models so I removed Octave3D script from scene.
     
  6. XGT08

    XGT08

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

    Thank you very much for understanding :)
     
  7. LunaTrap

    LunaTrap

    Joined:
    Apr 10, 2015
    Posts:
    120
  8. XGT08

    XGT08

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

    I am glad to hear you are finding the package useful :)

    I watched the video, but unfortunately I don't think there is anything that I can do about that since the problem seems to be related to MeshBaker. I do not by any means mean to throw any blame here :) but it did seem like you used MeshBaker to bake the meshes. The object placement was indeed performed using Octave, but that should have no impact whatsoever on the final result.

    In any case, I have looked at the baking result and I also saw that you are using lightmapping. My take on this is that there must be an option somewhere in MeshBaker which allows you to specify if Lightmap UVs should be generated. When using lightmapping, Unity requires the mesh vertices to have an additional UV channel which can be used for lightmapping. So I imagine there must be an option somewhere which allows you to specify that. Octave also has its own mesh combining system (most likely not as advanced as the one in MeshBaker), but what I want to say is that I also have an option like that which is shown in the following image:

    Lightmapping.png

    I am sorry that I can not be of any further help here, but please do let me know if this info helped to some extent.

    Cheers,
    Andrew
     
    Mark_01 likes this.
  9. LunaTrap

    LunaTrap

    Joined:
    Apr 10, 2015
    Posts:
    120
    Got it! I know this is not Mesh Baker forum, but I will post the solution in case anyone else using both assets have this problem:

    https://forum.unity3d.com/threads/mesh-baker-by-digital-opus-released.159258/page-35#post-3143418

    Loving your asset! 11/10
    Thanks a lot for the support!
     
    XGT08 and Mark_01 like this.
  10. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Sure thing. Absolutely no problem.

    I am always glad to hear when people are putting the tool to good use. Glad I could help :)

    Cheers,
    Andrew
     
  11. Pecek

    Pecek

    Joined:
    May 27, 2013
    Posts:
    187
    This is a fantastic tool, I've been using for a few days now and I'm completely in love with it.
    One thing I couldn't figure out tho, am I doing something wrong or the position offset values doesn't do anything in decor paint\brush mode?
     
    XGT08 likes this.
  12. XGT08

    XGT08

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

    Thanks for the feedback! I am glad to hear like Octave! :)

    If you are reffering to the surface offsets which can be associated with prefabs inside the prefab management window, then indeed, those values do not apply in brush decor paint mode. To be honest I do not have a solid reason for that except for the fact that this mode is a bit more special in terms of the way in which it is implemented and I would just prefer to leave things as simple as possible in this case :)

    If you do need these offsets however, I could check to see if I can implement a custom solution, but that would not go in an official update.

    Cheers,
    Andrew
     
  13. Pecek

    Pecek

    Joined:
    May 27, 2013
    Posts:
    187
    @XGT08
    Wow, that's dedicaton! :) Well, the thing is I'm trying to dress up a terrain with rocks, plants and the likes, for modular pieces it wouldn't be an issue but all of my objects are completely organic so an offset is pretty much mandatory here(or I would have floating(alright, not floating but floating looking) stuff everywhere). Is it possible to use the pivot position instead of the bottom of the bounding volume? That would help as well.
    I would appreciate the custom script, but I got your asset for free(essentials pack), it feels wrong to ask you to even customize it for me haha.
     
    XGT08 likes this.
  14. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi @Pecek

    It's not everyday that I encounter a customer who thinks about the developer's well being. I honestly appreciate that :) However, whether you got it for free or not, you are still a customer and I still need to offer support :) So absolutely no worries. I knew what I was getting myself into when I accepted my package to be included in the essentials pack :D

    Here's what we'll do. I would like to ask you to first check if the following solution works for you:
    EmbedInSurface.png

    For rocks and trees, you might get away with not having to perform surface alignment, so you could uncheck the Align to surface toggle and then make sure that Embed in surface (no align) is checked. This will push the geometry downwards until it becomes embedded in the terrain. Note: This works well for trees which are already aligned with the Y axis and also works for rocks, but it might not work for certain models which have very irregular shapes. It all has to do with the tool trying to decide how much should be embedded. It's a long story here.

    Note: This will only work if your prefabs are already aligned to one of the axes in their model pose. So for example, trees should already be aligned with the Y axis.

    So do you think you could try this out with your models and let me know if it works? If it doesn't work, give me a buzz and I will start working on the offset ASAP. In fact, I might end up implementing it anyway :)

    Thanks for contacting me!
    Andrew
     
    Mark_01 and Pecek like this.
  15. Pecek

    Pecek

    Joined:
    May 27, 2013
    Posts:
    187
    @XGT08
    Thanks for the workaround, it works better now but sadly it "fails" way too many times, most of the time it looks something like this(I placed the one on the right manually with the offset applied, the left one was placed using the brush mode - must be one of those irregular shapes you mentioned).

    Also to be honest I really like the align to surface feature, I want to use it! :D
     
  16. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi @Pecek

    Ok. Thanks for letting me know. I will let you know when it's ready. :)

    Cheers,
    Andrew
     
  17. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Hi @Pecek

    I sent you a PM with the updated package :)
     
    Mark_01 likes this.
  18. DragonTTK

    DragonTTK

    Joined:
    Jun 1, 2016
    Posts:
    29
    Hi i had a issue with grid system and terrain placement / snapping to objects im wanting to snap wall to wall like you did in your tutorial but it doesn't seem to work, i was wondering if its due to my grid being below my terrain possibly here is a gif showing what i mean.

    https://i.gyazo.com/5ccc6e9395aaa05b42b8bf05e9b95df7.mp4
     
  19. Endi24

    Endi24

    Joined:
    May 6, 2015
    Posts:
    50
    I cant seem to have the same options that you have in your videos, regarding prefab categories. I cant delete them, as I don't have the option to. Can you please help me?
     
  20. XGT08

    XGT08

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

    Thanks for contacting me.

    @DragonTTK
    I am having a bit of trouble understanding the issue. Do you think you could provide a different recording or explanation? If you are trying to snap objects to objects, you have to be in point and click mode. Point and click does not allow you to place objects on terrains. So you will have to move the grid up to the terrain surface (hold T + left click on terrain).

    @Endi24
    There have been a few changed in that area since then. Sorry about that :) What you need to do is to right click somewhere inside the prefab management window and then you will be shown a context menu which contains the options that you need.

    Cheers,
    Andrew
     
  21. DragonTTK

    DragonTTK

    Joined:
    Jun 1, 2016
    Posts:
    29
    Ok i see just wondering how would i move the grid up as i cant manually move its position values and if doing hold T + left click terrain moves it, that doesn't seem to work for me.

    Nvm was able to move it with XYZ setting on script
     
  22. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    I don't want to be mean or anything but I honestly can not understand what you are trying to explain to me. I just don't :)
    Can you please clearly specify the following info: what are you trying to achieve?

    Thanks,
    Andrew
     
  23. ACarrozzini

    ACarrozzini

    Joined:
    Mar 24, 2013
    Posts:
    16
    Hi XGT08 !

    First of all thank you for your tool ! I really like it.

    I encounter the same issue. Is this feature planned for the next update ?

    Thanks for your answer and enjoy your week !

    Antonio.
     
  24. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    @tbgd

    Hi Antonio,

    Thanks for contacting me. Glad to hear you are enjoying Octave!
    I have sent you a PM with a link to the updated package.

    Let me know if it helps.

    All the best,
    Andrew
     
  25. Endi24

    Endi24

    Joined:
    May 6, 2015
    Posts:
    50
    Thanks pal:)
     
  26. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    No problem :)
     
  27. ACarrozzini

    ACarrozzini

    Joined:
    Mar 24, 2013
    Posts:
    16
    Hello,

    Thank you for the package. I tried a little bit (got no much time), and that's looking better.

    However, I'm still struggling with some slopes. I'll send you a PM in the following days with an example, it can maybe help.

    Anyway, the update is far better ! Thank you a lot !

    Cheers.

    Antonio.
     
  28. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Ok Antonio. Sure thing :)
     
  29. arachnidLeo

    arachnidLeo

    Joined:
    Nov 22, 2012
    Posts:
    14
    Hello!

    I just picked up this package, but I've run into a problem. Our levels are designed as an aggregate of multiple scenes:


    It seems that Octave only works with one manager per scene. I want to have the settings accessible across all scenes, so I don't have to create all the brushes and brush elements each time I set a new scene active. Is there a way to do this?
     
  30. XGT08

    XGT08

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

    Thanks for contacting me!

    Having the same instance accessible in more than one scene is not possible. However, you can save the prefab configs (cateogries, tags etc) to a file and the load the config in other Octave instances in other scenes.That's the closest it can get to the result you desire.

    Here is an image with the 2 buttons which allow you to save/load prefab configs. These buttons reside inside the prefab management window:

    PrefabConfigBtns.png

    Hope this helps.

    Cheers,
    Andrew
     
  31. arachnidLeo

    arachnidLeo

    Joined:
    Nov 22, 2012
    Posts:
    14
    That's exactly what I needed. :) I might tweak the inspector a bit to just have a toggle for 'automatically load config.' I'm switching over from nTools' Prefab Painter, and one thing I really like in that was having the library of my brushes in one place.

    Another issue I'm having is that when the octave3D object is being inspected, my editor runs very slowly. Granted, my scenes are very heavily populated. Do you have any performance tips for me?
     
  32. XGT08

    XGT08

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

    There quite a lot of stuff that Octave3D does behind the scenes which can cause a performance penalty. For one thing, if you have many prefabs and prefab categories, Unity has to serialize all that data. As far as I can tell, it serializes it continuously and aside from that it also has to serialize basicly every option/setting that you can modify in the Inspector and Editor Windows.

    More than that, regarding the objects in the scene, Octave uses its own raycast/object interaction system to allow you to interact with objects without having to attach colliders to them. This has quite a long story behind it. Suffice to say that initially, the tool was automatically attaching box colliders to all objects in the scene to allow you to interact with them properly, but this was quite limiting and not desirable for some customers. Eventually I ended up having to implement a small portion of Unity's Physics API to handle raycasts and overlap tests in an efficient manner and this system might add some overhead. Basicly there is a tree data structure with many nodes and there is one leaf node for each object in the scene and this tree structure also needs to be serialized by Unity.

    These are the only things that I can think of right now so I'm afraid I can not supply any real hints. Maybe if you could cut down the number of prefabs that you are using by filtering the ones that you know for sure you will never need? I realize this may not be possible since requirements/plans change.

    I wish I could give you any real hints here... Is there any additional info you could give me about the slowdown?
     
  33. kophax

    kophax

    Joined:
    Jul 19, 2014
    Posts:
    20
    Hello. I'm brand new to Octave3D and it seems pretty useful so far. In your video on mirroring (
    ) you are able to place new objects and have them mirrored immediately.

    For me this seems to be two different modes: first placing, then selection and mirror.

    My workflow right now is

    - A switch to placement
    - 2 make sure snapping
    - Place object
    - S switch to selection
    - Select object
    - M mirror selected objects

    I could do the same with 2 being 4 for block placement (a big floor).

    This isn't as intuitive as your example where you have "realtime mapping". Am I missing a shortcut somewhere? Is this a change in the new version?
     
  34. XGT08

    XGT08

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

    Thanks for contacting me!
    Octave3D supports 2 types of mirroring: placement and selection mirroring. It seems like you are using the latter.

    So in order to get the result you want, you have to be in placement mode and activate a mirror from there.
    Please take a look at this video in which I talk about mirroring.

    Cheers,
    Andrew
     
    Mark_01 likes this.
  35. Pulinpa

    Pulinpa

    Joined:
    Nov 16, 2016
    Posts:
    1
    Hello,

    I am using unity 2017.1 and I am consistently getting this error on import:

    error CS2001: Source file `Assets/Octave3D World Builder/Scripts/Objects/Object Placement/Path/Tile Connections/Tile Connection Configurations/ObjectPlacementPathTileConnectionConfigurationDatabase.cs' could not be found

    Is this a known version compatibility issue? I could easily switch back to Unity 5 for the time being.
     
  36. XGT08

    XGT08

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

    Octave works with no problems in Unity 2017. Usually when you get an error about missing files or such, the best way to deal with it is to delete the existing package and do a re-import.
     
    Mark_01 likes this.
  37. yangxiaofu

    yangxiaofu

    Joined:
    Oct 15, 2016
    Posts:
    1
    Hey, is anybody having the same issue I'm having where when you create an object in the scene, the instantiated object does not child into the game object that the 3D world builder is on? Is there a setting on there that I'm not seeing?
     
  38. XGT08

    XGT08

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

    This was the default behaviour in an earlier version of Octave3D, but things have changed since then :)
    Please have a look at this video here where I talk about object groups which allow you to attach objects as children to another parent.
     
    Mark_01 likes this.
  39. Ioncloud

    Ioncloud

    Joined:
    Mar 21, 2016
    Posts:
    3
    I'm attempting to use this tileset pack: https://www.assetstore.unity3d.com/en/#!/content/11645
    The main problem with it is that the walls have an elongated back which raises it up above the grid by a good deal. Is there any way to re-adjust where the "bottom" of the tile is? Setting the "offset from grid surface" to -8 lined the bottom with the grid, but the placement square is pretty far under the grid making exact placement difficult.

     

    Attached Files:

  40. XGT08

    XGT08

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

    Thanks for contacting me.

    It is a bit hard for me to figure out what the problem is from the supplied screenshot. However, I remember fixing a similar issue in the update which I have prepared for the near future (not currently available on the store). It is due to invisible geometry which was making the objects float in the air. Maybe it's the same issue you are having.

    Please send me an e-mail at octamodius@yahoo.com and I will send you the updated package.

    Cheers,
    Andrew
     
    Mark_01 likes this.
  41. F84Sean

    F84Sean

    Joined:
    Oct 27, 2017
    Posts:
    1
    Hello,

    I've run into an issue with Octave3D and baking the lights in my scene. Please see the attached screenshots.

    The object on the left is a regular cube that you can see the bake worked fine on. The object on the right is a mesh created using Octave3D and the mesh combine functionality that comes with the plugin. As you can see the issue is that the cubes used to create the object on the right are being combined but are creating shadows at the edge of each cube when the lights are baked. I checked the "Weld vertex positions" box when combining the meshes but still have the same results. Also have modified the weld epsilon value but that doesn't seem to change anything.

    Looking at the wireframe screenshot it seems that all the cubes that were combined to make 1 mesh are still there. Is there anyway for Octave3D to turn the many cube mesh into a single cube mesh?

    Thanks for any help in advance!
     

    Attached Files:

  42. XGT08

    XGT08

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

    Thanks for contacting me.

    Please check the Generate lightmap UVs toggle. That should fox the issue.
    The mesh combine process will never remove vertices from meshes so it is not possible to approximate a plane surface made of more smaller planes with a single 4 vertex plane mesh.

    Cheers,
    Andrew
     
  43. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    My spawned object does not go under the object group I create whatever I do. It always go under main root of hierarchy ( PreMade_005, PreMade_005 in my hierarchy ), those supposed go under "Test" object group.

    Screen Shot 2017-10-27 at 10.48.44.png
     
  44. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    This video explains how to use object groups. Please have a look at it.

    I believe in your case you haven't checked the Attach to active group toggle.
     
    MoribitoMT likes this.
  45. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    It work now, thank you :)

    I have been using your asset around 1 year now, very satisfied with it. I have one suggestion, I think you need better UI Design for the asset, button sizes, textures, icons, tree views in inspector feels all over the place, I sometimes feel very confused and forget it. If things were minimalized, simplified and categorised, this asset could win a Award from Unity in coming years.

    Regards.
     
    XGT08 likes this.
  46. XGT08

    XGT08

    Joined:
    Aug 1, 2013
    Posts:
    1,905
    Thanks :) I know the UI could do with some improvements, but it's a bit tricky to get it right. It will probably have to wait a bit because changing the UI would also mean to record another set of video tutorials which is something I do not wish to embark on right now :D
     
    Mark_01 and MoribitoMT like this.
  47. JMeer

    JMeer

    Joined:
    Mar 3, 2017
    Posts:
    29
    Heyhey,

    I have been using Octave 3D for a short while. And it is such an improvement, saving so much time. Things that used to take 2 weeks now take 4 days. I still need some more practice with the shortcuts (muscle memory). So there is a lot more time saving to achieve. It is such a blast to work with! Thank you.

    I would also love to use the custom offset for rock and trees for the sandy terrain i'm working on, That Pecek earlier requested.

    I'm working in Unity 2017.2.0f3 and somehow the highlight outlines you get when selecting Game objects in the scene don't appear when selecting objects placed with Octave 3D, outside Octave 3D. It is still somewhat a compfortzone of me, but i can work around it ofcourse. Is there a way to enable the Selection Outline for those objects?
     
    Mark_01 and XGT08 like this.
  48. JMeer

    JMeer

    Joined:
    Mar 3, 2017
    Posts:
    29
    I just found the Refresh Scene button hehe. ;) outlines are working just fine.
     
  49. XGT08

    XGT08

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

    Very glad to hear you are enjoying Octave3D!

    I no longer have the offset package available, so I might have to reimplement it. Unfortunately, I am currently recovering from a tricky fever produced by bad alimentation and I am not really able to do much right now. I hope to get back to you in a few days with a solution.

    Also, regarding the highlight, there should also be a button something like "Toggle highlight" which allows you to turn it on/off as needed.

    Sorry I can not provide a solution right away. I promise I will get back to you as soon as I can.

    Cheers,
    Andrew
     
    Mark_01 and JMeer like this.
  50. JMeer

    JMeer

    Joined:
    Mar 3, 2017
    Posts:
    29
    Thanks! I really appreciate it! But please take your own priorities first. I suggest going for priorities aimed at the larger public first ;). I'm already satisfied enough for the moment, and your well being comes first. ;)
     
    XGT08 likes this.