Search Unity

  1. New Unity Live Help updates. Check them out here!

    Dismiss Notice

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

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

  1. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Hi again,

    any news on the Winwall feature and the Curve 3d repeater? Can´t wait to get my hands on it :)

    Keep up the great work!
     
  2. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @iddqd - apologies for the delay in answering your question. If you add ITerrainer to the class declaration (e.g., right after ICustomNode), then the terrain object field will appear in your custom node.

    In your script, you can reference it by parametricObject.terrain.

    Hope this helps! ;)
     
  3. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Do you have an image that might help visualize this case?
     
  4. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @Eva-Dragonflame - you can try out an alpha version of WinWall as it is in the CustomNodes section down at the bottom of the right sidebar node menu. :)

    I am still trying to figure out the best way to allow one to define the fenestration pattern.
     
  5. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @markefus - I should be submitting it to the assetstore soon. In the meantime, if you PM me with your email and assetstore invoiced, I can invite you to the slack where you can grab intermediate builds.:)
     
  6. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Hi, thank you, yes I would need custom fenestration patterns..... :)
     
    Last edited: May 5, 2019
  7. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    As I am plotting how one could define fenestration patterns, it would be useful to see examples of what kinds of things people would like to do. @Eva-Dragonflame - do you have any sketches you could share of what you are thinking of?
     
  8. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    416
    Thanks @roryo for the reply. Seems to work, but after some testing I wanted to ask if the Terrain Deformer Node is working correctly or if it's in Beta. For example if I take Villa Apresto and just attach the default Terrain Deformer to it, I get this result:

    upload_2019-5-3_16-13-53.png

    Any idea why this is happening? I would expect the whole Mesh to be deformed on the y axis so it sits on the terrain.

    Thanks
     
  9. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    VillaApresto is large and not subdivided, so it behaves badly with deformers (not just TerrainDeformer). As a test, deleted some of the nodes, like for the arches, and then subdivided the plans in the remaining nodes and I was able to deform it using the DomicalDeformer.

    Capto_Capture 2019-05-03_11-24-48_AM.jpg


    For more info on how to subdivide, check out the PlanDeformer page. Unfortunately, there is no global subdivision setting like the Detail Level setting that is there currently, so for now you have to set the subdivision level in the plan or section input of each Mesher node.
     
  10. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    416
    Ok, thanks. I'll give it another try with my model and some variations.
     
  11. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    19

    Cool, just sent you a message!
     
  12. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Something like this....
    Screenshot_39.png
     
  13. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Hi again, maybe I overlooked that.....Is there a way to rotate the materials in Archimatix?
    Cheers :)
     
  14. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Thanks for posting this pic. In its first iteration, WinWall will only allow for holes in flat wall sections. In the meantime, you can model holes in rounded walls using PlanDeformer. ;)

    HolesInCurvedWall.gif
     
    rwetzold likes this.
  15. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    You can only rotate materials 90 degrees. Using the last two parameters in the Controls of a MaterialTool:

    Capto_Capture 2019-05-04_04-21-43_PM.jpg

    This at least lets you set wood grains going in the other direction, etc.

    Hope this helps!
     
  16. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Yes, thank you, that´s how we do it right now..... :)
     
  17. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Thanks Roryo, yes 90 degrees in one direction...it would be great to set an arbitrary angle or select 90 degrees steps, so that counterclockwise 90 degrees and 180 degrees would be possible.
    Thanks for your continuing support :)
     
  18. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Hello @roryo,
    I have some shape bugs to report ;-)
    • when drawing a 2D shape the last curve point values go missing. Only after inserting another vertex and deleting the last one the values show up upload_2019-5-5_19-24-18.png
    • another issue: if parameters are passed to another node, the parameters of the receiver node are updated, but not their respective values of the curve points
      2D shapes.gif
    Do you think you could fix those things easily?
    It would be of great help ...
    (Unity Version 2018.3.12f)

    Thank you and best regards
     
  19. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Wow - thanks for the great gif - really helps to pinpoint the problem. Bot these fixes should be pretty straightforward. Will give it a try in the AM. ;)
     
    Eva-Dragonflame and photonic like this.
  20. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    416
    Hi @roryo

    I'm still working on trying to get things "glued" to the terrain. It seems to my like it currently cannot work in a graph like this:

    upload_2019-5-6_15-53-47.png

    If I set the Terrain in the Plan Repeater or in a TerrainDeformer Node after the PR, it seems to deform/move not only on the y axis (Terrain Heightmap) but also dependent of the axis set on the Plan Repeater which seems to me like I have to have it on Z to make an Arch or Bridge. When I add Jitter to the Plan Repeater things get messier. Can you confirm this?

    What I'm trying to is is Build Procedural Bridges where the two endings are seamless stuck on the terrain.

    Thank you
     
  21. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    416
    Strange thing is that I can add a Domical Deformer (which I imagine should have similar logic to a Terrain Deformer) to the end of my Bridge and it works as expected.
     
  22. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi Roryo, did you have a chance to look at that? It would be really helpful :)

    And how is your development with the 3d free curve going?That would be a great feature! Thank you!
     
    Eva-Dragonflame likes this.
  23. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Hey @roryo, do you think you can make the bugfixed build available on Slack as soon as you had the time to look into it? Thanks! :cool:
     
  24. taylank

    taylank

    Joined:
    Nov 3, 2012
    Posts:
    143
    Hi, I bought Archimetrix Pro today and I seem to be getting a lot of errors. Some go away after closing the graph window and reopening but the one below seems to be persistent:
    TypeName Not found: GeneratorHandler2D
    UnityEngine.Debug:Log(Object)
    AX.ArchimatixUtils:AXGetType(String) (at Assets/Archimatix/Scripts/Core/AXUtilities.cs:446)
    AX.Generators.Generator:getGeneratorHandlerType() (at Assets/Archimatix/Scripts/Core/Generators/Generators.cs:221)
    AX.GeneratorHandlers.GeneratorHandler:getGeneratorHandler(AXParametricObject) (at Assets/Archimatix/Scripts/Editor/GeneratorHandlers/GeneratorHandler.cs:78)
    AXEditor.ArchimatixEngine:SceneGUI(SceneView) (at Assets/Archimatix/Scripts/Editor/ArchimatixEngine.cs:1633)
    UnityEditor.EditorApplication:Internal_CallGlobalEventHandler()

    It's a debug.log too every frame, which seems to be slowing the editor down a lot.
    Is there a gotcha to using Archimetrix with assembly definition files? Is that what this is about?
     
    Last edited: May 10, 2019
  25. taylank

    taylank

    Joined:
    Nov 3, 2012
    Posts:
    143
    OK I figured it out. Creating an assembly definition file with the name Archimatix solved the issue. I feel like this should be mentioned somewhere in the manual, but maybe I missed it
     
  26. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @taylank - thanks for purchasing Archimatix! When I read your first post, I thought it looked like AX had not finished installing, since it was reporting that it couldn't find core files. I am not sure why creating an assembly definition helped, but I am glad the issue is resolved. Did you install AX into a project that already had an assembly definition? I have not tried this yet.
     
  27. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    The bug fixes are now in the latest version available on the Slack! :) AX v.1.2.3b5

    FreeCurveRelations.gif
     
    photonic and wetcircuit like this.
  28. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Oh yessss, awesomely awesome! Thank you!:D:D:cool:
     
  29. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Yes, I do have an idea of what that might be.... let me take a look.
     
    photonic likes this.
  30. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    19
    Hey! So thanks for posting that new build, but unfortunately the prefab instancer -> pair repeaters which I mentioned previously are still bugged in that version. Did you forget to include the fix?

    Thanks!
     
  31. taylank

    taylank

    Joined:
    Nov 3, 2012
    Posts:
    143
    Indeed.
     
  32. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    19
    Also, unfortunately it seems like the Radial Repeater's SpanU throws an exception in 1.2.3b5.
    It makes the entire structure fail to build and freezes archimatix if SpanU is used.

    *EDIT I think this is only with the Prefab Instancer? This also fails if you feed the SpanU an empty channeler. It might be treating the Prefab Instancer as null or something when initializing the array, I'm not sure.

    I'm on an ancient version of Archimatix and I really need to upgrade since I'm hitting performance limits which this new version doesn't have. But I can't use a build which isn't stable :(

     
  33. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @markefus - When I test the PrefabInstancer with PairRepeater in 1.2.3b5, it seems to work. I can save and retrieve from the library and copy and paste (though duplicate as an Instance still does not work). It does not yet display the meshes for the pair when dragging a parameter, making it look as though it disappears until you let go of the handle.

    PairRepeater.gif

    Is there a sequence of steps you could provide so that I can reproduce the issue you are seeing? Thanks!
     
  34. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    I can reproduce this - should be a quick fix and will post to the slack. :)
     
  35. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    116
    It just occurred to me that I could use those 3D Splines to make a virtual marble track.
    I've ALWAYS wanted a virtual Marble track.
     
    rgarrett7, roryo and Eva-Dragonflame like this.
  36. Hypester

    Hypester

    Joined:
    Jan 23, 2018
    Posts:
    17
    This really weird thing is happening with my shallow curve shapes, do I need to update to a newer version?
     

    Attached Files:

  37. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @Hypester - looks like a recent change in AX has upset ShallowCurve. This bug would be in the latest version as well. Let me take a look.
     
    Hypester likes this.
  38. GameStudioLab2

    GameStudioLab2

    Joined:
    Mar 21, 2019
    Posts:
    1
    I have a few probably dumb questions for which the answer is probably easy to find (Well hopefully not).

    How codable is archimatix, I realize it is intended as a node based modeller but if I want to say generate splines via code to mark out floor plans of buildings in a city generator is this an easy thing to do?

    Can archimatix place prefabs or is there a way of interacting with the generated content to glean information from it. Lets say you are generating buildings, and you have a prefab for an interactive door that opens/closes/unlocks whatever and same for windows. Is it possible to either have the system place them, or interact with the archimatix system to code a way to place them yourself through code?

    Does archimatix let you use premade models extensively, and for example duplicate them along a direction and cut them to create new meshes. For example you have meshes for a gutter with correctly uv'd and baked normal maps that you want cloned along/bent along a path and cut off rather than scaled. Is this doable?

    Sorry for all the questions, I think most of this list looks like it's likely possible, just want to double check before I purchase. Thanks! :)
     
    Last edited: May 26, 2019
  39. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Hi @GameStudioLab2 -

    Two ways to code custom shapes are in the node logic script in a Shape node and in c#. For the former, there is a manual page that can help. This scripting language for node logic is simple but powerful, especially for encoding the logic of architectural plans. There is an API for the script published in the manual as well. For C#, it is very similar. Here is an example of how the definition of parametric shapes looks in c#:

    Code (CSharp):
    1.  
    2.             Path sectionPath = AXTurtle.VerticalLine(new Vector2(0, 0), vertiRuler.actualCellSize);
    3.             AXTurtle t = new AXTurtle();
    4.             t.mov(0, 0);
    5.             t.dir(90);
    6.             t.fwd(vertiRuler.actualCellSize- bevel);
    7.             t.fwd(bevel, -bevel);
    8.             t.left(.075f);
    9.             t.back(vertiRuler.actualCellSize);
    10.             sectionPath = t.getPath();
    11.  
    12.             Spline sectionSpline = new Spline(sectionPath, sectionIsClosed, planBreakGeom, planBreakNorm);
    13.          
    14.             Path square = AXTurtle.Rectangle(2, .5f);
    15.             Path circle = AXTurtle.Circle(.25f, 14);
    16.             Pather.shiftPath(circle, new Vector2(0, -.25f));
    17.  
    18.             // slicer
    19.             Path clipsquare = AXTurtle.Rectangle(100, 100);
    20.             Pather.shiftPath(clipsquare, new Vector2(50, 0));
    21.  
    22.             Paths subjs = new Paths();
    23.             Paths clips = new Paths();
    24.  
    25.             subjs.Add(square);
    26.             subjs.Add(circle);
    27.             clips.Add(clipsquare);
    28.  
    29.             Paths merges = Pather.difference(subjs, clips);
    30.             Path path0 = merges[0];
    31.  
    32.             Curve2D cv2 = new Curve2D(path0, false);
    33.  
    Although there isn't a full c# API published yet, the source is available and I can help point you in the right direction.

    You can also create meshes and gameObjects and place them via c#, either as custom nodes or as standalone editor applications.

    Ax does not use any prefabs, but there is a library of basic shapes that you can use to extrude along a plan shape. These shapes are parametric, so they can be used to generate lots of variations of meshes. Per the manual page above, you can create your own parametric shapes if nothing in the library seems to fit your needs. For example, a custom gutter profile would make a great shape node and would require only a few lines of turtle script.

    For uv's, AX follows a philosophy of tiled textures rather than atlas maps. This means that the gutter can be as long as you like and the u value will keep getting larger. By the end of the gutter, it may be 30, meaning the tiled texture has 30 repeats. That being said, I am adding the ability to specify u-values at points in a curve description. Also, a mode where the u value goes from 0 to 1 between sharp breaks in the geometry, which will allow the parametric object to conform to a predetermined atlas geometry.

    I hope that helps answer some of your questions.;)
     
    photonic likes this.
  40. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Hi @roryo,
    I have been playing around with your Curve3D and it really has great potential!
    Just wanted to add my thoughts on features that would make sense imho:
    + exposed curve points coordinates in node
    + use of parameters for the curve points
    + handles for Bezier
    + handles for every curve point to set the rotation and size of the section-profile

    Are any of those ideas on your road map?
    Cheers :)
     
  41. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    All of them are! Thanks for trying it out :)
     
    photonic and Eva-Dragonflame like this.
  42. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Hi again,
    is it possible to place a single object along a plan with a specific inset using planrepeater?
    That really would help :)
    All the best! @roryo
     
    Last edited: Jun 2, 2019
  43. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    That's great!
    BTW, do you have an idea how I could parameterize the Bezier values for a curve point so that I can use them in another node for a similar shape?
    Cheers!
     
  44. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Could you set the object as a CellMesh in the PlanRepeater, make the inset large and the bay small?

    Sounds like we could use a new node called PlanPlacer that allows you to set the position of the input along the plan. Each input mesh could have a different inset. :) This would also make sense for the 3D Curves.
     
    neoshaman and wetcircuit like this.
  45. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    30
    Hi @ Roryo,
    I tried it but unfortunately it did not work for me because with a small baywith the cell mesh object is multiplied (so it looks stretched) and I can not place just one object alone at an exact location.
    A PlanPlacer would be just wonderful! I could place many objects at a certain position along the plan and that would be awesome.
    Have I mentioned that a PlanPlacer would be great ;-) Well, if I imagine one I think it would be just mind blowing!
    Ah...awesome!:):):):):):):):)
     
    awesomedata, L0ve3d and roryo like this.
  46. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,395
    Do you mean the handle ends?
     
  47. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Yes, either exposing the Bezier handle values beside the curve point coordinates would be great
    or I would suggest a new node type CurveSection where you get a piece of the curve with all the mentioned values of the original shape.
    upload_2019-6-4_12-14-40.png

    Thinking of it, you might have a development synergy with the above mentioned PlanPlacer ;):D
     
  48. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    19
  49. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    19
    Bonus gif of designing the cathedral windows with Archimatix.
     
    neoshaman, roryo, logixworx and 6 others like this.
  50. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Hi @roryo,

    I am not sure if this is a recent bug, but if I save nodes to the library, the params I entered into the curve points are not saved. Which makes the re-usability for my modules impossible.
    I would really appreciate if you could fix that (via Slack?) since I have built a lot of complex modules that I need to combine right now and just figured out that it doesn't work.

    >> saved to library upload_2019-6-11_8-17-53.png >> opened from library upload_2019-6-11_8-20-0.png


    Another thing I noticed only with ShapeChanneler and ShapeConnector:
    Those two nodes do not forward shape data from their inputs. I use that a lot to keep my layout manageable.
    Curiously those two nodes are the only ones that use the term "Input Spline" instead of "Input Shape" like all the other 2D nodes where it works (maybe older code)?

    upload_2019-6-11_8-49-57.png

    Thank you for your continuing support, making AX better all the time.
    Cheers!
     
    roryo likes this.
unityunity