Search Unity

  1. Get the latest news, tutorials and offers directly to your inbox with our newsletters. Sign up now.
    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. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    224
    There are 3 parts to any product:
    1: It works as prescribed. 2: It fails should it be used against its boundaries. 3: It has operational failures.
    If one stays objective and with in the guidelines of operational boundaries then parts 1 and 3 are the only applications.
    I threw a lot at this product and am well pleased. It isn't Maya but its close to geometry based Autocad type work.
    Warping or booleaning models is where the delineation arises. This is not a bad thing but just a boundary one has to find the limits of.
    Just a pleased messenger who shoots himself in the foot in an ongoing basis.
     
    mick129 likes this.
  2. arie1994

    arie1994

    Joined:
    Jun 30, 2016
    Posts:
    81
    can you explain it more? In what node do you put the randomization line that you wrote ? How does the texture look like- it seams that it matches the length of the building wall. I wish i could have such a cool example in archimatix but most examples are not building but abstract shapes and such
     
  3. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,336
    2D shapes use Turtle Script. The 3D mesh nodes don't..., but every 3D node connects to a 2D shape. So add the random line (and the parameter it sets) on the 2D node that's already connected.

    It might help to think about each AX mesh as a cluster of nodes working together: a local group (or a cell) within the larger model. Control parameters you want to randomize might be anywhere within the 'cell', but the logic script will run only when the 2D shape rebuilds (called by script, or one of its parameters is reset).
     
  4. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    224
    I am working with the ImageShaper node. I have a Rorschach ink blot 5 image that is on a transparent background.
    I have named it RorySchAx5. Cute, huh?
    Well I only see any height to it when I poke the first two turtle lines with X of 0. The 3d model appears and then goes flat.
    When the 3d appears it does not show my material but the default Ax model of red grid on blue background for less than one second. My material selection only appears when the model is flat.
    I believe I am following the node guidelines of positive Y and negative X. Not sure what to modify next.

    upload_2021-4-11_23-21-11.png
     
  5. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    224
    The imageShaper node seems a little quirky or the incoming image has to be special in some way.
    The previous image was made a transparent in Gimp. This image came from imgbin and left as is.
    This effort could take a lot of manipulation to try and find what is necessary for a correct output.
    In a previous attempt I had used a jpg that showed the potential for transparency but it just produced a tapered box like seen here in the center. I just verified if this attempt here could be residual artifact from the previous node attempt.
    It is not. I deleted the texture and shaper nodes, reinstituted them and received the same output.
    upload_2021-4-12_12-42-53.png
     
  6. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,935
    It seems like using two different materials for an extrude and the extrude's bottom cap means you can't combine them into one mesh?
    vent_2meshes.png
    vent_2_stamp.png
     
  7. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    I installed Archimatix in Unity 2019.4b24 using IOS for the build target.

    It works except I get these error messages when I open the graph window

    Cannot access pixel data of compressed texture formats which cannot be partially decompressed (such as Crunch).
    UnityEngine.Texture2D:GetPixels (int,int,int,int)
    AXEditorUtilities:textureFromSprite (UnityEngine.Sprite) (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:43)
    AXEditorUtilities:loaduiIcons () (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:64)
    AXNodeGraphEditorWindow:OnEnable () (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:376)
    UnityEditor.EditorWindow:GetWindow (System.Type)
    AXNodeGraphEditorWindow:Init () (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:45)

    and

    UnityException: Texture 'zz-AXIcons-CurvePointEditing' is not configured correctly to allow GetPixels
    UnityEngine.Texture2D.GetPixels (System.Int32 x, System.Int32 y, System.Int32 blockWidth, System.Int32 blockHeight) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Texture.bindings.cs:310)
    AXEditorUtilities.textureFromSprite (UnityEngine.Sprite sprite) (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:43)
    AXEditorUtilities.loaduiIcons () (at Assets/Archimatix/Scripts/Editor/AXEditorUtilities.cs:64)
    AXNodeGraphEditorWindow.OnEnable () (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:376)
    UnityEditor.EditorWindow:GetWindow(Type)
    AXNodeGraphEditorWindow:Init() (at Assets/Archimatix/Scripts/Editor/NodeGraph/AXNodeGraphEditorWindow.cs:45)

    And the nodes seem to be missing things like the hamburger menu to select delete etc. They are still there because if I hover over the area I see the words "menu" appear, and I can click the area and the options show up, but I don't see the on the actual node.

    Screen Shot 2021-04-27 at 10.58.43 PM.png

    Also I dont know if this is the way it should work, but the 2d shapes open up a separate window, instead of being visible in the left side of the graph window itself

    Screen Shot 2021-04-27 at 11.07.19 PM.png
     
  8. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    Can we disable the Archimatix popup that appears when we start Unity?
     
  9. villaman

    villaman

    Joined:
    Apr 21, 2021
    Posts:
    3
    Hello everyone,

    I am new to Archimatix and am kind of stuck on something. Great product btw!

    I'm trying to create a custom node to transform some input to some output. Specifically, the input has six floats and the output is a single Float[].

    The node also an additional 6 float parameters.

    So the node is conceptually something like:

    float[] = node_transform(float1input, float2input,...... float6input, float1parameter, float2parameter, .... )

    Now I'm trying to use the CustomNode to accomplish this. The first thing I noticed is that CustomNode seems to be not a generic transformation, but wants to generate a mesh specifically. I guess I could generate a dummy mesh.

    In the example CustomNode, none of the outputs other than the mesh seem to be generated. So, some of the questions I have are:
    1. Where would I initialize the output float[]. It's a fixed length array of 6 floats.
    something like
    float[] my_output_floats = new Float[6];
    2. Where (in which method) would I set the output values of float[]
    3. In the example code, the parameter "amount" is used, but none of the inputs (such as TestInt, TestFloat and TestBool are used. How would the inputs be used. Would one declare local variables for them like the example does for the parameters?
    4. Do I need to generate a dummy mesh, or can I just return null, while still setting the outputs I do need. I would just never connect the output mesh to anything.
    5. Would this dummy mesh approach? Or should I be overriding some other class to do a generic transformation.

    I did read earlier in the comment thread that the author is in favor of big node transformations rather than lots of little one. The transformation I'm doing above is in World 3D space. However if I tried to do this in the source node, there are 12 fields that can trigger the output which means this complex expression would have to be copied to 12 fields. To make matters worse, I would typically connect say N of these custom nodes to a source node. That means there would be 12xN complex expressions that have to be copied in lots of places. Making this a separate node is vastly easier for my use case.

    On a separate note. In the node editor, parameters of type float[] and Custom do not seem to be working. The UI gets kind of messed up. In the case of float[] I can set it, but then when I collapse it, the name of the parameter seems to get obscured. Additionally if I connect a float[] output of one node to the float[] input of another node, the editor seems to disallow making the connection. In the case of "Custom" parameter type, the node UI seems completely messed up. I am running Archimatix 1.2.9 on Window under Unity 2020.3.4f1. Has anyone else seen this issue?

    Assuming I was able to get them working, what is the idea behind Custom? Is it essentially a way to pass any object without type checking? If yes, would such an object have to implement any particular interface? For example, if I wanted to pass Vector3, would I just use Custom?

    In general, a user-creatable GENERIC transform node I think would be extremely valuable. But I hope I am able to work around this with the CustomNode as implemented today.

    thanks,
     
  10. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,336
  11. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,328
    Was that random music playing with the video? :)
     
    wetcircuit likes this.
  12. villaman

    villaman

    Joined:
    Apr 21, 2021
    Posts:
    3
    ok, I didn't get a response to my long-winded question about using a custom node as a general transformer :( Through a bunch of trial and error, I got *almost* everything to work.

    There are still two things I'm having an issue with.

    If we think of a series of nodes N1->T->N2, where T is the general transform using a CustomNode, the two problems I'm still facing are:

    1. When I update some values in N1 which are connected to T, I see them update in T. However, those same values in T which are connected to N2, don't seem to update their corresponding values in N2. If I manually modify those values in T, they *do* update N2. Is there some method in the CustomNode class to call to force propagation of values onwards?

    For example, let's say I have a parameter N1.val1 which is connected to T.val2. Now let's say T.val3 is some function of T.Val2 and this "transformation" function is implemented in the custom node T. Finally T.Val3 is connected to N2.Val4.

    So the whole chain at the parameter level looks like

    [N1.val1] -> [(T.val2) -> (T.val3)] -> N2.val4.

    In this example, changing N1.val1 changes T.val2 as well as T.val3 as expected. But the change does not propagate to N2.val4. If I directly edit T.val3, however, the change *does* propagate to N2.val4.

    2. I'm still not having much luck getting a FloatList to work or even to connect.

    Any pointers will be much appreciated.
     
  13. villaman

    villaman

    Joined:
    Apr 21, 2021
    Posts:
    3
    ok, I got problem #1 above fixed. I was setting the FloatVal property of the parameter instead of calling the setValue method which "ripples" the changes forward :)

    So, that leaves the last issue of supporting a FloatList.
     
  14. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,336
    roryo and hopeful like this.
  15. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470

    I found a solution

    the side shapes now show on the left of the graph editor, and the nodes show the node options drop down.

    I manually changed the zz-axicons-curvepoint image compression to none.

    Maybe its because im using iOS or a conflict on my project because it doesn't have this problem in a clean project.

    Screen Shot 2021-05-04 at 6.55.59 PM.png
     
    wetcircuit likes this.
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    Hi @protopop - The AX popup should only display after you have installed a new version of AX or after you have imported AX into a new Project for the first time. Is this happening more frequently for you? If so, what version of Unity and AX are you seeing this in?
     
    protopop likes this.
  17. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    Thanks for looking into this, @protopop. I just tried to change the compression to none, but it won't let me. Did you use the compression option pulldown in the "Override for PC, Mac and Standalone" area in the inspector for the Sprite?
     
    protopop likes this.
  18. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    Thanks:) I thought I was seeing it multiple times but its not popping up. It must be because I was installing it in so many projects while I tested it out that I thought it was multiple popups. I'm sorry about the confusion and thanks for the cool asset.
     
  19. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    No overrides (see attached). When I import AX in the DEFAULT tab it has automatic compression selected. Maybe its because this is an IOS project? In the build settings panel (attached) it says compression: default so maybe the iOS version of unity compresses AX imported graphics automatically? And its seems to be just the "zz-axicons-curvepoint" that needs to be explicitly set to compression none for AX to work perfectly in the IOS project. (I haven't tested it in android but I will eventually)

    Screen Shot 2021-05-05 at 1.22.50 PM.png Screen Shot 2021-05-05 at 1.23.19 PM.png

    Screen Shot 2021-05-05 at 1.22.57 PM.png Screen Shot 2021-05-05 at 1.23.02 PM.png
     
  20. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,336
    My pseudo-maze node from the last tutorial…. adding some basic interior walls.

     
    hopeful likes this.
  21. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    Thanks for pointing this error out, @protopop - it should be fixed in AX and I'll post a new version to the AssetStore today. ;)
     
    protopop and hopeful like this.
  22. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    An ImageShaper tutorial hot off the press!

    Image2Mesh.png

    Screen Shot 2021-05-07 at 5.49.04 PM.png

     
    protopop, wetcircuit and hopeful like this.
  23. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    After installing Archimatix, when I make a change to my code and come back to unity, the tiny compile wheel spins but when it stops there is a pause about 40 seconds while the wheel freezes (before this was a few seconds).

    I uninstalled Archimatix and the pause goes back to what is was before I installed AX of about 3 seconds.

    I did some googling and it suggested the pause could be caused by code that executes after an assembly reload? I dont know enough about this, but is there anything in AX that might cause this behaviour, like after a recompile that might pause the editor for a bit? Even a guess will help.

    PS im working on dungeons using AX - such a great asset :)
    tomb.jpg
     
    roryo and wetcircuit like this.
  24. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,336
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    This image is amazing! How can I explore that space!?

    Per the startup time: when a scene reloads in the editor, AX must be recompiled (though this only takes a few seconds). Then AX searches the Asset folder to see if there are any custom nodes or Library items outside the AX folder. This could be more efficient if it were required that custom nodes and Library items had to be inside a specific folder. As it is currently, the larger your project, the more files that AX has to sift through.
     
    protopop likes this.
  26. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    Thats probably it - my project is 25gb with many folders:) When you say a scene reloads, does that include when we change a script then come back to teh editor and it recompiles? Or is that only when we actually open a scene in the editor?

    Thanks about the image. I'm using AX for dungeons in my game Wilderless - It'll be in update 1.6. I used AX also to make the dungeons and castle in Nimian Legends Vandgels.
     
    roryo likes this.
  27. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    The scene reloads aggressively, including after a script edit or adding a new Asset such as an image. I will go ahead and try to limit the search for nodes and library items. This is long overdue!

    I just downloaded Nimian Legends Vandgels - transporting!!! Congrats. I'll checkout Wilderness too. Are you the sole developer?
     
    protopop likes this.
  28. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,456
    A vintage Robot Kyle scene from the early days of Archimatix...

    Voila_Capture 2017-02-15_10-07-55_AM.jpg

    Voila_Capture 2017-02-15_10-07-57_AM.jpg
     
    protopop likes this.
  29. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,470
    Thanks:) Yes that might help, or maybe a checkmark like Only Check Library Folder or something? AX is so useful I prefer to use it inside the project so I can test designs live.

    I think it auto corrected Vandgels to transporting:) Thanks for trying these - AX was a life saver for Vadgels castle because it was such a large building, and yes im a solo dev, I love making open world games.
     
unityunity