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. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    The ShearDeformer is almost ready to go:

    RoofShearDeformer.gif


    If we then feed the ShearDeformer into a DomicalDeformer:

    RoofDomeDeformer.gif


    And that into a TaperDeformer:

    roofTaperDeformer.gif

    Whoohoo! :)
     
    DasBiot, antoripa, P_Jong and 17 others like this.
  2. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,011
    Amazing!
     
    roryo likes this.
  3. red2blue

    red2blue

    Joined:
    Feb 26, 2013
    Posts:
    200
    Looks fantatstic!
     
    roryo likes this.
  4. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    93
    These gifs are basically the equivalent to porn for people like us. I loved that twisted wall. Not so much the squash and stretch roof though. Can these deformers be applied to a part instead of to the whole thing? like with the roof can you deform the shingles without bending the support beams? Or with the wall can you twist the wall but have the sunroof and the runner at the same angle relative to the floor?
     
    TeagansDad, roryo and red2blue like this.
  5. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    That's some hot GameObject on GameObject action going down there. 18+
     
    TeagansDad, protopop, roryo and 3 others like this.
  6. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    943
    It's getting more and more tempting to buy this :D I just wish I had the spare cash at the moment to do so :(
     
    TeagansDad and roryo like this.
  7. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Yes, you have fine control over what parts get deformed when by placing deformers at different places in the node graph. Here the shingles were fed into a noise Deformer before being fed into a Grouper, which itself was fed into the ShearDeformer, etc. If you want two parts to be deformed by a PlanShape, but only one part twist, then you could feed each part into two different PlanDeformers that share the same Plan input. I hope that all makes sense! :)
     
  8. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Modeled right in the Unity editor with Archimatix!

    Archimatix 2017-09-05_06-20-44_PM.jpg

    Archimatix 2017-09-05_06-21-19_PM.jpg
     
    Last edited: Sep 5, 2017
    DasBiot, punk, antoripa and 4 others like this.
  9. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    Kyle stood by the fireplace, admiring his new invisible walls. Now where exactly was the door....
     
    elbows, wetcircuit and roryo like this.
  10. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    It does seem a bit drafty, doesn't it? :eek:
     
    wetcircuit likes this.
  11. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    93
    The expression is built from the ground up but Kyle likes to be different and built this house from the sky down
     
    Whippets and roryo like this.
  12. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,209
    THe only thing this asset doesn't do aside coffee is art direction, I guess we can have a node for that too, who knows? LMAO
     
    roryo likes this.
  13. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    943
    roryo and Arganth like this.
  14. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Hi @smada-luap - There are only two meshes out put by this model: the chimney has 368 triangles and the wooden roof structure has 2540 triangles (as depicted above, but this changes as you alter the length parameter of the roof, adding rafters). Since each mesh has one material, this would be two draw calls. :)
     
    Last edited: Sep 6, 2017
  15. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    943
    So you can feed in atlased textures then?
     
    roryo likes this.
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Yes, you can use texture atlases. Generally speaking, parametrics work well with tiled textures, so that as you expand, lengthen or adjust any other parameters, you never run into texture boundaries. However, you can always readjust your UV's in Archimatix after altering the form.

    I have been meaning to do a tutorial on texturing for some time, so your question has pushed me over the edge! I will create the tutorial soon, but I'll post some of the main points here.

    A simple example of using an atlas is to model a barrel (aren't you glad its not a crate!?).

    Here's what it looks like.

    Archimatix 2017-09-06_06-10-15_PM.jpg



    Before hooking up any nodes, we can start with an atlas like this (forgive the quick&dirty attempt a barrel texture!):

    Archimatix 2017-09-06_06-08-55_PM2.jpg

    We can then grab a Cylinder from the Library, make its bevel zero, add a slight Lip and LipEdge and then feed a MaterialTool node into it:

    Archimatix 2017-09-06_06-19-19_PM.jpg

    As you can see in the above image, the atlas needs to be aligned with the mesh. This can be done in two ways: 1. is to shift and scale the texture using the controls in the MaterialTool and 2. modify the parameters until the form lines up with the atlas.

    We want to align the TopCap of the Extrude independently, so we can add a new MaterialTool to feed into the TopCapMaterial input in the Extrude.


    Archimatix 2017-09-06_06-27-26_PM.jpg

    Now, if we feed the Extrude into the newest Deformer, the InflateDeformer, we can add a portly bulge to the barrel:

    InflateDeformerBarel.gif

    At the end of the GIF, I shifted the TopCapMaterial to show how the atlas can slide around.

    The InflateDeformer does not misalign the texture. Increasing the radius of the barrel would not affect the side alignment of the atlas, but we would have to scale up the top texture to the size of the resulting larger TopCap.

    This barrel is combined as one mesh and has only one material, so it would be one draw call. ;)
     
    JasonCG, antoripa, TeagansDad and 4 others like this.
  17. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    93
    the crate joke. I have seen a lot of tutorials on texturing a crate. I think this is the first I've seen about texturing a barrel.
     
    neoshaman and roryo like this.
  18. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Hi @PlatformSix - this issue has (finally!) been fixed. The problem was that the rail uprights were being fed into the PlanRepeater as Cell Meshes instead of Node Meshes. Cell Meshes span with a leap between Node Mesh positions. You can make the switch yourself, or wait for the imminent release of v1.0.8, which has the change in the LighthouseBase Library item.


    Archimatix 2017-09-06_09-36-47_PM.jpg

    Archimatix 2017-09-06_09-41-31_PM.jpg

    Archimatix 2017-09-06_09-48-45_PM.jpg

    Archimatix 2017-09-06_09-52-40_PM.jpg

    Modeled right in the Unity editor with Archimatix!
     
    Last edited: Sep 7, 2017
    DasBiot, neoshaman and TeagansDad like this.
  19. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,065
    I just followed what Roryo posted above about building the wall and window using these kind of put together pieces - you can see it and my examples above. That saved a lot because i repeated it in all the walls. The other big saver was to use a Plane Primitive (i didnt even notice it at first) instead of boxes for windows, and also stretching a single plane across long flat walls with multiple windows wherever there was a stright long hallway. Final verts was about 23,000. I like to post screenshots so i will probably post some once i finish the fine tuning - oh yeah, i also saved as i learned with things like reducing the riser in the steps - there can be a LOT of verts in those if you are not careful. You can disable the collider on the stairs and then add your own slanted box collider, which also has the benefit of making characters go smoothly up the steps instead of jumping a bit wth each step - this way you can use rougher steps but still have a smooth climb - no one will really notice. And i also saved a lot with my spiral ramps, which are made up of blocks that are in a step repeater - you can turn off the caps to save verts, then just position them so each next step in the ramp meets the last one, so you never see it.

    Actually it would be amazing for reducing verts if we could turn of any side of an object, or at least a 6 sided one, with checkmarks. Right now i do a lot of spinning and turning to make sure the right sides or caps are off.
     
    awesomedata likes this.
  20. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,065
    Thanks:) I use grouper a lot - i guess I'm a groupie:)
     
    roryo likes this.
  21. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Thanks for these tips, @protopop!

    Can't wait to see your pics!
     
  22. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    811
    I agree about the bool for the sides. I've suggested the hiding various sides of a shape extrusion with checkboxes before, but never got a real reply about it.

    You've got to post some screens showing off the plane and spiral staircase / stairs stuff, as I think those sound really interesting. In fact, having some screenshots of the geo and the nodes to achieve the geometry for various parts of your castle would be quite useful to newbies since creating graphs can be quite daunting to some types of artists, especially those used to working with traditional modeling software.

    Either way, thanks for sharing the tips nonetheless. :)
     
  23. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    413
    Any pointers on the best way to use with the new runtime Navmesh system? I'd hate to have pockets of rogue navmesh on rails and stuff. Say for example in this picture I'd like the NavMesh to be on the floor and stairs but not, say on top of the dome...

     
  24. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    If you you do not have NavMesh selected in the static flags for a node, then the GameObjects that node generates should also not be NavMesh static. Hope this helps! ;)
     
  25. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    413
    I'm sorry, I can't seem to find the static flag option for individual nodes... Do you mean checking the main "static" option on the AXModel Gameobject in the Inspector? That is more for the legacy way of baking navmeshes... I suppose a better question for me would be whether I can set certain extrude or grouper nodes to be on different layers (I.e. walls vs walkways) that way the NavMeshSurface.cs that I add to the main AXModel will generate a runtime navmesh using only the walkways layer...

    Thx
     
    RuinsOfFeyrin likes this.
  26. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    In the inspector, at each node listing, you can set the static flags, the layer and the tag for each individual node. When you select a node in the graph, or an object in the scene, it is listed under the model's items in the Inspector. All the upstream nodes from the selected node are listed in the inspector as well.
     
    protopop likes this.
  27. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    548
    That is something I'm very interested in too. What if it were implemented similar to the Loft tool in 3ds Max? Meaning instead of using a single shape and spline for a PlanSweep, you can instead have multiple shapes (like starting with a square and ending in a circle).


    To get something similar to what @Nevercallmebyname described, you'd loft using FreeCurves instead of closed shapes (the yellow and green lines in his screenshot look like they're actually the same path spline).
     
    roryo likes this.
  28. StaffanEk

    StaffanEk

    Joined:
    Jul 13, 2012
    Posts:
    380
    If every 2d shape had it's UV coordinates for X or Y directions, then this would become quite a killer feature.
     
  29. ibyte

    ibyte

    Joined:
    Aug 14, 2009
    Posts:
    908
    Archimatix on sale - inst-a-buy
     
    roryo likes this.
  30. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    @Jingle-Fett, for lofting in Max, do the source splines need to have the same number of vertices? Or does the result always always have the same number of vertices? If so, this will be much easier to implement. It will be great to make parametric ship''s hulls, etc.
     
  31. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Yes - this is a must-have feature!
     
  32. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Thanks, @ibyte! The Asset Store has included Archimatix in their Back to School sale: 50% off! If you have been thinking of getting a copy of AX, now is the time to strike!
     
    protopop likes this.
  33. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    548
    In 3ds Max they don't need to have the same number of vertices no, it seems like the system adapts automatically but I don't know what's going on under the hood. Here's an example video where the person makes a screwdriver out of various shapes (including circles, a rectangle for the flat head, and a cog-like shape for the grip).

    Just in case it's helpful, I modified the loft of the second screenshot to show how one of the contour shapes has only 3 points and then the other shape had more points added to it (so you can see how the wireframe of the mesh changed).


    I'm glad you agree about the ship hulls! That's actually precisely why I'm interested in this feature. I'm visualizing being able to create the hull of a ship using the loft and then reusing the contour shapes to generate the frame of the ship, the support beams and girders and other details.

    Also +1 insta buy since it's on sale, just got it.
     
  34. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    93
    I never actualy knew that Max could do that...
    I need to go try it out.
     
  35. vivredraco

    vivredraco

    Joined:
    Jan 19, 2016
    Posts:
    22
    Archimatix is an extremely impressive tool. Still, I have some questions about it's practicality for actual game use. My concern is that it seems to be designed to generate entire buildings as a single, monolithic mesh. I'm no expert, but I've always been under the impression that part of why we build environments out of small prefabs is for performance benefits provided by instancing. So a building built up out of multiple small prefabs (say, floor tiles and wall segments) should provide better performance than generating the building as a giant mesh. The other reason this is usually done, as I understand it, is for occlusion culling. If your entire building is a huge mesh, the whole thing has to be rendered continuously, whereas in a building built out of smaller prefabs, only a small part of it that you can currently see will be rendered.

    @roryo, can you comment on this? Can this tool be used to layout small prefabs in an efficient way, or is there something I'm misunderstanding about performance that renders that unnecessary?
     
  36. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    Hey @vivredraco
    I can answer your question. Archimatix does not generate just a single mesh. You have control over when/where/if meshes are combined.
     
    vivredraco likes this.
  37. vivredraco

    vivredraco

    Joined:
    Jan 19, 2016
    Posts:
    22
  38. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    The Shape List grid repeater is intended to simply lay out shapes in a grid for extrusion.

    The Mesh package has the Mesh Repeater node which has the ability to repeat a list Meshes that you have generated using other nodes (Including the Prefab Instancer), however it does not have the ability to repeat an entire prefab GameObject (just the mesh) or other AX Models.

    I do have a Prefab List, and List Selector on my radar for nodes to add to my packages, but I haven't gotten that far yet. Though my focus on nodes is entirely driven by what people seem the most interested in, so if this is something a lot of people would like i can certainly move it up in priority.
     
    vivredraco likes this.
  39. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Welcome aboard, @Jingle-Fett!

    The key aspect of lofting is the morphing from one shape to another. The intermediate shapes are then positioned along the plan spline and triangulated.
     
    Jingle-Fett likes this.
  40. vivredraco

    vivredraco

    Joined:
    Jan 19, 2016
    Posts:
    22
    In your opinion, do you think that's going to be an extremely valuable node to have, or do you think I'm overestimating the importance of using prefabs?
     
  41. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    I most certainly do think it will be an import node to have. That is why its on my list ;)

    I think the ability to use Prefabs in an AX model is something that is seriously underestimated, and not focused on enough. Or maybe everyone is to busy using prefabs to talk about using prefabs, lol.

    It nice to design a sweet parametric house, but its WAY cooler to design a parametric house that is filled with prefabed furniture that moves around inside the house based on its layout/room sizes, etc etc
     
    wetcircuit likes this.
  42. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    The Prefab node allows you to include any 3rd party Mesh and use it in the graph to be repeated, deformed, etc.

    Here is Robot Kyle distributed around an arctic beach by a GridRepeater with Jitter in Translation and Rotation, and with a Terrain added for Y-position.

    Robot Kyle Chronicles.053.jpeg
    The distributed Prefabs can have any behaviors on them. So each of these Robot Kyles could start walking around a NavMesh after being distributed.

    Archimatix objects can also be given rigid bodies. This wall has been completely generated by AX, but it could just as well be a distribution of Prefab blocks:
    TppleWall.gif
     
  43. vivredraco

    vivredraco

    Joined:
    Jan 19, 2016
    Posts:
    22
    That's really cool. So you're saying those blocks would still be prefabs, not just meshes copied from a prefab?
     
  44. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    That's right. The repeater nodes actually Instantiates the Prefab that the Prefab node has a reference to. So they are GameObjects in the scene as though they had been instantiated by any script or had been dragged into the scene from the Project window.

    Here are Robot Kyles that were instantiated by a repeater, strutting their stuff with all the behavior of their prefab source.
    KyleWalking.gif
     
    vivredraco likes this.
  45. vivredraco

    vivredraco

    Joined:
    Jan 19, 2016
    Posts:
    22
    Dude... That is so cool, and I had no idea it could do this from the store page. As amazing as AX already sounded, I think your store page is actually underselling how awesome it is.
     
    chelnok likes this.
  46. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,367
    Thanks for this feedback, @vivredraco! I think I sometimes confuse easy-to-impliment as a node with not as useful as more challenging ones. A classic developer vs. marketing error! As @RuinsOfFeyrin just put it, "the ability to use Prefabs in an AX model is something that is seriously underestimated."

    I will try to add some more awareness of the Prefab abilities of AX to the store page and else where.

    Here is a Prefab being fed into a TwistDeformer node:

    PrefabTwist.gif
     
    chelnok and RuinsOfFeyrin like this.
  47. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    I actually had no Idea that the entire GameObject was instanced from a prefab node, not just the mesh. I'm going to have to go back and look at the code for my Mesh Nodes and make sure that they are doing this the same way when interacting with prefab nodes. If so, this means that all the nodes in the Mesh Pack will properly work with instancing the entire prefab as well. And if not, I will be fixing it immediately and updating!
     
  48. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    93
    I tried it. It's got some great uses but wont do what I want to do. I want to define the shape for the edges of a square area and have it blend across the middle. Like say if I want two touching sides to have a U shape in the middle then the third side is a ramp and the fourth is flat with a pole on one side. If I tried to get that result through lofting it would go all over the place.
     
  49. TomTumbler

    TomTumbler

    Joined:
    Dec 1, 2014
    Posts:
    187
    Hi there,

    I'm new to Archimatix. It looks interesting but I'm not sure... should I buy it? If I'm right, Archimatix is similar to ProCores Probuilder. So, what's the main differences? On the first look, it seems, that Archimatix has more power in create infinite structures but Probuilder can create more individual structures. I need some advise. ;)
     
  50. dnoparker

    dnoparker

    Joined:
    Aug 28, 2013
    Posts:
    60
    Are the handles snappable yet?