Search Unity

Assets RockStudio 3 - Procedural Rock Generator

Discussion in 'Works In Progress' started by alexanderameye, Feb 4, 2019.

  1. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939

    I am here to present the re-release of my asset RockStudio. I decided to make a new thread for this update
    since the code-base was entirely rewritten from the ground up and the asset is in many ways 'new'. This update has been a long time coming and I hope you like it. There are no new big features compared to older versions, but now that the code is no longer one big mess, it will be easier to add features in the future and I do have things planned.

    I'm planning on publishing this update in a few days hopefully. There will be no price increase, this is a free update. You can visit the current store page here. https://assetstore.unity.com/packages/tools/modeling/rockstudio-low-poly-rock-generator-87718

    What is RockStudio?
    RockStudio is a procedural rock generation tool. It can generate low poly rocks and crystals for you in any shape imagineable. The generated rocks are automatically UV-mapped so you can put any material on them that you want.

    Why would I need RockStudio?
    You can use RockStudio to rapidly create good-looking rock geometry. You can use it to create more interesting white-boxing levels but you can also use it in any low-poly or stylized game. Below you will find some images of beautiful scenes created with RockStudio.


    - scene made with RockStudio and Low Poly Water GPU -


    Rock Generation Workflow
    Rock generation starts with one of the 4 base types. These are cubic, boulder, crystal or custom. You get several generation settings to play with to allow you to create as much rock types as possible. For example you can choose the rock dimensions, shape, resolution, materials,... When placing a rock in your scene, you have use a handy placing gizmo. You can see this placement tool in the 'UX' section below. It's as easy as point-and-click.


    - rocks with high, medium and low resolution respectively -


    Here is a video that shows the workflow in RockStudio 3.



    Crystals
    In RockStudio you can create several crystal types based on the default 'crystal' type. I've made sure that you can create several crystals based on lattice systems such as octahedral, hexagonal, tetragonal etc.


    - several crystals made with RockStudio -
    Materials
    All the rocks are automatically UV-mapped. You can add whatever materials you want to them. The tool includes a 'material palette' tool which allows you to create a palette of 4 materials, and when placing rocks the tool will randomly pick one of those 4 materials and assign it to the rocks. That way you can achieve some nice variation.


    - the material palette in action -


    Saving and Exporting
    You can save the generated rocks in your scene or as an asset in your project folder. You get several useful options with this to add rigidbodies or colliders automatically and you also have the option to combine several rocks into one mesh.

    Mesh Combiner

    RockStudio comes with several extra tools that aim to improve your workflow. This includes a mesh combiner that will preserve the multiple materials of your rocks.


    - from left to right: mesh collider not combined, box collider not combined, mesh collider combined and box collider combined -
    Sculpting Mode
    The tool comes with a sculpting mode. In this mode, you drag handles to create a shape that you'd like. Then you can generate a rock that will have that shape.


    - a rock structure generated with the sculpting tool -
    UX
    I've done a lot of work on making this tool as easy as possible to use and have spent a lot of time on polishing it as much as possible. The UI is clean but still provides all the information that you need.


    - the main UI of RockStudio -
    Prefab Painter
    In previous versions of this tool, there was a prefab painter included. I've made this prefab painter open source a while ago, and that's why I've decided to not include it in this version. I wanted the tool to focus on the rock generation itself. If you want to use this prefab painter you can get it here on github. https://github.com/AlexanderAmeye/prefab-painter

    Documentation and Roadmap
    I'm working on an online documentation that will be done soon (before the release). I will also share a roadmap so you can see what features to expect.

    If you have questions or comments, please do let me know below.
     
    Last edited: Feb 9, 2019
    xenonmiii likes this.
  2. xenonmiii

    xenonmiii

    Joined:
    Aug 2, 2010
    Posts:
    147
    This looks like a great tool, however I think a video of the tool in action (especially on the asset store) would be very helpful from a marketing point of view.
     
  3. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Will post a video when it gets published, good idea!
     
    xenonmiii likes this.
  4. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Here is a video example of the workflow in RockStudio 3.

     
    xenonmiii likes this.
  5. xenonmiii

    xenonmiii

    Joined:
    Aug 2, 2010
    Posts:
    147
    Nice. It would be helpful for the viewers to also see some titles explaining briefly what you're doing in each section of the flow. E.g. Assigning Materials, Creating random stones, Exporting, etc. (I'm sure you can come with better titles than me :) )
     
  6. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Yep! I will edit a video that's kind of a 'tutorial', this was just a quick screengrab to show you how simple the workflow is.
     
    xenonmiii likes this.
  7. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Another video showing some level design. A tutorial video will come but this is just a showcase of the tool. Hoping to push the update next weekend.

     
    Last edited: Feb 9, 2019
  8. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Hitch42 likes this.
  9. IndieGameHustle

    IndieGameHustle

    Joined:
    Jul 25, 2012
    Posts:
    61
    Awesome! I am heading over to the asset store to check it out.
     
  10. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Great to hear. If you need any assistance or have any questions do not hesitate to email me at alexanderameye@gmail.com.

    I'm hoping to get the documentation done soon.
     
    IndieGameHustle likes this.
  11. macish

    macish

    Joined:
    Oct 29, 2018
    Posts:
    33
    wheni import it i get this error Assets\Ameye\RockStudio\Scripts\RockStudio\Handle.cs(4,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'Handle'
     
  12. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Do you already have another script in your project called 'Handle'?
     
  13. macish

    macish

    Joined:
    Oct 29, 2018
    Posts:
    33
    Well apparently you are not alone in bad manners of choosing global names. I guess some other asset uses the same name. Maybe it would be safe in general to use something like "rockstudio3_handle" for your stuff to be more or less safe and not run into issues with using generic names like "handle" only ... when i find the other "handle" perpetrator ill inform that dev too... in the general world of 1001 asset packs from the unity store i assume some clearer name handling is needed to avoid such clashes.

    If u could fix it on your side to have exclusive names for all your scripts that would be great. I'll contact the other dev when i find him. :D
    thnx alex and keep up the great tool work!
     
  14. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    882
    This looks pretty sweet man, just grabbed this and am going to play around with it later. : D
     
  15. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    I will do exactly that! 'Handle' is too generic of a name and I will fix it. Will push an update later today.
     
    macish likes this.
  16. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Thank you for the support. I appreciate it! If you need any assistance, do let me know. You can always email me at alexanderameye@gmail.com.
     
    MostHated likes this.
  17. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    882
    Is the asset itself not namespaced? If it is, it should not be an issue if something ends up having the same name.
     
  18. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    All the scripts were namespaced except the 2 handle scripts. Added a namespace to them. Update should be live soon and the issue should be fixed.
     
    MostHated likes this.
  19. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    @macish update was just approved. Let me know if you're still experiencing the issue!
     
    MostHated likes this.
  20. BradBitsbard

    BradBitsbard

    Joined:
    Jan 24, 2014
    Posts:
    56
    Hey there Amey, I am loving the asset, but I seem to be running into a problem; whenever I try and export one of the rocks (to somewhere inside my project) I get an empty mesh. If I try to export somewhere outside my project, ie the desktop, no file is even created.
     
  21. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Thank your for purchasing the asset, I appreciate a lot.

    I imported RockStudio into a new project and generated a rock.

    upload_2019-3-20_14-8-19.png

    I then loaded in the generated rock into the 'Object' slot and pressed 'Export'.

    upload_2019-3-20_14-9-7.png

    I get the rock in my project folder as it should. And I can place it in my scene and it shows up as expected.

    So I can't really seem to reproduce the issue... Do you get no exported object at all, or an object without a mesh? Does it say 'Mesh exported.' in the console window?

    Feel free to email me at alexanderameye@gmail.com for more assistance. Maybe some screenshots could be helpful too? Let's figure this out!

    Regards,

    Alex
     
  22. BradBitsbard

    BradBitsbard

    Joined:
    Jan 24, 2014
    Posts:
    56
    Hey there Amey, thank you for getting back to me.
    I tried using the asset in a fresh new project to make sure it wasn't just some arbitrary setting in my current project causing this. But the behaviour is still the same, sadly.

    I do get some warnings in the console.




    And the mesh exported log does indeed appear:


    The exported objects (inside my project) end up looking like this:

    The object does exist, but there's just no mesh.
    It seems this even happens if I try to drag a rock from the scene into the project explorer to make a prefab instead of an fbx.
     
    Last edited: Mar 21, 2019
  23. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939

    I can't seem to find much about the error online either. Could you let me know what version of Unity you are using?

    I am testing on 2018.3.1, could you let me know if you get the issue on that version as well?

    Also, does the rock have a standard shader on it, so not a shader for the new rendering pipelines?

    Regards,

    Alex
     
  24. ArtOfWarfare

    ArtOfWarfare

    Joined:
    Sep 28, 2013
    Posts:
    22
    Hello,

    I'm looking to dynamically create a field of meteors in my game. Can these generated rocks have craters in them, or are they strictly convex shapes? Also, can the rocks be generated on-the-fly at runtime? If so, could you share a quick code example for how that would be done?
     
  25. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Hello! I'm exploring some options to add mesh denting in the future but at the moment this is not supported.

    For the run time-generation, yes this should be possible however I advise you to not do this. It would be far better performance-wise to generate a certain amount of rocks (10 maybe), turn them into prefabs and then spawn them with varying position, rotation and scale. You would get the same effect of a meteor field without having a performance drop.
     
  26. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
  27. DiscoFever

    DiscoFever

    Joined:
    Nov 16, 2014
    Posts:
    285
    Is there an API ? Can i call it to generate myself ?
     
  28. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    939
    Yes you can! In the RockStudio namespace there is a 'CreateRock' method. It takes a list of vertices, a position, and some more parameters.

    upload_2019-12-5_1-9-38.png

    I hope this answers your question. I will be revisiting the asset in January for an update.

    Alex