Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    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. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    It may not look like much yet, but AX has its first Curve3D Extrude Mesher!

    Capto_Capture 2019-04-04_03-47-05_PM.jpg

    Not only piping is now possible, but ramps and rails too. :)
     
  2. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Adding some more railing bits:

    Capto_Capture 2019-04-04_03-56-45_PM.jpg

    Of course, we will also need a Curve3DRepeater so we can place objects along the path.
     
  3. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,094
    Can it do rotation?

    iu-1.jpeg

    hmm, maybe I should ask, can it interpolate rotation?
     
    rgarrett7, roryo and syscrusher like this.
  4. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Yes, there could be a loop-the-loop Curve3D generator. Then that could be fed into the extruder. I just need to figure out a way to tell the up vector to stay relative to the path.
     
    syscrusher and wetcircuit like this.
  5. logixworx

    logixworx

    Joined:
    Jun 29, 2017
    Posts:
    72
    how soon can we expect this release? :)
     
  6. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    It should be ready to go in a couple weeks. ;)
     
    Flurgle and syscrusher like this.
  7. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,002
    FWIW, you'll want to have a multi-mode setting for that:
    • Local up interpolates along the spline between the directionality of the applicable control points.
    • Local up is locked to the up dircection of the first control point.
    • Local up is locked to the world up.
    There are use-cases for all three of these modes.

    You may find you also want to offer modality to the control points, settable for each point:
    • Locked to world up.
    • Interpolated between the adjacent control points, weight inversely proportional to the distance from each of the two adjacent points.
    • Manually controlled by the designer rotating the control point as desired.
     
    Eva-Dragonflame likes this.
  8. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    107
    considering that you want this effect ONLY for the loop itself I'd actually make the track and the loop separately and then combine them at the end.
     
  9. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,094
    Been thinking…

    The model should align to the path, so what we need is maybe just 1 parameter for "tilt" or "angle".

    0 is up. Positive numbers rotate (in degrees?) clockwise (perpendicular to the path), negative angles tilt counter-clockwise…?

    Then each 3D marker is a vector-4.
     
  10. chiapet1021

    chiapet1021

    Joined:
    Jun 5, 2013
    Posts:
    604
    Will it be possible (whether on initial release or as in a planned future release) to deform meshes that are extruded along a 3D curve? Tapering, twisting, etc. from one end to the other?
     
    roryo and syscrusher like this.
  11. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,002
    Interesting idea, but I'm not sure about the model always aligning to the path -- hence my suggestion of optional modes. We may be misunderstanding each other about what we're trying to say, because expressing 4D concepts in linear text is ... nontrivial. :)

    Part of the question comes down to whether the orientation should be parametric or manually edited, so perhaps what you suggest becomes one mode within the context of my multi-mode scenario.

    Of course, ultimately only one vote matters, that of @roryo. :)
     
    wetcircuit and roryo like this.
  12. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,094
    The one Rory showed is an "3D extrude mesher", so I think that's like a snake or a hose, basically. I guess you could extrude sideways, but I see why that might not be the idea… Hmmm. but yeah, I bet if I thought long enough I could think up a reason I need it...

    (Ooh! I just remembered something I needed 3D Extrude for when making the rooftop tutorials, the eaves under a gable!)

    What are the other 3D things… 3D Path Repeater…? That one maybe should have an external controller like the radial repeater, or the Jitters….

    3D Path Deformer…? hmmm.

    Is there a 3D Lathe? Is that a screw or spiral?
     
    Last edited: Apr 6, 2019
    syscrusher, roryo and chiapet1021 like this.
  13. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    34
    Oh great!! I somehow missed your reply. So a belated "Thank you!"
    Works perfectly :-D
     
    roryo likes this.
  14. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Hi @syscrusher - thanks for this. You are ushering me into a world of cross products and vector quaternion manipulations! These all make sense.
     
  15. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Path3DRepeater with Jitter and Path3DDeformer, to be sure!
     
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Yes, this should be relatively easy to implement using a deformation lattice that is in the geometry of the Curve3D.
     
    chiapet1021 likes this.
  17. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,002
    Let me know if you need a beta tester for this. I've worked with Curvy quite a bit so can give you some feedback from that perspective. I recommend not trying to replicate everything Curvy does so well, but rather do what AX does well but "New! Improved! Now with splines!", so to speak, and maybe we (I?) can work up a thin integration plugin between the two assets.
     
    wetcircuit likes this.
  18. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,002
    It occurs to me that one challenging part of this new feature will be how to gracefully handle joining more than one of them at a junction.

    I like your thinking here, because there are all kinds of ramps and things that could be done more easily this way than with existing nodes. Since the spline relies on control points, though, could this be achieved by combining the existing linear and radial arrays to distribute control points at (for example) every 60 degrees as it rotates, and advance it longitudinally with each rotational increment. I'm not sure if existing nodes can do this or if we'd need a new combo node, but that node could be useful for placing prefabs also.

    Speaking of which, @roryo, please provide some way for us to attach a user-defined prefab to your spline control points, if you haven't already thought of that. :)
     
    wetcircuit likes this.
  19. koblavi

    koblavi

    Joined:
    Oct 1, 2010
    Posts:
    49
    I Keep getting the following error when I load archimax "
    Cannot access pixel data of compressed texture formats which cannot be partially decompressed (such as Crunch).
    UnityEngine.Texture2D:GetPixels(Int32, Int32, Int32, Int32)
    AXEditorUtilities:textureFromSprite(Sprite) (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:41)
    AXEditorUtilities:loaduiIcons() (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:78)
    AXNodeGraphEditorWindow:OnEnable() (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:3
    "

    I am Using 2018.3.12. and I am using the Light Weight Render Pipeline experimental package in this project. My other projects that do not use LWRP do not have this issue.
    upload_2019-4-12_0-8-31.png
     
  20. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    The long wait is almost over - the new Curve3D Extrude will be able to help with a Great Wall of China. The Curve3D Repeater will help with towers and crenellation.

    GreatWall.gif
     
  21. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Thanks for posting this, @koblavi - I'll take a look.
     
  22. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,094
    :oops::eek:o_O:confused:

    okay, yeah. And also narrow streets that are just facades and medieval walls...

    So cool! I have sooooo many plans….

    iu-2.jpeg
     
    roryo likes this.
  23. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    107
    it's like stepping out of a time machine and being handed the keys to your flying car
     
  24. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    869

    That means we're finally getting WinWall?? :D :D :D


    -- Err.. Wait.. I guess there was more to that sentence...

    3d procedural splines are still cool tho. :)
     
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    As a short diversion, I am experimenting with adding edge wear to Extrudes as an automatically generated decal.

    Capto_Capture 2019-04-12_07-11-26_PM.jpg

    The cost is this Box goes from 12 triangles to 60. :eek:

    Capto_Capture 2019-04-12_07-18-37_PM.jpg

    Though it would be cheaper than an edge shader and works around the fact that parametric things can't have painted atlases unless they are Stamped.

    This effect could also be achieve with Vertex colors, but the Box would still need 60 triangles to support this.
     
    Hitch42, awesomedata and wetcircuit like this.
  26. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,094
    Edge decals would be useful on a lot of things… If I understand it correctly.
    Mainly keeping window textures away from corners.
     
  27. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    869
    That's a neat idea. If this is optional, I'd say go for it.

    Edges in general can be a huge hassle to detect though; do you think this would still work okay with the Boolean windows in Winwall -- especially where curves are concerned?
     
  28. Hitch42

    Hitch42

    Joined:
    May 12, 2015
    Posts:
    97
    Very nice. This reminds me of the Worn Edges asset, which produces some nice effects, but hasn't been updated in a long time. Maybe that can serve as some inspiration.
     
  29. koblavi

    koblavi

    Joined:
    Oct 1, 2010
    Posts:
    49
    I fixed it by changing the image format of this file: Assets/Archimatix/ui/GeneralIcons/zz-AXIcons-CurvePointEditing.png
    to RGBA 32 Bit uncompressed. This works find without errors but also means having a bulky 4MB file.
     
  30. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Thanks, @koblavi - that's a big help. I wonder why this having trouble in the LWRP in particular? I will see if I can find a smaller file format for it, but in the meantime, it is m=nice to know that RGBA 32 Bit uncompressed works at least.
     
  31. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Thanks for pointing to that asset, @Hitch42. That asset seems to paint atlas textures for you so you don't have to go to Substance Painter, etc. The trick with tiled textures that are parametrically adaptive is to get a worn edges effect without an atlas. Certainly great for inspiration, though!
     
  32. Ryan-Hayle

    Ryan-Hayle

    Joined:
    Feb 16, 2014
    Posts:
    69
    Hi, I would be interested in purchasing this asset to make houses. Can Archimatix quickly build internal and external houses? I have just watched your Winwall video, is this available to use?
     
  33. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Hi @Ryan-Hayle - It would depend on the type of house. If you are making designs that are one-off with several rooms and connecting doors, ProBuilder may be a better tool. When WinWall arrives, it will help with exterior fenestrated facades, but not necessarily with interior rooms. For the latter, there is another set of nodes on the drawing board tentatively titled Roomer and Planner that will make interior layouts easy to do. These nodes are several months away though. Hope that helps!
     
    MorpheusXI and christougher like this.
  34. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    18
    Hey!

    I've been a user of Archimatix for the past year and a half, and recently upgraded my project from 1.0.10 to the latest version. (I haven't upgraded since 2017).

    I'm having major difficulties after the upgrade, as all of my architecture seems to be bugged.

    My game consists of primarily gothic architecture, and I'm a heavy user of the 'Gothic Arch' 2D node.

    However, after the upgrade, all of the arches seem to be completely broken (which means I would have to basically redo every model in the game I've made so far.) The gothic arch node was a little bit broken in the past, but now it seems to be completely unusable. The 'width' does not match at all with the arch's width, and increasing the spring/height results in very buggy behavior.

    I've posted an example screenshot. Is there any way to fix this? I've tried editing the logic for the 'arch' node itself, but had no results. I also compared the scripts for the arch nodes. It seems the node script is exactly the same, but there must be some underlying change in the C# code which messed with the arches.

    Unfortunately, I might have to stay on 1.0.10 until this issue is fixed, as it's very critical to my project.

    I greatly appreciate it!



    **UPDATE:
    It seems like there is an exception coming from the 'ExpressionParser' on line 570, in the Archimatix\Scripts\Core\plugins\ExpressionParser.cs file if this helps your search.
    Thanks!

     

    Attached Files:

    Last edited: Apr 22, 2019
  35. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    107
    holy shiitake mushrooms. Look at what you've built!
     
  36. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Great model, @markefus! Thanks for posting the bug. I should have a fix shortly.
     
  37. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Ok - fixed! The fix will in the build I push to the asset store later this week. :)

    Capto_Capture 2019-04-22_01-42-07_PM.jpg


    Cathedral.gif


    Capto_Capture 2019-04-22_02-41-43_PM.jpg

    Capto_Capture 2019-04-22_02-42-31_PM.jpg
     
    Last edited: Apr 22, 2019
    Hitch42 and wetcircuit like this.
  38. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    18
    Thank you!! I really appreciate it! Looking forward to upgrading.

    I like your cathedral, I'm glad that post inspired you!

    Thanks! That's the old gray-box version of the cathedral which I used to block out the space. I've been working on the real version over the last few weeks, should be done fairly soon :)

    ----

    Also another quick bug I came across, if you have time to fix it before the next release.

    I use a lot of prefab instancer nodes in Archimatix, and it seems like there are some small bugs with these nodes.

    For example.

    (Some of these were bugs in 1.0.11, and might have been fixed but I haven't properly tested).

    -When saving an object in my Archimatix library which uses prefab instances, it doesn't save references to the prefabs and the nodes are blank.
    -When duplicating groups with prefab instances, it doesn't save references to the prefabs and the nodes are blank.

    (I can confirm this is a bug in the latest version, but NOT in version 1.0.11)
    -Prefab instancers and pair repeaters don't play nicely together.
    I haven't tested prefab instancer -> pair repeater directly, but:
    Using prefab instancer -> linear repeater -> pair repeater, does NOT render objects. They are broken and invisible?
    Using prefab instancer -> linear repeater alone works just fine.

    This bug is a bit more tedious. I can work around this by using linear repeaters instead of pair repeaters, but this means I would have to rewire some of my architecture with different numbers. My measurements are pretty precise so it would cost me a few hours.

    If there is a fix to this, I would greatly appreciate it as well!

    ---

    I'll upload pictures of the new cathedral when it's done as tribute :)
     
    Last edited: Apr 22, 2019
  39. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    The first bugs above have been fixed, so you can save groupers with Prefabs to the library and duplicate them.

    I can confirm that prefab instancer -> linear repeater -> pair repeater does not work. I will see if I can squeeze a fix into the forthcoming build. ;)

    Looking forward to the images!
     
  40. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Some more tests with arcades:
    Capto_Capture 2019-04-22_07-49-15_PM.jpg Capto_Capture 2019-04-22_07-51-20_PM.jpg


    Arcade.gif
     
  41. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    18
    Awesome, thank you so much!
     
  42. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    While we wish we had 3d booleans in Archimatix, its amazing how powerful 2d booleans can be. In this Lighthouse Base example, the plan is just an "I"-Shape merged with a Circle:

    LighthouseBase.gif
     
  43. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Just for fun - a quick low-poly building modeled in a minute with Archimatix. 338 triangles :)

    Capto_Capture 2019-04-23_02-07-56_PM.jpg


    Capto_Capture 2019-04-23_02-07-27_PM.jpg
     
  44. iddqd

    iddqd

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

    I'm trying to make a variation of the TerrainDeformer, so I made a copy, added ICustomNode and the Icon. Now it shows up, but when I use the node, the Terrain Prefab Input field is missing on my version:

    upload_2019-4-26_12-38-46.png

    Any idea what I'm doing wrong here? I checked if I need to add it with the
    customNodeGUIZone_1 from http://www.archimatix.com/manual/creating-custom-nodes - but the code doesn't seem to apply anymore.

    Also, will it be possible to assign the "Terrain" at runtime somehow?

    Many thanks
     
  45. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    403
    I have another question regarding the PrefabInstancer - the way I see it, this turns Prefabs into Archimatix Objects, so they can also be modified - which is really great.

    But is there also a way to spawn Prefabs but keeping them in their original state - I'm thinking of spawning Speedtree bushes LOD, so they will continue to sway in the wind.

    If that's not possible, then I guess I could do this with a post-script, or perhaps one could just create invisible spawn positions with AX and then place the bushes there afterwards.
     
    Last edited: Apr 26, 2019
  46. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Hi @iddqd - if you feed a PrefabInstancer node into any Repeater node, it simply instances the GameObject with no modifications, so that it should have all its behaviors still working.

    Robot Kyle Chronicles.053.jpeg

    Here Robot Kyle has been fed into a GridRepeater with Jitter.

    (I'll get to your previous question in a bit ;))
     
    iddqd likes this.
  47. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,388
    Here are Robot Kyles distributed by a GridRepeater in action:

    2016-11-28 17_29_10.gif

    This was originally posted a ways back in this forum.
     
  48. iddqd

    iddqd

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

    Great, thanks a lot for explaining. Perfect.
     
  49. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    107
    ok so imagine this, 6 pipes running side by side but occasionally they cross each other randomly. The set this up manually is over 100 different segments so it would be better to build it parametrically but can Archimatics do it?
     
  50. markefus

    markefus

    Joined:
    Nov 2, 2014
    Posts:
    18
    Hey!

    Any idea when that new version will be released? I'm looking forward to it :)