Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    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. kerrmedia

    kerrmedia

    Joined:
    Nov 4, 2015
    Posts:
    250
    Not sure what a PM is, but put the info in a private conversation to you.
     
    roryo likes this.
  2. Samb88

    Samb88

    Joined:
    Mar 26, 2009
    Posts:
    203
    Hi @roryo !
    Bought it, love it, using it! But maybe here is a thing you can somehow implement to increase the use cases for this wonderful tool:

    Right now, I 'm trying to autogenerate a kitchen counter. As you can see, there is a small backwall. Problem: I can't find a way to let that generate automatically!
    I'm using a FreeCurve to draw a path and then use thickness to fill it.


    Right now, I extrude a large box and cut off the unwanted parts. Thats a bit of a hassle, BUT maybe here is a solution!


    If we could select the lines we DON'T want to use, we could exactly choose where something should appear and where not. As you can see, the path is open and the right side is hidden. PlanSweep would to exactly what I need, if I could choose to only use specific parts of the path.

    In other use cases, you could place objects with a PlanRepeater only in specific places!

    I hope this is somehow understandable! :D
    Thanks again for this product! Looking forward to use it as much as possible!
     
    roryo likes this.
  3. daschatten

    daschatten

    Joined:
    Jul 16, 2015
    Posts:
    208
    While playing around with FloorRepeater i got this:

    I think it happened after i copied some objects from within a grouper to outside. Removing FloorRepeater doesn't help because i can't add one anymore. Also one of my groupers can't be closed anymore.
     
  4. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    To all those who have acquired Archimatix today, yesterday and beyond, if you would like to join the slack.com site, please PM (Conversation) me with your invoice id and an email to send the invite to. :)
     
  5. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Wow - thanks for posting this example and pics. If you are not too bashful about simple scripting, you could create your own parametric KitchenCounter shape and save it to your shape library. You can define your own parameters and handles. There is a manual page for this. Creating such a parametric shape would be useful if you need to do a series of counters, each with slightly different dimensions, but all the same logic.

    Otherwise, you could do an extruded open arch turned 90 degrees for the counter in one PlanSweepand an a an molding profile for the back splash in a separate PlanSweep.


    Archimatix 2017-04-05_06-28-25_PM.jpg

    BTW, for the molding, I found I had to check the Reverse parameter in the Plan foldout of that PlanSweep
     
    Last edited: Apr 5, 2017
    faduci, Samb88 and Teila like this.
  6. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Ok - I think I fixed this - thanks, @daschatten!
     
  7. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    Just got this asset yesterday and it's awesome :D

    I have some question:

    1) is it possible to save the Procedural Model in a way that could be shared to people who don't own the Archimatix plugin? like someone just want's a procedural stair asset, and just want to tweek parameters, but not edit the graph.

    2) I've noticed that I can change the model in runtime manually, that's great, but is it possible to access the values of the nodes by code in runtime?

    3) is there any roadmap or a way to see what are the upcoming features or bug fixes or something like that?

    4) is it possible to select some faces (like All the faces with normals pointing stright up) and apply something to it like an extrude.
     
  8. Samb88

    Samb88

    Joined:
    Mar 26, 2009
    Posts:
    203
    Huh, interesting! Thank you very much! :) One last thing:

    If you use a shape and put it in a ShapeDistributor, change the Thickness value and set the Distributor on Invactive


    Activate it again and the shape will be missing! This can also happen when you tweak another shape. Only fix seems to be to set thickness back to 0 and then to some other value. But since it happens all the time when you're chaning your setup, it'll get annoying really fast! :)
     
  9. PlatformSix

    PlatformSix

    Joined:
    Feb 27, 2014
    Posts:
    57
    Ah damn, might have to wait for a fix - the workaround doesn't seem to work for me. Increasing the inset just breaks the regular spacing of the uprights while the floating issue persists. Screen Shot 2017-04-06 at 10.51.44 am.jpg
     
    roryo likes this.
  10. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    Hello, I have more questions

    I'm trying to make something as close as Possible as this pipes



    So far I've had 3 main obstacles.

    1) I'm working with the free curve, but is it possible to make it 3D? not only projected on a flat surface?
    2) I had trouble combining 2 green meshes, I tried to use the "grouper" but I didn't understood what it does... specially I couldn't combine to make this:
    3) I Can't control correctly the rotation of the Ends.

    upload_2017-4-6_2-40-17.png

     
    roryo likes this.
  11. habsi70

    habsi70

    Joined:
    Jan 30, 2013
    Posts:
    25
    Hi,
    first I want to say this is a very fine product. I am now trying out a few ideas. The learning curve is not too steep but the possibilities seem endless!

    One of my first exercises is a jetty. The Separation (PairRepeater) of the supporters is driven by the width of the planks. I would like to add the radius of the supporters to the separation. Is it possible to add attributes from more than one nodes to an expression?

    EDIT: If this is not possible a custom Expression Node would be very helpful. It could take multiple inputs and route them to multiple outputs of the target node. Every output would allow an expression.
     

    Attached Files:

    Last edited: Apr 6, 2017
    roryo likes this.
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    A fix for this is high priority, since PlanRepeater is one of the crown jewels of AX!
     
  13. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Thanks for these question, @daville!

    Yes, but for them to play the parametric model that you share, they will have to have a copy of AX to run it. Sharing between AXers is easy, because when you save an object in your graph as a Library item, it is just a JSON file that can be emailed to someone else. If they drop it anywhere in their Assets folder, it will show up in their library.

    By the end of may we will have the first runtime capability for AX (there, I said it again! LOL). You will be able to promote parameters from any node up to the model level and from there access them from any of your games scripts/custom gui. So if you wanted your player to choose the size of her house based on some IAP, that parameter could be set from your game GUI. You could also make a GUI slider or custom runtime scene handle that updates the parameter in realtime as well.

    There is a Trello board for AX that you can take a look at. The cards represent bugs, feature requests, etc.

    That sounds like a great feature! Once you join the slack, you can also add a feature request card to the Trello board. :)
     
    daville and faduci like this.
  14. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Looking good! Thanks for posting the pic and video - really helps!

    1. Currently FreeCurve is 2D only. FreeCurve3D is in the works ;) Don't forget you can option-click a point to make it a Bezier handle. The best tutorial for FreeCurve at the moment is this:
    http://www.archimatix.com/tutorials/7-grand-piano-freecurve-in-action

    2. To better understand how Grouper work, take a look at the GrayShip tutorial:


    3. It looks like the PlanRepeater is assuming the plan is closed, that is why it is turning the end pieces to a bisecting angle as thought it was closed. On the plan input for the PlanRepeater, click the Open/Close toggle so that it is Open (green arrow below)

    By the way, you may want to input the torus mesh as a NodeMesh (red arrow below) instead of a CornerMesh. then you can control the spacing of the collars.


    Archimatix 2017-04-06_11-18-58_AM.jpg
     
    punk, kerrmedia and daville like this.
  15. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    @habsi70 - thanks for posting that pic - looks great! Its always nice to post it full-size to catch people's eyes ;)

    To combine multiple parameters into an expression, its good to put everything into a Grouper named "Jetty" in this case. Then add custom parameters for radius, etc. to the Grouper. Use the foldout for the radius parameter to edit an one or more expressions of what should happen when that radius is modified. Don't forget to use the Size parameters built into the Grouper.

    So the expression under radius might be inset=(SizeX-radius)/2

    inset is also a new custom parameter. The expression under padding could be: radius=(SizeX-2*inset)
    so when padding changes , the radius is modified as well.

    Open the Grouper and link the radius from the Grouper to the radius of the Cylinder. Also relate the inset to the Trans_Z (i think) of the Cylinder.

    Now if you adjust the radius (with the Cylinder handle, for example, it should translate in by inset. If you translate the cylinder, the radius should increase.

    So the Grouper becomes an interface with key parameters that then modify things internally.

    The Grouper could also be empty and just function as an expressions node, with its parameters linking to other external nodes.

    Take a look at the Library item Column_01 to see a pretty good example of Grouper as parametric interface. Take a look at all the expressions in the Grouper parameters :)
     
    habsi70 likes this.
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Ok - looks like you've spotted a bug in the wild! Thanks :)
     
    Samb88 likes this.
  17. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    Thanks for the answers... I'll keep playing around, and watch the videos.

    I just took a look at the trello board.... how can I join? also to the slack?
     
    roryo likes this.
  18. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    To join the slack, could you PM me in a conversation here with your asset store invoice and an email to send the slack invite to? Bots can't see conversation pages, so you don't have to mask the email. Once you are in the slack, you will have access to join the trello.
     
    daville likes this.
  19. elbows

    elbows

    Joined:
    Nov 28, 2009
    Posts:
    2,439
    Ooh mac-specific keyboard terminology creeping in there... is that alt-click for windows users, or right click or something else?

    Sorry for being tedious ;)
     
    roryo and pixelsteam like this.
  20. habsi70

    habsi70

    Joined:
    Jan 30, 2013
    Posts:
    25
    Thank you for the detailed reply, wonderful! Can't wait to try it out on the weekend.

     
  21. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    I'm almost there, it's almost how I want it... but not yet

    I'll keep trying :)
     

    Attached Files:

    wetcircuit, roryo and Samb88 like this.
  22. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Wowsa! You can fudge a 3D pipe by duplicating this one (after you put it all in a Grouper and duplicate the Grouper), rotate it into a different axis and translate until it lines up with the end of the first section.

    Also, if you turn down the segs count on the little cylinders, you can get hex-bolts and save some triangle ta boot! As you reduce the segs in the Circle's input shape, watch the triangle count in the lower right corner of the node graph - very satisfying!
     
    daville likes this.
  23. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    And don't be afraid to add some Jitter!

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



    And quit your day job so you don't have to wait until the weekend to work on AX! :)
     
  24. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    Sure! I'm already improving it a lot with that.... I'll post soon another update.

    in the meantime, I had this problem.

    I want to control the Trans_Y with an expresion linked to Height [Y] but the little green square for the expresion is behind the node and I can't change the value.

    upload_2017-4-6_21-0-41.png
     
    roryo likes this.
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    For mathematical relations within a node, you can edit the expressions under any parameter. Open the foldout triangle to the left of the parameter and add an expression. The nice thing about parameter expressions, is that you can call out any parameter in that node. So under the Height, yu can add an expression: Trans_Y=Height/Trans_X

    Then under Trans_Y, you can say Height = Trans_Y*Trans_X. You can add more than one expression to a parameter.

    The parameter itself should always be on the right side of the equation.

    Check out the Column_01 Library item. Its top Grouper has custom parameters with expressions to each other (and handles in the handles foldout). Then inside the grouper, like the Grouper parameters to various parameter inside. This makes the Grouper a kind of super-smart parametric object that hides/encapsulates its nodal implementation inside.
     
    chelnok and daville like this.
  26. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420

    Also - you can add your own parameters!
     
  27. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    Thanks it works like a charm :)
     
    roryo likes this.
  28. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    So I'm 80% happy with my Pipes now.

    I would like to make 90 degree turns like this, and having a joint only near the corner.
    I don't know if that could be possible.



    Anyways, here's my work of today.


     

    Attached Files:

    roryo, faduci, Steve-Tack and 7 others like this.
  29. Ulven2

    Ulven2

    Joined:
    Apr 23, 2012
    Posts:
    60
    Hey, just picked this up a few days ago. One thing I'm having a bit of a problem with is getting an organic look. In particular the problem is the amount of randomness. Jittering position, size and rotation is not quite enough. What seems to be missing (unless I've simply not found it) is an option to randomly select an input mesh (or arbitrary inputs I guess). What would be nice is to have the repeaters choose one of an array of inputs (perhaps this randomizer could be a separate node). This way we could have a few variations of a model and and use them to break up and fight the very repeated look that is typical with things like this. Any thoughts on how doable this might be?
     
    daville and red2blue like this.
  30. Wavinator

    Wavinator

    Joined:
    Dec 24, 2013
    Posts:
    79
    Hi roryo. Love the power of this tool. I think I found a bug with materials not updating. In the screenshot the wheel should have a checker pattern, but despite setting Top Cap / Bottom Cap and main material to checker, it's using an old material. Or is there something I'm doing wrong?
     

    Attached Files:

  31. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    530
    I'm about the least artistic person I know. Thanks for giving us art flunkies a chance and making something amazing! Wow. My brain is spinning, this is fun! I may never actually get back to making my game lol.

    Quick question as I've just barely started playing around with this... Is there any way to offset the angle of a lathe? As in bend it it 'up' or 'down' as it grows so that when its at 360 degrees one end cap is actually above or below the other? Kind of like stretching out a spring or slinky? Ooo, Slinky node... that would be nice... hmmm. might have to change the name though to avoid royalties ;).

    While I'm asking... what about scaling up or down as the lathe increases as well as an off set in ward or outward?
     
  32. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    281
    I think that's a must have :)
     
  33. Hormic

    Hormic

    Joined:
    Aug 12, 2014
    Posts:
    251
    I started today with the manual and i have a problem with the merged scenes, so i can't choose the SciFiPlatform
    to manipulate the handles and the same thing with the Meshing around scene. (it works when i delete the gameobject and then load the SciFiPlatform alone from the Library, then i'm able to manipulate the handles, but not in the predefined scene) Seems it is because of the ground layer? Thanks for hints, how i have to select an object properly when there are multiple objects in the same AXModel Gameobject. :)
     
  34. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420

    Hallo @Ulven2 - welcome aboard! Randomly selecting input meshes from a list is on the way. We will also have a LOD level-style set of percentage slider to set the frequency of each mesh in the list. Eventually a rule editor ta boot!

    Deformer and Deteriorator nodes will help as well so that you randomize not just the inputs, but the meshes themselves.
     
    Last edited: Apr 10, 2017
  35. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Hi @Wavinator - thanks! The material bug fix will be in an update available next week.
     
    Wavinator likes this.
  36. Kiwi-Hawk

    Kiwi-Hawk

    Joined:
    Jul 17, 2015
    Posts:
    288
    Kia ora

    Jus got this and about to blow whats left of my brain cells lol. starting from no knowledge at all Iwas working through the doc tutorials and I'm doing the one with the circle breaking out a corner of the rectangle and you added a bit to break out an opening, (with me now I hope) I had raised the height to make it a room. two things. First when I tried to put the new shape, the circle for the cut out in the room

    (Step 6.9: Instantiate a Circle Shape and connect its output to the Plan
    input of the Extrude node, automatically creating a ShapeMerger
    node in between. Move the Circle and resize it to build out the
    interior space.)

    This just broke stuff I had to do it manually so I'm wondering did I get something wrong earlier in the process maybe. Any way I got it sorted and had a room interior with walls, floor and ceiling,
    BUT when I got the rectangle placed and used the difference Rail to conect the rectangle for the opening thats to be my doorway I lost my floor and ceiling. I'm maybe getting carried away here but thought if I got this sorted I could then duplicate it, turn off backfaces so that the walls etc where facing out, expand it slightly and have exterior walls to make an open world style house like say Witcher 3 and or an instanced style like say Skyrim.

    Yes I know I'm running and I barley learn to walk and can only take maybe two steps.Bloke's gotta try right


    Edit I tried the process over again but
    Step 6.9:
    Instantiate a Circle Shape and connect its output to the Plan
    input of the Extrude node, automatically creating a ShapeMerger
    node in between. Move the Circle and resize it to build out the
    interior space.

    Did not work for me. tho in thinking about it. at one point I had a thrid person Char in a scene to do some running about testing with and I could not do any edits at all, seems there maybe some issue with "Invector-3rdPersonController". That needs to be installed inot a project to start with so not sure if it change's some thing ths needs I would not have thought itwould need to but.
     
    Last edited: Apr 8, 2017
  37. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420

    We don't have a spiral lathe yet :(, but you can fudge it with a StairRepeater:

    Archimatix 2017-03-26_11-14-17_PM.jpg

    I like the idea of scaling along the length of the sweep!;)
     
  38. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,402
    This literally made my jaw drop. Even the quality of the tutorial videos is very polished.

    Could you please answer a few questions? Sorry if they have been asked already. I looked through the thread but its a very popular one (unsurprisingly) and there's a lot of entries.

    1. Can the end result be "baked" into an fbx or object? (something we could apply decimation to externally if needed)
    2. Or can the object be "finalized"? do we end up with a regular textured polygon/group of polygons without scripts attached? (so i could set small objects to close culling and larger ones far etc, or is it ine big object at the end?)
    3. Can we control the number of vertices in a generated object?

    Just really mind-blowing, impressive stuff here. Great work.
     
    Last edited: Apr 8, 2017
    roryo likes this.
  39. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    hey @protopop

    I can answer your questions.

    1) AX does not currently support export to FBX or OBJ, though it is planned. If you need one, PM me, I have one I wrote that is 100% working with AX.
    2) Yes the object can be "finalized" This is called Stamping. Once you are done with your model, top right of the graph screen is a stamp button.
    3) Not sure i follow the question. You can control the number of vertices to some extent, by controlling things like segments used in circles and radius's, but there is no way to say "Dont use more the X verts"
     
    eelstork, punk, roryo and 1 other person like this.
  40. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,402
    Thank you:) This looks like a winner. I love node graphs in terrain software, so i can imagine their power here. I'll try it out.
     
  41. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,028
    Awesome work pal. I bought this though I have no time to work with it currently as i am building a CAD VR project visualization tool suite for the AEC industry. I am awaiting the runtime version because I don't think the head honchoes get what i am talking about in using this toolset for a realtime interactive VR architectural designer. But if I go to a meeting with the Oculus touch controllers and set them like light sabers and start dragging out a floor shape, drag up and then out along the edges the 2x4 framing, pull up some drywall, toss a doorway here and adjust some windows there I think the bean counter in them will suddenly see the pile of beans in front of them and I didn't even start on the ceilings, molding or cabinetry and casework:). On this model above the upper walkway should not slope with the terrain from inside to outside. Maybe with your node magic you can have a falloff node for this deformer that allows only the portion below a certain percentile of height be deformed to the terrain below, or only the Y position value changes.
     
    Xx-Dr-Pepper-xX, neoshaman and roryo like this.
  42. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,485
    Thanks. Any bridges that you add I would be happy for to see those too.
     
    roryo likes this.
  43. JacobFalling

    JacobFalling

    Joined:
    Apr 27, 2014
    Posts:
    22
    I will skip a great many meals if this workflow materializes. Archimatix and Surforge are two of the best tools out there now. Considering Quixel as well. Seems pretty powerful for its price point.
     
    pixelsteam, roryo and punk like this.
  44. TITAN_MIK

    TITAN_MIK

    Joined:
    Oct 16, 2016
    Posts:
    2
    Ah nuts can't believe I missed the discount window to buy this! :'( It looks brilliant!
     
    roryo likes this.
  45. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,028
    When is runtime creation and manipulation slated for? Kyle will probably bitch and moan but you can just tell him he will be a big star in real time and to go sit down, shut up and reorganize his Mecanim circuits.:)
     
    roryo likes this.
  46. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Hi @Hormic - sorry for the delayed response. I was at an academic conference for architectural history all weekend. In my talk I showed some realtime AX and it was a bit of a hit!

    I am not sure I understand the problem you encountered. If you could post a screen grab video showing the problem with selection, that might be helpful. By the way, I use Capto for video capture.

    Keep in mind that you can't use the hierarchy window to select an object under the AXModel. Only selection in the scene view or the node graph works.
     
    pixelsteam likes this.
  47. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Hi @Kiwi-Hawk - sounds like you are jumping in head first! Sorry about the tutorial being out of date on how the ShapeMerger is automatically inserted in-between. The current behavior is that one shape replaces another while connecting. To automatically insert a ShapeMerger now, you can hold down the Windows button while connecting (soon to be RMB) or command-click on OS-X. I will update the tutorials soon.

    If you turn backfaces on, then the caps will reverse, because at that point AX is assuming you want an interior model (even if you still have Sides on. If you want a model with interior and exterior, it might be easier to have thickened walls. Also, keep in mind that you can also use the Plan shape to generate separate extrudes for floors and ceilings, etc.
     
    Last edited: Apr 10, 2017
    wetcircuit likes this.
  48. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Hi @protopop - thanks for your feedback! Per you third question, in addition to controlling the number of verts icy keeping an eye on the segs parameter in source shapes, there is a Detail Level master control on the lower right corner of the node graph editor window that lets you reduce the segs parameter wherever it is, effectively reducing verts and triangles everywhere. You can slide this detail control back and forth in realtime until you are happy with the look vs. triangle count. You can also stamp out LOD versions at that point. In the future you will be able to ask AX to create an LOD group automatically.

    LOD.gif

    Archimatix 2017-02-16_08-57-00_AM.jpg
     
    protopop likes this.
  49. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Surforge and I are working out adjustments to smooth workflow between the two as we speak! Thanks so much for you nice comment!
     
    frbrz, faduci, chelnok and 2 others like this.
  50. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,420
    Robot Kyle has been behaving himself since the launch, and just between you and me, I think he is liking the idea of being a silver screen Mecanim star some day. Of course the runtime architecture will upstage up, but he doesn't need to know that just yet...
     
    pixelsteam likes this.
unityunity