Search Unity

ARCHIMATIX PRO Node-based Parametric Modeling for Unity [Unity Awards Finalist]

Discussion in 'Assets and Asset Store' started by roryo, Jun 4, 2015.

  1. luis29vm

    luis29vm

    Joined:
    Oct 25, 2016
    Posts:
    164
    Hello I just purchase your asset , and is very nice, I have question, I make some basic mesh, I try to import and use in other project and I hit the button that say Prefab, then It create a prefab in the herarchy but then I save in my documents and went I try to open this prefab in other project just get and empty game object with the name of the prefab that I made, any short tutorial how to use all the prefabs that you made, be excellent, l Hope you can explain me this, Thank you
     
  2. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    To my knowledge (again, I'm the programmer, not the artist ;)), you just have to import your mesh and --if you want to use it--supply a pre-created colormap texture. So long as the mesh has already had its UVs mapped properly, all you have to do is import it into Quixel and you can start using it. It will allow you to paint on a per material basis, as well as using an optionally supplied colormap texture. Its just using the colormap texture to mask what part of the model gets painted onto by mapping the color in the texture to the appropriate UV positions.

    So if you had your properly UVed wall, then made a texture where the stone portion of your wall example was red and the brick white, then in Quixel you would import the model and the map, and you could use the map to mask out what portion gets drawn on.

    Sorry if I'm misunderstanding.

    Thanks for all the back and forth ... I'm getting excited about this :).
     
  3. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Making a Prefab lets you use that Prefab in any scene in your Project. To use it to another Project, its best to export the asset as a package rather than copying it via your Documents folder. To do this, choose Assets>ExportPackage and select your Prefab. In your new Project choose Assets>Import Custom Package.
     
  4. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    I think the easiest way to do this color mapping will be to let users assign a color based on the standard surfaces generated by the Mesher nodes. In other words, wherever AX has inputs for MaterialTools, there could be a color editor that lets you choose colors for that set of polygons. A brush-based system would not work, since with parametric modeling, the meshes change frequently. So rather than brush-based, algorithm selection of groups of polys will be best.

    I will definitely look into workflow with Quixel, and Surforge as well.;)
     
    punk likes this.
  5. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    That sounds right. I think our artist tends to create a colormap by assigning solid colors to each material and then just creating a texture out of that. That way he can have different materials for parts of the scene but still easily select everything that is "wood", or "the bottom wooden frame of the wall", or whatnot.

    Here's a screenshot of quixel and its colormask field (they call it material id).



    Okay, I'll leave you alone for now. If at some point you have something going for this stuff, ping me, or make note of it somewhere and I'll hopefully see it ... would love to pick this up and give it a try once something is in place :).
     
    roryo likes this.
  6. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    Apologies if this has already been answered in one way or another, but could Archimatix be used for modern houses? I assume it could given the wide range of examples that you've shown in this thread, but I'm curious if there are any caveats or potential downsides to using it for relatively small, complex structures.

    Also, are the resulting meshes entirely closed without intersecting, hidden geometry or are they simply made up of separate pieces that could be broken apart in a traditional modeling application? That's not really a big deal - I'm just curious.
     
  7. kerrmedia

    kerrmedia

    Joined:
    Nov 4, 2015
    Posts:
    250
    Had to purchase this.
     
    roryo likes this.
  8. dancinLion

    dancinLion

    Joined:
    Jul 16, 2012
    Posts:
    14
    Good evening!

    Maybe you can answer these three questions I have:

    1. I was wondering if you plan to implement features that allow to create things that look less "perfect". For instance adding noise on a mesh or rotating repeated meshes between some random angles. Right now your asset looks great for creating sci-fi or contemporary stuff, but what if I'd want to make something medieval and/or cartoony where not everything is lined up perfectly?

    2. When Runtime AX arrives, do you think it is feasible to generate a whole level procedurally at the start of the game? Not talking about the details but the actual landscape, buildings etc.

    3. Are there any plans to allow the whole creation of models through code or "only" adjusting parameters of models that have formerly been created within the node editor?

    Thanks!
     
  9. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @IFL - for high-design houses with interesting planes and curved surfaces, Archimatix is a great tool. On the other hand, at the moment, Archimatix is probably not the best modeler for a contemporary suburban house with lots of rooms, doorways and windows. Maybe something like uModeler would work for this?. I do have some nodes spec-ed that will make AX better at handling a suburban house.

    The resulting meshes can be separate or combined, depending on how you set the Combine Meshes toggle on various nodes. The meshes are generally clean, though they might be self-intersecting in cases where your source shapes have very acute angles. Not sure if this answers you question, but let me know!
     
    IFL likes this.
  10. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    How would this handle dungeons? (Back to personal curiousity :p)
     
  11. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @dancinLion
    1. Right now there are JitterTools that can be fed into Repeater nodes (e.g. FloorRepeater, GridRepeater, RadialStepRepeater, etc.). They will jitter the transforms according to a Perlin function to produce things like the RicketyStair model that is included in the Archimatix package:

    Archimatix 2017-04-04_12-37-29_PM.jpg

    The side boards here are a GridRepeater2D that is Jittered and extruded.

    There are plans for a new class of nodes called Deformers and Deteriorators. Nodes in both these classes will modify the meshes themselves.

    2. Model generation in AX is very fast. When runtime AX is available your age download could be small, with much of the environment generated at startup. However, there i not currently a plan to do Terrain-like things in AX. We could in the not so distant future have a poly landscape through that is generated on the fly.

    3. Yes - in fact access for your custom scripts to AXModel parameters should be available by late May!
     
    kerrmedia, punk, faduci and 3 others like this.
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    There is a lot of connecting chamber design that can be done in magical ways with ShapeMerging as a generator, an example of which is here. And work is being done to make adding door modules with auto opening-cutting as noted here. On the other hand for dedicated procedural dungeons other tools like DunGen and Dungeon Architect might be better.

    Here is an example of AX and ShapeMerging to make a multi-level, dungeon-like environment.
     
    kerrmedia and IFL like this.
  13. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Welcome aboard, Kermedia!
     
    pixelsteam likes this.
  14. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    I already own them ... something tells me I'm going to own this too :D.

    Seriously. Amazing work.
     
    roryo likes this.
  15. dancinLion

    dancinLion

    Joined:
    Jul 16, 2012
    Posts:
    14
    Thank you, purchased :).
     
    roryo likes this.
  16. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    I know it's a busy day for you, but do you mind expanding on the reasons for why lots of rooms, doorways, and windows aren't well suited for Archimatix? I would have thought that it would be perfectly suited for it. Or do you mean that it would just be overkill for such simple construction?
     
  17. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    I hope so - we need you in the community, if nothing else to help smooth the AX <-> Quixel workflow!
     
  18. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Whooohoo - welcome aboard, @ dancinLion!
     
  19. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    If you want to start with a standard house plan from an architect and extrude all the lines into walls, the way one might in SketchUp and then cut idiosyncratic holes for doors an windows, a brush-based modeler would be best. For example, SketchUp or ProBuilder. In other words, a very idiosyncratic form is not very algorithmic. Now, parametric does enter into the workflow if I can draw lines to represent wall axis, let them intersect and then drag door and window modules over these. This is the workflow I am hoping to have going in the next few months.

    Both parametric and brush-based modeling can model almost anything, but there are times when parametric workflow is more efficient and others when brush-based is.

    LOL - this is indeed a busy day, so I hope I am still able to make some sense at least!
     
    Last edited: Apr 4, 2017
    IFL likes this.
  20. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    Okay, I took the plunge and purchased this. Going to take a look as soon as I can.
     
    TeagansDad and roryo like this.
  21. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Congrats, @DGordon and welcome aboard!
     
  22. Discord

    Discord

    Joined:
    Mar 19, 2009
    Posts:
    1,008
    Purchased in the hope that I can make buildings and structures more easily. :)
     
    roryo likes this.
  23. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks so much, @Discord and welcome aboard!
     
  24. dancinLion

    dancinLion

    Joined:
    Jul 16, 2012
    Posts:
    14
    Hey, I'm getting errors when, for example, deleting a shape that was linked to a repeater. The version in the store says it was submitted with Unity 5.3.4. I'm at 5.6.0 - have you had a chance to test Archimatix with the new Unity release?

    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[UnityEngine.Vector2].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    AXGeometryTools.Spline.subdivideLongSegments (Single desiredMaxLen) (at Assets/Archimatix/Scripts/AXGeometryTools/Spline.cs:702)
    AXGeometryTools.Spline.getSmoothSubsplineIndicies (Single desiredbay, Single maxLength) (at Assets/Archimatix/Scripts/AXGeometryTools/Spline.cs:773)
    AX.Generators.PlanRepeater2D.generate (Boolean makeGameObjects, AX.AXParametricObject initiator_po, Boolean isReplica) (at Assets/Archimatix/Scripts/Core/Generators/Repeaters2D/PlanRepeater2D.cs:370)
    AX.AXParametricObject.generateOutputNow (Boolean makeGameObjects, AX.AXParametricObject initiator_po, Boolean renderToOutputParameter) (at Assets/Archimatix/Scripts/Core/AXParametricObject.cs:4254)
    AX.AXParametricObject.generateOutputNow (Boolean makeGameObjects, AX.AXParametricObject initiator_po) (at Assets/Archimatix/Scripts/Core/AXParametricObject.cs:4169)
    AX.AXParametricObject.generateOutputNow (Boolean makeGameObjects, AX.AXParametricObject initiator_po, Boolean renderToOutputParameter) (at Assets/Archimatix/Scripts/Core/AXParametricObject.cs:4212)
    AX.AXModel.generateAlteredPOs () (at Assets/Archimatix/Scripts/Core/AXModel.cs:2540)
    AX.AXModel.generate () (at Assets/Archimatix/Scripts/Core/AXModel.cs:2446)
    AX.AXModel.generateIfDirty () (at Assets/Archimatix/Scripts/Core/AXModel.cs:2379)
    AXNodeGraphEditorWindow.OnGUI () (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:1470)
    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)
     
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks for reporting this, @dancinLion! I'll take a look. At first glance, I don't think it is related to 5.6, but rather a general uncaught exception.
     
  26. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I'm not sure what Rory meant, but as far as I understand your question AX is very good at making contemporary structures including houses, especially if you are starting with a floorplan where you know in advance how the rooms fit together.

    sixtfour.jpg

    You'd lay out the rooms as individual shapes like in the attached pic, then add your door void shapes, and then your window void shapes. Then you would build up the interior of each room with a "lower wall" that only the doors cut out, a "mid wall" that cuts out the door and windows, then a "high wall that completes the room (possibly cutting out the windows if they are higher than the doors). You'd add trim and moldings to the walls, and around the doors and windows…. Eventually you create the outside wall that encompasses the whole building…. columns, stairs, and ceiling, and roof....

    That would be one way to do it. Another would be to build the floorplan as before, then create each wall as a "flat" with the appropriate holes for doors and windows. There might be instances where you'd combine the two, some walls as "flats" with holes, and other walls as multi-part... You can use 3rd-party props and architecture elements for the doors and window parts, or build them in AX.

    If you read my review on the AX store page, I mention some functions you might need other software for. I'm not trying to disagree with Rory, but I don't see what would prevent it. In fact if I were doing anything architectural I would start with AX. I have not attempted to build an entire house, top to bottom, though.
     
    IFL and roryo like this.
  27. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks, @wetcircuit. The boundary between when a parametric modeler is better and when a brush-based modeler is better is blurry to be sure.

    Archimatix would be great for the plan you shared, since it has a kind of Palladian algorithm to it, especially the repeating columns in the atrium, the apsidal voids for the room spaces that are subtracted out of the sold shape of the building, the symmetries, the repeating window openings around the exterior wall, etc.

    The kind of plan I was thinking of that might be better with a brush-based model is more like this:
    Hartranft_1st.jpg
    This certainly can be done in AX, but might be easier in ProBuilder or SketchUp - at least for now ;)

    Very interesting case study!
     
    IFL likes this.
  28. dancinLion

    dancinLion

    Joined:
    Jul 16, 2012
    Posts:
    14
    Here is another one, came together with a debug log while I was clicking on to a ShapeMergers "input shape" - input while trying to unlink it from a shape. Btw, how do you do that? It seems to happen quite inconsistently while left-clicking on to an input. I would have expected it to work with right-click, but then I'm not quite sure if it is working like it should in my case, maybe there is something going wrong in general? I use the personal edition (I heard this could be relevant in regards to the editor) and a fresh project for testing.

    Still, what I could see/try looked promising, looking forward to spend more time with it tomorrow.

    *********************************** outputSocketClicked
    UnityEngine.Debug:Log(Object)
    AXNodeGraphEditorWindow:eek:utputSocketClicked(AXParameter) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:5361)
    ParameterSplineGUI:OnGUI_Spline(Rect, AXNodeGraphEditorWindow, AXParameter) (at Assets/Archimatix/Scripts/Editor/NodeGraph/ParameterSplineGUI.cs:76)
    AXNodeGraphEditorWindow:DoNodePallette(Int32) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:4938)
    UnityEditor.EditorWindow:BeginWindows()
    AXNodeGraphEditorWindow:drawNodeGraphWindow(Int32) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:1132)
    AXNodeGraphEditorWindow:OnGUI() (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:1932)
    UnityEditor.DockArea:OnGUI()

    NullReferenceException: Object reference not set to an instance of an object
    AXNodeGraphEditorWindow.inputSocketClicked (AX.AXParameter p) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:5446)
    ShapeGUI.OnGUI (Rect pRect, .AXNodeGraphEditorWindow editor, AX.AXShape shp) (at Assets/Archimatix/Scripts/Editor/NodeGraph/ShapeGUI.cs:100)
    AXNodeGraphEditorWindow.DoNodePallette (Int32 win_id) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:4260)
    UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1817)
    UnityEditor.EditorWindow:BeginWindows()
    AXNodeGraphEditorWindow:drawNodeGraphWindow(Int32) (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:1132)
    AXNodeGraphEditorWindow:OnGUI() (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:1932)
    UnityEditor.DockArea:OnGUI()
     
  29. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
     
  30. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    558
    This tool looks amazing!

    So, a few quick questions...

    Are the repeating structures individual objects (I.e individual pillars vs one object of a bunch of pillars) and therefore able to be instanced and

    Any way of optimizing poly count after modeling, such as reducing a plane of 40 polys to just one?
     
  31. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks, @christougher!

    When an object is repeated, the default is that it is an Instance. So if you have 100 columns, there is only one sharedMesh, and with Dynamic Batching, still only one draw call. Most of the Repeaters have a ProgressiveRotation parameter. If you set this to 90 degrees, then only by the fourth column with the texture appear to repeat - more than enough to fool the eye. Add Jitter to the repeater and there is no pattern discernible.

    If you click on the Combine Meshes toggle on a Repeater node, then the 100 columns will be one big mesh - sure to be one draw call. But that increases the size of your scene for download. When you add a Rigidbody, you may have other criteria for when to combine meshes or leave them individual–also how to define your Colliders:

    Archimatix 2017-02-09_07-54-22_AM.jpg

    Polygon reduction is one of the strengths of parametric modeling right in the game engine. As a non-destructive modeler, you can reduce the segmentation on some or all of the source Shape generators to reduce the triangle count. So in a sense, there is no "after modeling" with parametric modeling. All the steps that going creating the model are always live. Overtime you move a parameter slider you are regenerating everything. And it is very fast!

    Archimatix 2017-02-16_08-57-00_AM.jpg
     
    christougher likes this.
  32. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    Thanks @wetcircuit & @roryo for elaborating even further on my inquiry. And that's one heck of a review @wetcircuit - major props for being thorough.
    Would you say the same if I had a few dozen houses to create, all based on the same look?
    I genuinely appreciate the honesty with which you've tried to convince me to not purchase your product.
    Unfortunately, I'll probably get it anyway.
     
    wetcircuit and roryo like this.
  33. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    o_O what are you saying? Not everyone lives in this kind of house? Just me and Catherine the Great?
     

    Attached Files:

    theANMATOR2b, pixelsteam and IFL like this.
  34. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    A good question to ask of the two plans posted above is, where should the parametric handles be? What larger meta-shapes would I like to control to make new versions of that plan? If you wanted to make a series of Palladian houses a la the plan @wetcircuit posted, then I can imagine exactly where I would like the controls to be. For the plan I posted, I am not sure where they would be. So with parametrics, few controls can morph great complexity. With brush-based, many autographical strokes (like a impressionist painter on a canvas) strokes create the variations.

    If you have concept art you could share (here or in a PM), I could give you a better assessment of whether the style of houses you are working with would be most suitable for parametrics, and possibly some node graph strategies to get there.. ;)
     
    IFL and wetcircuit like this.
  35. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    LOL - don't get me wrong, if you show me to my room in that mansion, I am moving in forthwith! :)
     
    wetcircuit likes this.
  36. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    Here's an example...
     
    wetcircuit likes this.
  37. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Wow - thanks. Very cool! Wold these be mostly exterior models, interior or both?
     
    IFL likes this.
  38. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    Both, but not necessarily at the same time.
     
  39. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    When did the 24 hour sale begin? How long (hours-wise) until it ends? It's 7pm my time right now, so will I be able to get it in time if the funds I just deposited post first thing in the morning?

    I really hate to miss this sale. I didn't get any notifications from the asset store and I only just saw it. :(
     
    Last edited: Apr 5, 2017
  40. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @awesomedata - Its not clear to me. I think the sale ends at either 9 am tomorrow (New York time) or 10am.
     
  41. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hmmm, this one is right on the cusp. How many variations do you need and how different will they be from each other? LOL - I will be dreaming of this house tonight, building node graphs in my sleep, I can just tell!
     
  42. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Thank you. I just got a copy of the first book "Architecture: Form, Space Order", 4th edition today. It will be a good read based on quick scan I did of it. Thanks again.
     
  43. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Great! I would like to do a series of AX library objects based on some of that catalog. Let me know which ones are your favorites!
     
    pixelsteam likes this.
  44. IFL

    IFL

    Joined:
    Apr 13, 2013
    Posts:
    408
    They'll all be the same aside from floor plans. I'm excited to stumble through trying to get something close to it.
     
  45. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Just did a quick test of redoing an amphitheater/circus at the request of @rasto61. There was an example from an older version of AX which has been lost under layers of AX development archaeology. This one is not quite the same, but I did in about ten minutes using ten nodes!
    Archimatix 2017-04-04_09-50-20_PM.jpg
     
  46. Discord

    Discord

    Joined:
    Mar 19, 2009
    Posts:
    1,008
    After I select an AXModel in my scene, if I middle mouse click to pan the scene, it will select whatever my mouse is hovering over. Is this intended behavior? It makes it incredibly difficult to drag handles and navigate the scene simultaneously.
     
  47. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    When you click to drag (if you are not over a handle), it should not select the object beneath. I develop on OS X, so I am not sure if you are experiencing an isolated problem. Can anyone else with Windows reproduce this?
     
  48. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Ok - I think I see something that can help here. Let's see if we can test this via the slack site for AX.
     
  49. Discord

    Discord

    Joined:
    Mar 19, 2009
    Posts:
    1,008
    I made a quick video to demonstrate the issue.

    https://gfycat.com/FabulousHalfChamois
     
  50. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Wow - I appreciate the video, and, yes, that is an annoying behavior that we must fix pronto! Did you get my pm about joining the slack?