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,479
    Hi @13Flo - welcome aboard!

    Archimatix snapping mode is built in. When you are edit mode in FreeCurve (or anytime you have an Archimatix model selected), a menu appears at the bottom of the SceneView window. On the right side of that, you'll find a checkbox labeled "Snap". If you check that, you will be in grid snapping mode. To the right of that checkbox is a grid size field so you can adjust the granularity of the snapping.

    Alternatively, if you are not in grid snapping mode, if you hold down the Cntrl key it will enter grid snapping mode. Likewise, if you are in grid snapping mode, holding down the Ctrl key will temporarily relax grid snapping.

    Snapping.gif

    This snapping also works for any handles, 2D or 3D.

    Snapping2.gif
     
    Last edited: Feb 11, 2019
    syscrusher likes this.
  2. FloBeber

    FloBeber

    Joined:
    Jun 9, 2015
    Posts:
    166
    Thank you for your fast and very explanatory reply.

    How did I miss that? :eek:

    I'm working on an infinite runner/racing game for which I'm creating chunks of roads that will connect to each other. I'm trying to find a user friendly way to iterate on those chunks efficiently and it seems like Archimatix is the best option. Some of those chunks/road must split in two (in a Y shape). Is it something I can achieve with Archimatix? Should I use 2 FreeCurve nodes? I should figure it out with the documentation (which is great by the way), but any help would be much appreciated!
     

    Attached Files:

    • Y.jpg
      Y.jpg
      File size:
      27.8 KB
      Views:
      658
  3. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Have I ever mentioned, that you are awesome ;-) ....well, you are AWESOME!
     
    syscrusher, atomicjoe and roryo like this.
  4. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi, I just began to use Archimatix 2 weeks ago and I am loving it!

    As you mentioned automatic LODs would be a great addition, but what I am most interested in are these winwall features you where talking about ..... to make walls with adjustable windows more or less out of the box would be great indeed!
    Is there any timeframe when we can expect this winwall feature?
     
  5. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Ah and one little noob question: when I use the free curve tool to draw a curve: how can I have a blank background for doing it...I know I can disable all AX models, but I have so many parts (groups) to disable, that that´s a pain to do...is there a simple workaround for that?
     
  6. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    The current official release is actually a "beta": AX 1.2.0b3:cool:

    That means there are several "in progress" nodes included at the bottom of the mesher/repeater/deformer sidebar menu (the right-side of the AX graph).

    Brave folks who have some time to experiment should try hooking them up in a graph and seeing what they can do. (I'm not aware of any instructions for these nodes, if you get results please share!)

    Constructive feedback and forum chatter are probably the best way to encourage their development…. and an explanatory gif from Rory. :p
     
    photonic likes this.
  7. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    One way to make a Y-Shaped segment of roadway by feeding a FreeCurve into a PairRepeater2D and then thickening the output:

    Y_Road.gif

    The road surface is fairly straight forward, since it is just the thickened, PairRepeated lines. The edges are a bit trickier, since you have have to cut the ends of the shape to get "rails that can be used in a PlanSweep. To do this, you can PlanRepeat2D a thin Rectangle as a Corner shape and then feed the result into another PairRepeater and then into a ShapeMerger. Use the RailDifference as the Plan input for the PlanSweep.

    Here is the graph:

    Capto_Capture 2019-02-11_04-22-52_PM.jpg

    ;)
     
    syscrusher, photonic, ftejada and 2 others like this.
  8. FloBeber

    FloBeber

    Joined:
    Jun 9, 2015
    Posts:
    166
    AWESOME!

    One last question: are you aware of any issues regarding nested prefab? I haven't spent enough time on AX yet, but let say I have that Y shaped road nested in two different prefabs -- when I'll want to make change to that Y road, would updating one also update the other?

    I could probably try this when I get back home, but I'm still curious about nested prefab support in general :)
     
  9. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Me too!
    Let's say I have made a column with AX and I use it inside a larger AX model of a temple.
    The thing is, I would like to do plenty of temples, not only one.
    Would the columns in the temples be updated if I change the single original parametric column?
    I know you can do this for each temple separately, but a way to reference objects across other objects would be really useful. :)
     
  10. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,104
    This looks awesome! I'm eager to try it out. It will be interesting to see how you make it interact with the Unit LOD Group feature, or what you do instead of that if not.
     
  11. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    I keep getting errors with Unity 2018.3.5f1 (works fine on 2018.2)
    AX still doesn't work even after changing language settings in windows:
    Code (CSharp):
    1. MissingMethodException: Default constructor not found for type AXPoly2Tri.Polygon
    2. System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    3. System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    4. System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Threading.StackCrawlMark& stackMark) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    5. System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    6. System.Activator.CreateInstance (System.Type type) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    7. AX.AXParametricObject.instantiateGenerator () (at Assets/Archimatix/Scripts/Core/AXParametricObject.cs:4369)
    8. AX.AXParametricObject.onDeserialize () (at Assets/Archimatix/Scripts/Core/AXParametricObject.cs:1791)
    9. AX.AXModel.cleanGraph () (at Assets/Archimatix/Scripts/Core/AXModel.cs:1234)
    10. AX.AXModel.OnEnable () (at Assets/Archimatix/Scripts/Core/AXModel.cs:675)
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. AX.Generators.Extrude.pollControlValuesFromParmeters () (at Assets/Archimatix/Scripts/Core/Generators/Meshers/Extrude.cs:152)
    3. AX.AXModel.regenerateAXMeshes (System.Boolean doCacheTheThumbnails) (at Assets/Archimatix/Scripts/Core/AXModel.cs:3095)
    4. AX.AXModel.Start () (at Assets/Archimatix/Scripts/Core/AXModel.cs:756)
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. AX.GeneratorHandlers.GeneratorHandler.getGeneratorHandler (AX.AXParametricObject po) (at Assets/Archimatix/Scripts/Editor/GeneratorHandlers/GeneratorHandler.cs:77)
    3. AXEditor.ArchimatixEngine.SceneGUI (UnityEditor.SceneView sceneView) (at Assets/Archimatix/Scripts/Editor/ArchimatixEngine.cs:1604)
    4. UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2845)
    5. UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2122)
    6. UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1983)
    7. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    8. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    9. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    10. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    11. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
    12. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
    13. UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
    14. UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBorder, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:361)
    15. UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:320)
    16. UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:244)
    17. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    18.  
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. AX.GeneratorHandlers.GeneratorHandler.getGeneratorHandler (AX.AXParametricObject po) (at Assets/Archimatix/Scripts/Editor/GeneratorHandlers/GeneratorHandler.cs:77)
    3. AXEditor.ArchimatixEngine.SceneGUI (UnityEditor.SceneView sceneView) (at Assets/Archimatix/Scripts/Editor/ArchimatixEngine.cs:1604)
    4. UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2845)
    5. UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2122)
    6. UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1983)
    7. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    8. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    9. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    10. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    11. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
    12. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
    13. UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
    14. UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBorder, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:361)
    15. UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:320)
    16. UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266)
    17. UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438)
    18. UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent () (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:412)
    19. UnityEngine.Experimental.UIElements.ImmediateStylePainter.DrawImmediate (System.Action callback) (at C:/buildslave/unity/build/Modules/UIElements/ImmediateStylePainter.cs:113)
    20. UnityEngine.Experimental.UIElements.IMGUIContainer.DoRepaint (UnityEngine.Experimental.UIElements.IStylePainter painter) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:98)
    21. UnityEngine.Experimental.UIElements.VisualElement.Repaint (UnityEngine.Experimental.UIElements.IStylePainter painter) (at C:/buildslave/unity/build/Modules/UIElements/VisualElement.cs:862)
    22. UnityEngine.Experimental.UIElements.VisualTreeRepaintUpdater.PaintSubTree (UnityEngine.Experimental.UIElements.VisualElement root, UnityEngine.Matrix4x4 offset, System.Boolean shouldClip, System.Boolean shouldCache, UnityEngine.Rect currentGlobalClip) (at C:/buildslave/unity/build/Modules/UIElements/VisualTreeRepaintUpdater.cs:310)
    23. UnityEngine.Experimental.UIElements.VisualTreeRepaintUpdater.PaintSubTreeChildren (UnityEngine.Experimental.UIElements.VisualElement root, UnityEngine.Matrix4x4 offset, System.Boolean shouldClip, System.Boolean shouldCache, UnityEngine.Rect textureClip) (at C:/buildslave/unity/build/Modules/UIElements/VisualTreeRepaintUpdater.cs:328)
    24. UnityEngine.Experimental.UIElements.VisualTreeRepaintUpdater.PaintSubTree (UnityEngine.Experimental.UIElements.VisualElement root, UnityEngine.Matrix4x4 offset, System.Boolean shouldClip, System.Boolean shouldCache, UnityEngine.Rect currentGlobalClip) (at C:/buildslave/unity/build/Modules/UIElements/VisualTreeRepaintUpdater.cs:314)
    25. UnityEngine.Experimental.UIElements.VisualTreeRepaintUpdater.Update () (at C:/buildslave/unity/build/Modules/UIElements/VisualTreeRepaintUpdater.cs:35)
    26. UnityEngine.Experimental.UIElements.VisualTreeUpdater.UpdateVisualTree () (at C:/buildslave/unity/build/Modules/UIElements/VisualTreeUpdater.cs:70)
    27. UnityEngine.Experimental.UIElements.Panel.Repaint (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:507)
    28. UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:230)
    29. UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:68)
    30. UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)
    31.  
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. AX.GeneratorHandlers.GeneratorHandler.getGeneratorHandler (AX.AXParametricObject po) (at Assets/Archimatix/Scripts/Editor/GeneratorHandlers/GeneratorHandler.cs:77)
    3. AXEditor.ArchimatixEngine.SceneGUI (UnityEditor.SceneView sceneView) (at Assets/Archimatix/Scripts/Editor/ArchimatixEngine.cs:1604)
    4. UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2845)
    5. UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2122)
    6. UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1983)
    7. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    8. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    9. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    10. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <d7ac571ca2d04b2f981d0d886fa067cf>:0)
    11. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
    12. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
    13. UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
    14. UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBorder, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:361)
    15. UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:320)
    16. UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:244)
    17. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
     
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks for posting this, @atomicjoe - and for your patience with 2018.3 issues. This is the first time a Unity version has given AX problems. At least switching languages fixed the earlier bug (as a work around). This new bug seems system-level as well. In their support of AX, Unity gave me hotline support for situations like this, so I will give them a holler. ;)
     
    led_bet and atomicjoe like this.
  13. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    Hi! I'm trying something new with Archimatix and was wondering if it is possible to change the material per face? I noticed that RuinsOfFeyrin was working on some texture combining nodes. Did anything come of this?

    Thanks for your time!
     
    L0ve3d likes this.
  14. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @ledbetterman - Would an example of what you are looking for be a cube where each face has a different material? If so, you could have four separate lines for the plan that each feed into their own extrude. The sizes could be locked in by relations. DO you have a concept image you could share?
     
  15. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    Thanks for the swift reply!

    I'm moreso conceptualizing a room building tool somewhat like the sims build mode, where each meter-wide wall piece can have its own internal and external material per panel, like this:

    http://i.imgur.com/fs61cqe.png
     
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks - that image is very helpful. It seems like the player would drag some handles to set the shape of the house and then choose a material from the library and start clicking on tiles in the wall to turn those tiles into that material. If so, then I think the easiest thing would be to have AX create the tiles and then stamp the model. Then your app code code just set the material for each tile based on the players clicking. Does this sound right?
     
    led_bet likes this.
  17. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    I think so! Does this contend with being able to change the interior and exterior wall materials seperately?

    I'm still a noob with AX, when you say stamp, do you just mean extrude the final shape?
     
  18. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Stamp is when you sort of freeze the model and strip it of its parametrics. This way as the player adds data (material choices) to each object, it doesn't get lost if on resizes the plan, etc. So the player would manipulate the building parametrically and then, when satisfied with the layout, "freeze" the model and then start choosing materials for each tile. Yes, inside and outside tiles could be separate GameObjects.
     
  19. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    Cool, okay. I'll keep an eye out for that functionality as I continue to work through the tutorials you have online (I think I'm still a bit too green with AX to ask smarter questions :p). I'll come back when I've got a few test projects under my belt.

    Thanks again for pointing me in the right direction.
     
    roryo likes this.
  20. FloBeber

    FloBeber

    Joined:
    Jun 9, 2015
    Posts:
    166
    I have to say that I'm quite disappointed by Archimatix. It is very high priced for what you actually get.
    It doesn't feel like a final product at all, and is very buggy (at least on 2018.3.5 which is the version I use)

    - UX in general is pretty bad
    • ParametricObjects are not rendered when opening a scene. I need to click Render on every one of them every time I reopen the scene.
    • The inspector doesn't always show the selected node ("Model defaults" instead). I still don't know why sometimes it does, and sometimes it does
    • Saving a ParametricObjects in the Library won't save Tags, Layers, MeshRenderer state etc... every time you instantiate something from the library, you'll have to re-assign the settings to every single node
    • Editing the Library is a nightmare. It takes forever.
    • CTRL + SHIFT + L to save in the library don't work
    • Editing any object is extremely slow, something like 20 fps when dragging a point of a line with a simple extrude (I have an i7 CPU, 32 GB of RAM and a GTX 1080). Same thing for the Archmatix window.
    • Snap state and size are not saved ever. If you reload the scene where your ParametricObjects are, you'll have to set them again.
    • Kyle is being added many times in the same scene. This should also be off by default.
    • Turning a ParametricObjects into a Prefab do not remember the last saved location. You'll have to browse every single time you want to edit/export.
    • It does not integrate well with the new nested prefab feature
    • The code is full of commented lines and the formatting is chaotic
    • totally useless logs are constantly displayed in the console (for example, one line per instantiated object with PlanRepeater)
    Also, the PDF documentation is not helping much. It only gives general guidelines. The online one is slightly better, but sometimes out of date. The only way to learn is to play with all the settings and see what happens. The

    To be honest, I wish the AssetStore had a refund request feature at that point. Unfortunately, Archimatix can not be part of my workflow. I understand how complicated procedural mesh generation is. But asking 80 Euros for this is way too much.
     
    CapeskinJon likes this.
  21. dariakarpova

    dariakarpova

    Joined:
    Nov 1, 2017
    Posts:
    3
    Hi everyone! Thanks for helping me out with the earlier question, I'm back with another weird one.
    Would it be possible to add a mural to the Archimatix-generated building? If it's a flat wall, one could simply use a plane and place it very close to the wall in question, but what if it's a domed ceiling or an organic curved wall, would it be possible to somehow "paint on walls" or include the artwork into the initial process but in a non-tile-able way?
     
  22. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    558
    I suppose you could look at Houdini if that suits you better. It has a workflow for importing into unity. It'll run you $269 for the indie license. @roryo is pretty responsive to constructive criticism and I'm sure he'll look at your list as ways to improve what is, in my opinion, a quite polished and underpriced tool. Also I know you probably won't want to put more money into it, but have a look at the additional Archimatix tools on the asset store. I've got the master pack in my cart as we speak lol.

     
    Last edited: Feb 16, 2019
    atomicjoe likes this.
  23. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Unity has a few ways to deal with this. You might try a decal or projector.
     
  24. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @13Flo - thanks for taking the time to compile this list. Its really helpful, since some of these items are the kinds of things that people get frustrated with, but then overlook as they get used to the UX as it is. Fortunately many of these things are easy to knock out, such as the saving of tags, layers, mesh rendering states to library items and print statements. Some appear to be 2018.3 issues. For example, the library saving and having to rebuild the model on scene open bugs were introduced in with 2018.3. For some reason, 2018 is the first Unity version that has generated many issues for AX. I'm not sure why, since they don't relate to the use of deprecated api calls. Getting AX inline with 2018.3 is the highest priority for me at the moment - not only the new bugs, but the nested prefabs as well.

    I am happy to process a refund for you. If you PM me with your asset store invoice id, I'll submit it right away. ;)

    Thanks again for taking the time to compile this list!

    Cheers,
    Rory
     
    Last edited: Feb 16, 2019
    syscrusher and atomicjoe like this.
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @dariakarpova - great question!

    There is a trick you can use to add a secondary texture to walls a curved surfaces. If you feed the plan or section shapes into separate Meshers with a slight offset, you can add a material with a texture that has an alpha channel. Here is an example from an early post on this thread:

    Archimatix 2015-04-23_01-13-23_PM.jpg

    Archimatix 2015-04-23_04-00-09_PM2.jpg

    Here the graffiti is a texture on a shell that is an extrude from a slight offset plan used to make the wall extrude. The wall has a tiled texture and the the graffiti is a one-off texture. To save triangles, you could also subtract most of the original plan and use the Rail output to make the mural mesh.
     
    photonic, ftejada and led_bet like this.
  26. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    1,869
    Just a precision here: it's $269 A YEAR or $399 for 2 years. And that's the indie license...
    Archimatix is not working well with 2018.3 and higher for the moment due to recent changes in Unity.
    Download Unity 2018.2 and test it there. That's what I did to learn it, until the next update fixes the 2018.3 problems.
    I can attest @roryo is actively working on fixing this.
    Unity has an habit of breaking things on arbitrary updates. That's specially true for the 2018.3 update, which introduced nested prefabs and deep localization changes that can easily break third party assets.
     
    syscrusher, wetcircuit and led_bet like this.
  27. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Ok - I fixed the missing nodes problem in 2018.3. Now on to the rest of the 2018.3 mysteries... ;)
     
    Last edited: Feb 18, 2019
  28. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    558
    Heya, here again with some questions. I'm trying to figure out how to use Turtle script in AX. I'm trying to bridge my runtime maze generator to generate one large shape for Archimatix. Current workflow with the maze is to place 1x1 prefabs (3D meshes) into a grid, (say 10x10) as it builds. I want to actually just use the shape of the prefabs (using Turtle script) to draw one large shape in AX to extrude. I'm confused where I would actually add the runtime bits of turtle script... I've looked at http://www.archimatix.com/manual/archimatix-turtle-script-api but I'm still confused where to begin. And again the maze would be generated at runtime, so this might be a bit more complicated then I planned on... Thx!
     
  29. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @christougher - this post might help.
     
    EnriquePage91 and christougher like this.
  30. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi again, it really would be great if you could answer my questions, please :)

    When I use the free curve tool to draw a curve: how can I have a blank background for doing it...I know I can disable all AX models, but I have so many parts (groups) to disable, that that´s a pain to do...is there a simple workaround for that?
    (If I have a complex model and I draw a new curve it is so hard to see what I am drawing.....)

    To make walls with adjustable windows more or less out of the box would be great indeed!
    Is there any timeframe when we can expect this winwall feature?
    (I tried to experiment with the node but as far as I can see it only makes square windows and I can not change the shape of the windows, therefore my question about a timeframe ...do you think it will be useable within the next 2-3 months?)

    Thanks a lot!
     
  31. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @L0ve3d - Its not possible to solo the FreeCurve at the moment. I think the best way to allow for focused editing of a FreeCurve would be to have a separate window with 2D space for editing. You would still see and be able to edit the curve in the Scene View, but having an additional orthogonal view would certainly help. Since AX relies on the combination of 2D curves, this 2D editing view would be a great addition. Let me take a look at how long it would take to get rolling.

    For WinWall, I think be the end of March. ;)
     
  32. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi Roryo,
    wow that would be amazing! (2D editing view and winwall)
    Thank you so much for looking into it :)
     
  33. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    At first glance, it doesn't look like it will be too hard to implement a Shape Editor Window. More to come... :)

    ShapeEditorWindow.gif
     
  34. EnriquePage91

    EnriquePage91

    Joined:
    Jul 2, 2015
    Posts:
    67
    Hello!

    Just purchased Archimatix PRO a few days ago and I must say I am very pleased with the package as of right now. I have used Houdini Sverchok and Substance Designer quite a lot in the past so a lot of this feels very natural to me and I have been able to use the system to build quite some nice simple tools already.

    I have two questions however:


    1) I like doing stuff procedurally, and would love to code a script that will automatically extract the parameters from an AX Model and build a UI for it. I haven't gotten to the scripting part yet since I am still building a few models to try this out (on a quick glance at the website however, it seems like it should be doable). However, one problem I am running into, is that I REALLY, REALLY, like bools especially in the inspector.

    I would like to use a bool parameter (let's say) "extrude" that could modify the value of an integer from 0 to 1. I would then multiply the extrudeHeight parameter that I've exposed to the inspector by the "extrude" integer so that whenever I am "not extruding", the height of such extrusion is 0.

    I know it would be simpler to hook the bool parameter to the "enabled" bool of the extrude node, but I don't want to deactivate the operation, this is simply an example and my case is quite different internally.

    I've wanted to be able to add stuff to my expressions, based on whether a bool is active or not, and thought the simpler way of doing this would be to multiply such "conditional additive value" by an integer that ranges from 0 to 1. I figured that it would be simple to hook that integer to an actual bool parameter that I could expose afterwards, but I just can't find any way of doing this. It is very frustrating, because it just feels like I should be able to. Unfortunately there are no expressions for bool parameters which ultimately means I can't simply derive the value of the integer from an expression. What would you recommend doing in order to control such type of things with booleans? It would be nice to be able to multiply a float value by a bool in an expression to either actually factor such operation or not into the expression (I hope I am getting my point across, unfortunately english isn't my first language).

    I know I could simply use the integer value as the parameter, and have it minmaxed at 0 and 1 correspondingly, however this is not only "ugly" in the inspector, but makes the procedural extraction of the parameters to build the UI afterwards, a little bit fuzzier, as I would then need to check every integer value to know whether it's an integer or an "integer bool" before actually building a UI for it. I know it might be "picky", but I really think this should be a simple thing. Really, most of the necessary tools to do so are already built in for all other data types. Perhaps a "cast bool to integer" node would be useful?

    NOTE: I guess I could look into coding such things myself, however these feel like "essential" tools for node-based parametric tools such as Archimatix, so hopefully there will already be a solution or you can point me out into the fastest, easiest way to do this for someone who just started using your package.


    2) I've noticed that whenever I don't have an AX Model selected, I cannot change the parameter values on it's inspector (if for example I lock the inspector to it, before changing my selection). I am guessing it's because the context has been lost, however I was wondering...: If I script my own utility to extract such parameters and generate a UI, I should be able to call a "rebuild" even while in the Editor right? so that whenever I actually modify them on the Editor (not just at run-time), they affect the asset regardless of whether it is selected or not.

    I would really like to see this as it is very annoying to have the asset selected when modifying its parameters - many of the widgets and outlines get on the way and it is hard to judge whether the asset looks right or not. This often leads to a need to deselect it in order to be able to fully appreciate it before continuing with the inspector modifications. Unfortunately when doing so (at least in 2018.3), sometimes the asset dissapears and one must reselect it in the Hierarchy which causes it to once again render all the widgets (effectively re-starting the whole process) before one can deselect it again and hope it stays visible (I mean, I know how to keep it visible now, but it's clearly a "glitch" that needs to be fixed and I can elaborate on how to reproduce it if you need more context). If I can write a script that takes control of the AX_Model script and calls the rebuild function after modifying any of it's parameters, this should enable me to modify the parameters in the inspector without having the AX_Model itself selected right? This could be a temporary fix for my workflow while you address such issues internally in a more elegant manner (I have read 2018.3 has been bad to your Asset, sorry about that).

    3) This is perhaps more of a "comment" than a question, but I would like to point out that the documentation although great to start, seems a little weak on the scripting part and "intermediate subjects" and forward. I've seen there's a lot of tutorials posted by you which makes a huge difference at the beginning stages when someone is only getting into such type of node-based procedural workflows, and I can say after watching a lot of them (and all of 3d Lunatics videos), that they are sufficient to start. However, after a certain point, it feels like everything must be "tested out" on our own. For the past 2 days (I've had the asset for 4 days now), I've spent most of my time trying to find the right answers online or on the website, as to how to do a few things. Most of my time was spent looking for answers that I never found. I am sure some of these are out there, perhaps amongst the almost 70 pages on this forum (terror OMG). But it's a bit hard finding "intermediate" content to keep learning about your package.

    I think it would be best for you to perhaps better document instances of incredibly helpful comments (and questions) such as the following:


    I have a feeling there are quite a few gems like these "lost in the forum" that would better fit a post in your website as documentation. I hope you can consider in the future adding stuff like this to it! Especially if you can somehow figure out a way of iterating on your website quickly. I know it's way simpler to post on a forum than to add stuff to a website but... if you could perhaps create the documentation for such useful questions beforehand, and then referred them to it instead of explaining it on the comment itself, you could somewhat tackle both issues at the sametime (although naturally this might mean you'll take longer to reply to some questions perhaps, but it might be worth considering it when they are really that good).

    Especially since it seems you are VERY active in the forums, and quite helpful to your customers... I think in the long run, posting some of that info on the website as perhaps "tutorials" or in specific "topics" and then referring the people to it would be far better for your product. Not that the incredible feedback on the forums is an ISSUE! naturally it is all the opposite ;) thanks for being so helpful by the way, but you know what I mean - as otherwise you will probably find yourself explaining the same things far more often to different people or referring them to an old comment like you just did (which is where the idea of referring them to "new docs" instead of through a comment came from).

    I hope this won't come off as rude! As for your product... I LOVE IT! For the price I got it, I couldn't be happier.

    I was ready to pay for another year of damned Houdini Indie and honestly I am not happy at all with the Houdini Engine's license. It's INCREDIBLE as a Software (and I would seriously hope and encourage you to consider implementing 3d Operations such as 3D boolean or vertex group based operations like Houdini does, but I wouldn't hold you to it as I know it's a lot and your software is not on the same price range nor do you have many people working behind the curtains like they do), but the fact that we can't use the Houdini Engine in real-time in an actual game makes the whole procedural workflow a bit weak for me. It's like they gave us the most delicious candy out there, but right before giving it to us, they made sure to give it a good hard lick all around so no one would actually want to eat it anymore, although internally we all kinda crave it.

    The fact that Archimatix PRO can be used in real-time, is to even more important than the "lacking" features in comparison to Houdini. I can safely say that I feel like I've CHEATED you out of your product because this is amazing.

    The only thing in the way for this becoming an essential 100% tool for procedural games in Unity is a more thorough documentation for scripting purposes and real-time utilities. As of right now, it's only 85% essential ;) (but that's quite more essential than Houdini IMO).

    Although I can see a few "rough" corners, I can only hope things will keep on getting better because I would honestly not mind supporting you by purchasing "additional packages" that extend the possibilities of Archimatix (I've noticed a certain user on the Asset Store has a few packages for your package already out there, I am surprised these do not come directly from you as they are quite "expensive", and I am just not sure if they are worth it (as from the fact that they are not from you, aka "the real pro", I get the impression I can probably build them myself in not too long).

    Anyway, I hope you didn't fall asleep ( sorry ). And thank you once again for your time and product, the latter being a masterpiece of an asset (with a somewhat rough documentation though hum... ).
     
    Last edited: Feb 22, 2019
    wetcircuit, christougher and roryo like this.
  35. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    @EnriquePage91 - thanks for this awesome post. Great feedback from one who seems to be on his way to becoming an AX power user! I couldn't agree more that there is scant info available on the intermediate/api-level of AX usage. I will take another read of your post tomorrow morning when I am "fresh", but I think one thing that might help generally with scripting at an intermediate level is to expose the Logic section, which is available in Shapes currently, to all nodes. This would allow one to set parameter values through scripting with conditionals and loops. For example, using a conditional based on a bool parameter you add to an Extrude node to set its height parameter. Eventually I would like to develop a c# api to allow for scripting that composes and modifies the node graph or even sidesteps the graph altogether.
     
    led_bet and EnriquePage91 like this.
  36. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    I opened up blender to make something, then i closed it and thought why not use archimatix? Works great and you can test changes out in the editor.

    This is one of my archimatix creations: The UnderDam, from my upcoming game Nimian Legends : Vandgels.

    IMG_2748.jpg

    IMG_2790.jpg

    IMG_2882.jpg

    IMG_2771.jpg
     
  37. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Last edited: Feb 22, 2019
    protopop likes this.
  38. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi again,
    I am having troubles with 2D Shapes...... I drew a free curve and tried to scale it down....but....it does not change the size in the shape merger....as you can see in the second picture, it resizes the vertices but not the lines....Can you please help? (since I will be doing lots of it.....) -Unity Version 2018.2.14f1 Screenshot_30.png Screenshot_31.png
     
  39. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    47
    Oh yesss! Great idea. This will make editing of larger projects much easier! :cool:
     
    Last edited: Feb 22, 2019
    Eva-Dragonflame likes this.
  40. EnriquePage91

    EnriquePage91

    Joined:
    Jul 2, 2015
    Posts:
    67
    Wow! Thank so much for such a quick reply!

    It's funny that you bring that up (although perhaps not really, since apparently it's intended so congrats on the UX design) but I've been using the Logic of shapes to try to do this.

    In general, I've been using shape editors as containers for mathematical operations thanks to the expression system. I've deleted all the shape parameters to keep them as clean as possible and I've then saved them to my library after writing the functionality, it's handy having a lerp node around and stuff like that. For the moment they look quite ugly since they have no "icon" and I haven't found a way of giving them one (but I guess that is perhaps not possible as the view is supposed to represent a 2D shape?). In the future I will look into scripting my own nodes in C#, I've seen you've added a basic description of how to go around this which seems good enough but I might have to get back at you if any issues emerge on that when I do so hehe.

    while trying to use the Logic section myself, I was trying to use it to build shapes to assign the value of the integer depending on the value of the bool. Unfortunately it didn't work. I guess I will take a second look at the documentation but for some reason when I was trying the following in the Logic section, it didn't work for me:

    if boolVariable
    intVariable = 1
    endif


    ** intVariable = 0 for !boolVariable**



    I also tried ...:

    if boolVariable
    let intVariable = 1
    endif


    **intVariable = 0 for !boolVariable**


    Unfortunately, none of these gave me the result I wanted. Unless perhaps I have to click on the refresh button or do something to let the changes "ripple out"? because by simply modifying the bool parameter afterwards, I did not see any changes on the integer value.

    Thanks for all the help! It's a wonderful thing you've got going on here congrats!
     
  41. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Such good news! Winwall: I love it and a 2D space for editing would be awesome too :)
     
    roryo likes this.
  42. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    If intVariable is a parameter, then use:

    Code (CSharp):
    1. set intVariable 1
    The let keyword is for temporary variables. Set will go ahead and modify the parameter value as well as propagate through all the Relation links for that parameter.

    Also, have you checked the manual page out for the logic scripting api? And this page too. ;)
     
    EnriquePage91 likes this.
  43. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hmm, looks like I have not implemented scaling as an output for FreeCurve. I need to add it as a post process so that it does not affect the points you edited. In the meantime, would offset help at all?
     
  44. EnriquePage91

    EnriquePage91

    Joined:
    Jul 2, 2015
    Posts:
    67
    Hello again Roryo! After posting last night and checking more thoroughly the logic scripting api that you just linked, I tried the following without any results either:

    if boolVariable
    set intVariable 1
    endif

    if !boolVariable
    set intVariable 0
    endif

    it's important to note I did not use the ! to negate the boolVariable, I'm just simplifying the context. I created a separate variable that tracked the opposite condition.

    1) I still feel like I'm doing something wrong. Or perhaps this value will only be adjusted if I modify the object through the scene view? I am currently mostly relying on modifying my objects through the parameters I expose to the inspector.

    As a side note, I do love the fact that we can create handles and that you've added some to the default shapes already. The handles are amazing but I haven't gotten into exploring them too much yet - other than modifying the range on the scripting "parameter" of the shape - it looks like it will take a slight amount of time since I believe I'd have to be more familiar with your proprietary version of Turtlescript (I'm not even familiar with the principles of the "original" language at this point, so technically I'm gonna have to be learning yours from scratch).


    2) I'm currently trying to build a simple "room system", working on the door at the moment . I was going to implement my own windows and thought about particularly the issue you've brought up somewhere in the forum - the UV's wouldn't be consistent because they'd stretch between different "parts" of the wall. When do you think you'll have that node out? Since I might just wait for it.

    However, are you doing some crazy magic to create the windows? Or simply doing what 3DLunatic does on his tutorial to build walls, however figuring out what the right u and v scale for the materials of the subsequent wall parts are, based on the lengths and uv values of the lower part of the wall and the window?

    Regardless of whether I implement my own version, that would be an interesting thing to know for subsequent models that I build, since this seems like a useful concept to grasp. Or perhaps this is a complete "system" of it's own? That would also be good to know in order to determine whether I should keep working on mine or not.

    I am asking because I am controlling the height of the wall through a parameter, and I want the UV's of the different parts to adjust themselves as the height parameter effect propagates, 3D Lunatic barely uses expressions to set things such as height, or uv scale so in his particular case fixing this issue is a matter of going into the nodes and finding the right values - I want to do this procedurally.

    Once again, thank you for the support Roryo!



    UPDATE 1:

    Ok, I've got it working however for some reason it wont work if I delete all the logic and parameters of the shape before writing my own. I can tell this because it was not working on the shape nodes that I've basically turned into presets of the equivalent of "empty nodes", but they work when I use the commands (including the if) in the curve shape.

    I have double checked at this point and I can confirm.

    On the node shown in pic 1, the commands are not working even after refreshing, on pic 2, they are and perform the operation as expected.

    Even though the operations are different, but I've also tried using the same code without any results on the node shown on pic 1 (the "empty" node that is only transforming the bool into an int):


    NOT WORKING:

    not working - 01.png


    WORKING:

    working - 01.png


    UPDATE 2:

    OMG figured it out I'm so sorry Roryo
    haha

    I had DISABLED the component before trying the logic node yesterday. expressions were working perfectly regardless, **naturally, since they are not exclusive to the node itself but are common to the whole graph** however ever since I ticked the enable bool again the code has been working perfectly on both the "empty" node as on any other shape node with the logic parameter available for editing. I can't believe i didn't think of enabling this before messing with the logic parameter yesterday.

    if anyone is wondering how to do this, simply type this:

    set intValue 0

    if boolValue
    set intValue 1
    endif

    AND MAKE SURE YOUR NODE IS ENABLED!!!



    Thanks Roryo!
     
    Last edited: Feb 23, 2019
  45. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Hi again, thank you for the swift reply, no offset does not help I am afraid....it would be great if you could add a scaling output, because I am going to need this really a lot in the next few month.....:)
    I have around 10 window shapes for each building feeding into a shape merger per building and I am planning to do a lot of buildings with your amazing tool.
     
  46. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Yes, I second that - it's always so time consuming to have to redraw the free curves several times, because the original size does not fit - it would be awesome if you could change that!
     
  47. FloBeber

    FloBeber

    Joined:
    Jun 9, 2015
    Posts:
    166
    I've just sent you an email. Thanks, I appreciate your honesty on this!
     
  48. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Glad you got it working, @EnriquePage91!

    Here is a GIF for anyone interested in seeing this logic in action:
    BoolGateInLogic.gif

    The trick for making holes in walls while keeping the UVs consistent is to make each wall its own SHapeMerger object. Of course the trouble then is when adjusting the room dimensions, the length of wall must be Related to parameters in a central object or Grouper. The WInWall node will essentially automate this. Hopeful by early April. ;)
     
    awesomedata and EnriquePage91 like this.
  49. EnriquePage91

    EnriquePage91

    Joined:
    Jul 2, 2015
    Posts:
    67

    Thanks for the gif Roryo! It is a very nice thing that we can do that. I have tried it already but I have a problem, although it does work (as shown on the gif you provided), the parameter that gets "affected" (in the case of the gif, the float value), does not propagate its changes to any node connected to it as far as I can tell.

    I got the bool to change an integer on a node in the way you described. Now, I want that node's integer to control several other integer variables spread out across my graph in such a way that it acts as a toggle for several features spread out across several nodes (that essentially act as a single feature when combined, but would not make sense independently). I'd rather be able to do this once and then spread such calculation, as opposed to having to do the same thing (the process on the graph) for each node that will require the functionality of the toggle. Not only for performance which granted is probably irrelevant, but because it makes things faster to setup. particularly as this will only grow in complexity once graphs get big.

    It seems that if I do things in the way we discussed previously, although I can get the int value to change depending on the value of the bool inside of the node containing the logic, the int that gets modified by the bool thanks to the turtlescript inside of the Logic section, does not propagate its new value to any connected output nodes. Some of these output nodes have expressions that depend on this value being updated after being altered by the turtlescript, however I have no idea how to get the new nodes to update their reference to the int value that is being handled by the bool.

    I hope I'm making myself clear, and thanks again for the time and help!
     
  50. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    @EnriquePage91 - Here is a faux WinWall arrangement where the individual walls are made from separate ShapeMergers and then resized and translated according to the parameters of the Plan Shape.

    FauxWinWall2.gif