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

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    Small update: if I create an empty grouper and then just add those nodes as inputs (not encapsulate), that seems to work. I still don't think encapsulating nodes should change their behavior, but at least I have a work-around.
     
  2. JDelekto

    JDelekto

    Joined:
    Jan 7, 2017
    Posts:
    49
    Is it possible to use Archimatix Pro to create modular assets? I would like to ideally create variations of pieces like walls, roofs, floors, etc. using the parametric modeling features and then keep a library of the pieces so that they could be snapped together.

    If this is possible, what are some settings, tips, techniques, etc. to do this?
     
  3. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    383
    Sort your models into 3 groups that Ax promotes,i.e. Ax models, Stamps and Prefabs.
    The stamps and prefabs are basic Unity GOs. They lose all Ax scripts.
    The Ax models should only remain as Ax in your game/venue if you need to control them via a runtimecontroller otherwise stamp or prefab and instantiate as normal.
    The RTC is necessary when you want to change Ax geometry beyond what Unity affords in its Gos, i.e. like a torus.
    I currently have an Ax model that I stamp that has a unique characteristic. See the model above. I have 6 prefab nodes each running through a grouper. The grouper prototype points to 1 of 6 prefabs each with its own script.
    I can change the script of the prefab any time and not affect the Ax model.
    I set this up to produce a model farm/server for dynamic models and scenes. This is not new in the Unity world but things change when you add an asset that increases flexibility.
    You asked the right question here. I hope this helps.
    I am the same ID in the Ax discord. We are having a blast over there as each member has a lot of variances to offer.
    Plus we have discussed numerous things to watch out for.
    Do not change the default parameter names in the nodes. The ability is there but the underlying Ax scripts don't adjust. Things can seriously go wrong as in my case.
     
    Last edited: Dec 8, 2020
    wetcircuit and JDelekto like this.
  4. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    383
    I have since repaired the axis rotation error.
    The Transform Rotation X, Y, Z entries are localRotation.x,y,z in script.
    One of these days this wont bite me any more.
     
  5. JDelekto

    JDelekto

    Joined:
    Jan 7, 2017
    Posts:
    49
    This is very helpful, thank you!
     
  6. phoenixian

    phoenixian

    Joined:
    Apr 27, 2017
    Posts:
    25
    How can I expose Archimatix namespaces to another asset?

    When I simply drop an unedited asmdef in any directory under Archimatix, it runs in the editor fine but I'm unable to build a binary - says

    "The type or namespace name 'AnimatedValues' does not exist in the namespace 'UnityEditor' "

    All the errors are similar with 'AnimatedValues' substituted for 'SceneView' , 'MenuItemAttribute', 'MenuItem', 'ScriptableWizard', 'CustomEditorAttribute', 'CustomEditor'. etc...

    it appears to be stuff that the compiler would exclude inside of:
    #if UNITY_EDITOR

    Any idea what I'm missing?
     
  7. giantkilleroverunity3d

    giantkilleroverunity3d

    Joined:
    Feb 28, 2014
    Posts:
    383
    Have you tried:
    m_ScriptName = this.GetComponent<ScriptName>();?
    This expose the public vars to to the calling script.
     
  8. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    Hi, erm I just got this & tried opening in a fresh 2020.2 project and get loads of warnings and errors.
    Edit: But it does import OK in 2019 LTS (also 2020.1)! However your scenes use GUI Layers which are no longer supported and will give an error on opening
    Code (CSharp):
    1.  
    2. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\FreeCurve3DHandler.cs(119,121): error CS0117: 'Handles' does not contain a definition for 'DotCap'
    3.  
    4. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\ToolHandlers.cs(630,13): error CS0117: 'Handles' does not contain a definition for 'SphereCap'
    5.  
    6. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\ToolHandlers.cs(672,13): error CS0117: 'Handles' does not contain a definition for 'SphereCap'
    7.  
    8. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\ToolHandlers.cs(685,140): error CS0117: 'Handles' does not contain a definition for 'ConeCap'
    9.  
    10. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\ToolHandlers.cs(693,139): error CS0117: 'Handles' does not contain a definition for 'ConeCap'
    11.  
    12. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\GeneratorHandler.cs(1162,21): error CS1593: Delegate 'Handles.CapFunction' does not take 4 arguments
    13.  
    14. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\FreeCurveHandler.cs(203,7): error CS1593: Delegate 'Handles.CapFunction' does not take 4 arguments
    15.  
    16. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\FreeCurveHandler.cs(407,17): error CS0117: 'Handles' does not contain a definition for 'SphereCap'
    17.  
    18. Assets\Archimatix\Scripts\Editor\GeneratorHandlers\FreeCurveHandler.cs(440,17): error CS0117: 'Handles' does not contain a definition for 'SphereCap'
    19.  
    20. etc etc
     
    Last edited: Dec 20, 2020
  9. MasoInar

    MasoInar

    Joined:
    Feb 20, 2014
    Posts:
    126
    Hey, I noticed this in beta. It's 'quite' easy to fix though, but you need to go thru couple of files: See these posts:
    https://forum.unity.com/threads/arc...y-awards-finalist.330869/page-72#post-6274817
    https://forum.unity.com/threads/arc...y-awards-finalist.330869/page-72#post-6281066

    I hope this will be fixed soon in Asset Store version
     
  10. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Is it possible to apply a sort of orthogonal cut to a mesh?

    I'm interested in building a set of rooms from a top-down view, and then extruding them upwards. But at that point there are no doorways, so I'd like to make a sideways cut at various places. See the image below.
    archimatix1.png
    Edit: I suppose I could cut a hole in the entire shape at that point and have the doors go to the top of the screen, but it'd be nice to have this ability.

    Edit 2: I suppose I just want to create something like this post on the first page of this topic.

    Also, with something like this image, is it possible to get the "filled" locations so I can know the specific places in my level that have a mesh on them? Kind of like the bounds but with the open interior too. Thinking about this, I can probably build it if I have access to the Archimatix variables for a given shape (like transX, width/height of a rectangle, etc.), but are those available?
     
    Last edited: Dec 20, 2020
  11. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    Further more I get errors trying the first steps in docs.
    If you stretch the Arts & Crafts Chair and make it too short then the code throws errors because topMesh in Meshers.cs 656 is null but it trys to access. Should be null checks given topMesh can be set to null...

    You also need steps < 0 checks in the Repeaters because accidently dragging height wrong throws errors too, or width wrong way errors AXThumbnail.

    Should be coded more robustly than this

    Edit: open the ShapeEditor window - loads of null messages spam the console.
     
    Last edited: Dec 20, 2020
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    @andyz - the fix is in... version 1.2.9 which just hit the asset store.

    Also in this version are two new nodes:

    zz-AXNode-ImageShaper.jpg ImageShaper uses the alpha channel of an image to create a 2D Shape.

    zz-AXNode-UVProjector.jpg UVProjector remaps the UV's to project a texture along the ZAxis.

    These two new nodes working together can take an image as a data source for a 3D object:
    Screen Shot 2020-11-03 at 3.35.22 PM.png

    Screen Shot 2020-11-02 at 6.43.18 PM.png

    Screen Shot 2020-11-02 at 4.11.35 PM.png
     
  13. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    I really want to like this asset because it could be great, but there is a lot of little unfinished or buggy things that need work (thanks for fixes so far), starting with the sparse documentation, also UI issues shown below (why no icons on lots of nodes?), errors easily created during use (robustness of code).

    Can you create simple maths nodes - with just float/int inputs and outputs to calculate common things to input into main nodes?

    ui.png
     
  14. JDelekto

    JDelekto

    Joined:
    Jan 7, 2017
    Posts:
    49
    I think saying the documentation is sparse is a little unfair. There's a 70-page PDF file (granted, with a lot of images) that comes with the asset that I found to be extremely helpful in getting started. I own some assets that came with a one or two-page "readme" file. Also, I would definitely check out the YouTube tutorials that are available. Between the provided PDF, YouTube videos, this forum, and the Discord channel, I think there is plenty of information to be found albeit not entirely devoted to pure documentation.

    I will say that there are some things I would like to see documented further. For example, I recently asked a question on the Discord channel (which is another great resource, BTW) that was answered, but I could not find mentioned in the documentation. As a side note, the answer was exactly what I had hoped, being able to supply a 'template' game object pre-configured with components and scripts that would become the basis for Archimatix created models is pretty awesome.

    However, the UI quirks you pointed out are pretty annoying. If those cut-off property inputs just borrowed a handful of pixels from the larger spaces taken up in the custom inspector view, all would be right with the world. Also, I've run into a few bugs before too, so no argument from me on that point. :)
     
  15. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @andyz - the generic icons are on nodes that are in development but available for beta access. I should probably add a switch to allow one to choose to show/hide beta nodes.

    As far as a maths nodes goes, the design philosophy for AX has been to have fewer, larger nodes that more numerous granular nodes. Mathematical relationships are defined in the relation expressions, parameter expressions and in the Shape logic via Turtle Script. Chapter 8 of the User's Guide discusses this a bit as does his page: Getting to Know your Relations. The Ancient Roof tutorial may help demonstrate mathematical expressions in AX as well.

    You can hack your own Maths node using a Grouper as a generic node. For example, you could add parameters A, B, and C to a Grouper and in the parameter expression for A and B define C=A+B.

    Screen Shot 2020-12-30 at 10.53.00 AM.png
    Screen Shot 2020-12-30 at 10.56.59 AM.png

    In AX, on would not necessarily need to create a Grouper turned Maths node like this, but instead allow mathematical expressions to be integrated into shape and mesh-generating nodes. For example, the RoundedRectangle to the right might be inside the grouper along with an Extrude node.

    Screen Shot 2020-12-30 at 11.01.18 AM.png

    That being said, I suppose it could be useful to have a separate maths node and perhaps a Vector3 node, etc.

    Per the graphical glitches in the UI, Unity has been making UX changes at a fast clip the past year or so and it is challenging to keep up with it all. Especially since sometimes these glitches fix themselves in a later version of Unity.

    Thanks for your note @andyz and I hope we can keep improving AX!
     
    andyz likes this.
  16. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    The 70 page PDF is mostly really specific examples with no explanations of what each node is doing or how to manipulate them. And the descriptions online aren't all complete: Lathe is straight up blank.

    I'll be honest I'm a little disappointed that the asset creator made a post (Edit: two) in the thread but didn't reply to me, just asking how something was done. I've been working on a game and I want to use Archimatix to build the levels, but the features I'm looking for are just not documented, if they're there at all (and I believe they are).
     
  17. puzzlekings

    puzzlekings

    Joined:
    Sep 6, 2012
    Posts:
    404
    Hey @roryo what's the status of the Freecurve3D node?
     
    r137 likes this.
  18. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @EternalAmbiguity - Unfortunately AX does not have 3D Boolean capabilities. I have looked into a 3D Boolean node, but have not been able to find a good solution that does not generate lots of extra triangles (even with a simple cut) and slow the build time of the model. Also, AX has a kind of architectural mentality built in. Architects don't think of building walls and then cutting holes in them, but rather building up in coarse or stone, leaving voids as they go, or framing wall faces in wood.

    The post you mentioned is the former case. The plan shape can be cut to make a doorway and the original and the cut version used in two separate extrudes:
    HoleInWall.gif


    If the Trans_Y of the top piece is set to the doorHeight, then, as you adjust the doorHeight and doorWidth, the whole assembly stays together.

    Screen Shot 2020-12-30 at 11.47.37 AM.png

    The Grouper maintains the parameters for the whole assembly and distributes the values to the nodes inside the Grouper. The custom handle for the door opening is also defined in the Grouper:

    Screen Shot 2020-12-30 at 11.56.41 AM.png


    The latter case involves framing the wall with a hole in it.
    Screen Shot 2020-12-30 at 12.05.44 PM.png

    The wall with holes cut in it can also be PlanDeformed to make a curved wall with holes in it as @wetcircuit shows in a tutorial.



    Hope this helps!
     
    EternalAmbiguity likes this.
  19. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    I'll throw in some on my ideas for enhancements:

    Logic nodes: definitely think this is something worthwhile having as a top-level node. On the other hand...

    Logic section exposed on all nodes: the UX is a bit inconsistent having logic available on only the 2D shapes, and not elsewhere. Especially on the groupers (for adding to library).

    I think both a top-level logic node and having logic on all nodes would allow maximum flexibility in organizing one's graph.

    Ability to drag new props onto a grouper. e.g. I'm creating a library component and I want to expose a bunch of props in the new group I create. Instead of having to manually enter each one, it would be nice to be able to click the end of the connector on the containing grouper (or a target zone) and have the property created with the same name and populated with the current value.

    Ability to mark props as read-only and display them as such.

    Ability to expose channeler properties in higher-level groupers (i.e. allow me to select the item in the channeler from the grouper, not having to open up the group).

    Repeaters: expose the props of the items being repeated and allow them to be modified individually. e.g. there would be a logic node that would execute for each instance, and it would come with relevant properties from the repeater (e.g. index, total count, etc.). This would allow us to do things like select a different channel for every second object, customize the first and last, etc.

    Reference library components: right now re-use is achieved through copy-and-paste (albeit through a custom mechanism, i.e. the library). Sometimes (okay, most of the time) I don't discover my library item isn't complete or has bugs until after I start using it. It would be nice to be able to use a reference to a central component, so any edits I make to it are automatically propagated to all uses. We'd still want the existing re-use strategy since sometimes that will really be what you want to do.

    Compiled components. Create an .Net assembly on-the-fly from the component definitions. I'm assuming that's not being done and right now they are executed by parsing every time. I'm not 100% sure Unity supports it, but using Roslyn it is possible to generate and compile C# source. I've got some experience doing this sort of thing, so if you find this suggestion intriguing and have more questions about it, I'd be happy to discuss it more in depth. It's not nearly as difficult as it sounds at first.
     
    MikeChr likes this.
  20. JDelekto

    JDelekto

    Joined:
    Jan 7, 2017
    Posts:
    49
    I certainly did not address the online documentation and yes, the empty lathe entry for the node itself is disappointing and in chapter 4 "Just Meshing Around" of the PDF, there is certainly a lot more attention spent on the lathe functionality.

    One thing that I do like about the asset is that just playing around with it seems somewhat intuitive to me. I appreciate how the node pins are color-coded and that makes it easier connecting up the inputs/outputs. After looking at the online node documentation you provided, I see the frustration, point taken.

    I do see that your question has been addressed in the thread. As I had noted in my post, one of my questions was recently answered on the Discord channel with regards to creating a template (in AX terms, 'prototype') so I could supply a script that would be attached to my models.

    I am mentioning this, because it may be relevant to what you are trying to achieve. There was an asset recently added to the Unity Asset Store called "Poseidon CSG" (https://assetstore.unity.com/packag...eidon-csg-dynamic-level-design-159427#reviews) which allowed for carveouts from intersecting meshes. To do this, a script needed to be added for the asset to use for carving. I wanted to use the lathe features of AX to create different meshes having it automatically apply this script for me.

    First, I created an empty game object then added the Poseidon script to it and renamed it to 'carver'. Next, I added a shape node and a lathe node to my AX graph. Finally, I set the prototype in my lathe node to my carver then played with the model until I was happy with it. I then used 'Stamp' to create a new game object and the parent lathe object contained the script needed to do the carveouts when intersecting my models. Be careful though, if your resulting mesh is very complicated, it can get choppy, but Poseidon has a deferred mode that recalculates when you stop moving the mesh.

    What I liked about this approach is that I am not very good at modeling, but I wanted to create some models in AX that I could use to get some more organic results quickly.
     
    EternalAmbiguity likes this.
  21. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    That does help--my main goal is achieving the effect, not one specific method of doing so. Thanks!

    Yeah I honestly like Archimatix a lot, I just struggle with understanding its full capabilities.
     
  22. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    In addition to the excellent advice from @roryo , another possibility is a shader-based solution. I'm working on cleaning mine up, but here are the initial results. This scene is built with 2 rectangles, a shape combiner + extrude, shape offsetter + extrude + backfaces and a plan repeater for my custom windows (I'm planning to share those on Discord, right now they support double-hung or single pane with optional grills - selectable independently on upper and lower sashes, and % open/closed). The window components place the masks for the openings on both the inside and outside, so it's largely automatic:

    Screenshot_12_30_20__13_15.jpg

    This angle doesn't show the major issue I'm trying to solve, which is the effect requires a special shader on the wall which knocks out the material in the windows (using the depth buffer and a special mask material on the window object), but it also does so on the inside wall. If anyone knows anything about depth buffers and shader graph and knows how to apply it over a specific world distance only I'd love to hear from you. I have also built-in support for fake interiors, so if you don't need to actually see into the building, or if you didn't need to look through one wall and see another wall that also needed windows through it, that wouldn't be an issue. The fake interiors option is really slick (I can say that because I'm using Amplify's Fake Interiors, not something I cobbled together, so it really does look good).

    The problem is illustrated here:

    Screenshot_12_30_20__13_20.jpg

    I had a short discussion with @giantkilleroverunity3d on Discord, and another missing bit is the physics, but there are clever ways to solve that, but since I don't need that for my project, I haven't attempted it. Yet. (Arguably I don't need fully parameterized windows that can be opened and closed either, but here we are.)

    The shader also responds poorly if there is nothing behind the window (i.e. the view ray goes out to infinity).

    In spite of those limitations, it's always good to have options. You can pick the one that best suits whatever it is you're trying to achieve.
     
  23. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    558
    Oh my gosh the Poseidon plugin is exactly what I've been needing in my life!! Thanks so much for sharing. I was agonizing on how to do some uv remapping!! Thanks for sharing.

     
    JDelekto likes this.
  24. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    I noticed these options in trying to do a tower, and indeed they work but both with slight issues, particularly if you wanted a non-round tower like an octagon shape.
    1. Creating a long wall with windows and PlanDeforming it into a circle means forcing subdivisions and is hard for angled sides, not curved
    2. Repeating a window section in a circle seems best bet, but would be nice if you could insert a pattern of meshes - e.g. door wall, window wall, window wall, door wall. Also each piece will not join nicely, just overlap - a particular issue with 90 degree corners as in the image above.

    A solution would be a node that circle repeats or twists a 2d mesh and extrudes it inwards creating neat corners/seams.

    Also I had to abuse the RadialRepeaterTool to make it do more than 360 degrees in order to make a spiral tower!

    spiralTower.png

    Have good new year!
     
    Last edited: Dec 31, 2020
  25. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    try Radial Step Repeater. It's the node directly under Radial Repeater

    Screen Shot 2020-12-31 at 11.03.54 AM.png


    Once you hit the limits to the existing building blocks, I suggest you start creating your own shapes. Only you know what parameters and vertices are necessary for your models..., and at the next level create multiple shapes designed to function together

    Turtle Script allows you to build the exact shapes you want, and put the vertices where you need.
    https://community.archimatix.com/quick-reference/turtle-script/

    Screen Shot 2020-12-06 at 2.51.27 PM.png
     
  26. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    Thanks so much, wetcircuit! I appreciate the invite. Sorry it has taken so long to get back with you.
     
    wetcircuit likes this.
  27. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    Thanks so much, Roryo. Sorry for not getting back sooner. I had to put off this end of the project to work on others, so to keep things moving along. Now time to try to tackle this. Going to follow your steps and see what I can do.

    Beautiful Roman stadium!
     
  28. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    @roryo ,

    when you say "a stair shape extruded around a semicircle plan", do you mean that you use the PlanSweep tool and connect the BridgeArc to the PLAN and the StairShape to the SECTION? I do not see a "semicircle" in the 2D options, in that I can adjust the degrees. It works, but I am not familiar with how to adjust the degrees.

    upload_2020-12-31_20-53-44.png

    Also, and this is the more important question, how do you add the EXTREMELY AWESOME parameters in the StairShape to a new FreeCurve design? I want to make my own stair case 2D image.

    upload_2020-12-31_20-57-15.png

    Beautiful work, but a lot to get my head around.


    Happy new year!

    Jeff
     
  29. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    There is a HalfCircle shape in the 2D library. I'd guess that's what was used.

    What are you trying to do with the free curve and stairs? It might be easier to use the shape combiner and the union output to achieve it, rather than trying to duplicate the stair step logic.

    But, as far as adding the parameters, open up the controls section and down at the bottom there is a "+" button to add a new parameter. Also make sure to look at the Logic section for the turtle script that controls it. There are some excellent videos at https://community.archimatix.com (and definitely join the Discord channel while you're there).
     
    jnoelcook and wetcircuit like this.
  30. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    Okay, kicking butt with Archimatix now that I have a handle of things.

    upload_2021-1-1_17-23-47.png

    Even "dug" a ditch in the land around the structure using a PlanSweep.

    upload_2021-1-1_17-25-42.png

    After going through several operations, I have found that for what I need a stair case 2D shape would not work. So I made my own, using two FreeCurves, one for the main shape and a second for the dividers.

    upload_2021-1-1_17-28-28.png

    This gives me more freedom to manipulate the dimensions using code.

    upload_2021-1-1_17-32-43.png

    It's a lot of points, but it seems the most efficient way that gives the greatest freedom to manipulate. In the code I set a maximum of 12 levels and if the user selects less than 12, I simply set the y value to zero.

    upload_2021-1-1_17-34-53.png

    Coolness!
     
    wetcircuit likes this.
  31. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    Thanks, @colin_young. See above for the way I ended up going with it, and what I was creating.

    I have joined Discord. Thanks!
     
    colin_young likes this.
  32. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    There is no relationship between one ring and the next? e.g. radius = radius[i-1] * 1.618, etc? Generally things look "right" when there is some sort of relationship. See Fibonacci numbers and the Golden Ratio in nature. Plus it's easier on the end user if they don't have so many things to manipulate. If you have a lot of code that is enforcing relationships (i.e. [68].x = [69].x, that can quickly become hard to maintain.

    Could you generate the dividers by doing a diff with a simpler shape and the main shape through a shape combiner? That node is super useful once you understand all the outputs it offers. It's a bit hidden at first since it can only show the preview for one of the operations at a time, but all the operations' outputs are active.
     
  33. jnoelcook

    jnoelcook

    Joined:
    Oct 5, 2020
    Posts:
    13
    @colin_young, the rings without walls are a fixed width of unit = 1. The others are determined by their volume. The volume is calculated by code by 2 user inputs. They do increase at a ratio, but the ratio is a modular function in the code. You may note that above each ring increase by 1/4 unit more than the last. I suppose I could use two objects juxtaposed around each other, but I am still learning with all this. The individual values, all 82 of them are manipulated using modular arithmetic, which I am very comfortable to maintain. It's a bit different than a constant ratio like the golden ratio.
     
  34. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    The docs had seemed more limited because the nodes (i) link to the online docs (which are limited and missing in places). The pdf has lots of info but the link is broken under Help-Archimatix menu (typo in code - space missing - though accessible in project). The About link works but the Doc button in there goes to online manual.
    Omissions in online manual like Grouper/RadialRepeater etc.

    Anyway I worked out the basics, but some things that are maybe missing and useful:
    - More customization in repeater tools (no scale changes?) - e.g. change scale or distance per step rather than just linear changes over a fixed length.
    - Spirals and other custom 3d paths to act as repeater path.
    - full right-click tree menu for adding node (only shape merger?!)
    - Extrusion with windows/cut-outs can lead to unwanted extra side faces (you may not need edge/side faces but can not turn them off as need window 'edges'). A general 'wall' extruder tool would be great, with angle options for ends of walls etc.

    Some oddities:
    - Extrusions are very much about upwards (y) extrusion but many times it is for a wall with windows etc. and if you change the transform to Z not Y on the extruder, to work like that, then the top/bottom/sides toggles get mixed up. Still you can rotate later.
    - Shear only works on XY axis?
    - angles are anti-clockwise and 0 is right in turtle script?!

    Bugs:
    - Add a FreeCurve3D and you can not delete it - error in console. Maybe hide test nodes until ready?

    It is a good tool in many ways, could do with more focus on buildings/walls with windows/doors/cut-outs as clean corners are hard in that instance.
     
    Last edited: Jan 2, 2021
  35. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    Soon the Tower of Babel was rising up (not in a true spiral unfortunately!):

    babel.png
     
    wetcircuit and roryo like this.
  36. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    Ah. So you're not expecting the user to manipulate those individually then. That makes much more sense, although it would be nice if there was a way to mark some variables as read-only.
     
    jnoelcook likes this.
  37. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Parameters can be clamped/locked with their Min/Max settings.
    Parameters can be set with turtle script (they become read-only).

    a parameter's Expression can set another parameter (useful to keep 2 parameters synced to a ratio on the same node)
     
    Last edited: Jan 2, 2021
    jnoelcook likes this.
  38. colin_young

    colin_young

    Joined:
    Jun 1, 2017
    Posts:
    243
    Sorry, I wasn't clear. I meant visually marked so the the end-user doesn't get frustrated when they try to modify one of them. Or freak out when they open a 60+ parameter component :)
     
  39. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Weirdly, we can make parameters into strings – even set the string with some text from turtle script, but no way to display or expose the string on a node or pass it to another node. (?)

    If we're making models for other gamemakers (not modelers, and not players) I think would be helpful to ignore the graph and just manipulate the model with a custom component UI… Sending strings (like: style names) could be useful there...
     
  40. jeremedia

    jeremedia

    Joined:
    Apr 21, 2015
    Posts:
    63
    Line #4302 the file AXModel.cs starts a loop that enables "isKinematic" on RigidBody components attached to GameObjects found to be under the "activeTerrain". ALL RigidBodies are considered in this loop (found with "
    FindObjectsOfType(typeof(Rigidbody))", regardless if they're part of the AXModel that generated the call to AX.AXModel.resetGeneratedGameObjects.

    This is very, very bad, and took a long time to debug. What possible reason is an AXModel changing properties of objects outside it's hierarchy? If this is intentional, what's the logic.
     
  41. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Sorry about that, @jeremedia. That was a piece of vestigial code from way back that should not be in there. I can imagine how hard that was to find, especially if your rigid bodies were not generated by AX and you have a terrain in the scene. And it was pretty computationally intensive to boot. Thanks for finding it and for letting me know. It has been removed.
     
    hopeful and wetcircuit like this.
  42. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
  43. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    @roryo
    Does Archimatix have any support for going from an architectural drawing to a model?
     
  44. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
  45. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    That's cool but why are some walls from the image missing from the final shape? Is it just the alpha cut-off?
     
  46. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I'm not sure… The missing wall is 1 big discontiguous piece the doesn't connect to the rest… it should make 2 shapes.

    But pretty sure I saw Rory make shapes with unconnected pieces… he showed them on the discord, even did physics on them.

    :oops: it's also a pic I grabbed online and inverted in like 2sec… so, maybe a compression artifact too small for me to see? I will try some more tests...
     
  47. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    must have been that maze image...

    discontiguous shapes work with a proper alpha…

    Screen Shot 2021-01-05 at 2.07.00 PM.png
    Screen Shot 2021-01-05 at 2.36.39 PM.png
     
    Last edited: Jan 5, 2021
    AthrunVLokiz, roryo and hopeful like this.
  48. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
  49. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    this is normal extrude, and the maze shape is already 'thick'.

    on any shape node, down at the bottom where it says Output, swing open the tab and find the Thickness setting. If you give your walls a little thickness, they will extrude like thin walls instead of one solid block.

    Same controls are on the inputs, and there is also an Offsetter Node that can parametrize thickness

    see this example: Dome & Rooftop: Section
     
    EternalAmbiguity likes this.
  50. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    If the Robot Kyle Shape is fed into a ContourExtrude, he might look a bit better in the round. :)

    Also, if his Shape is subtracted from a Rectangle, the ensuing extrude could make for some nice packing foam to ship him to his next adventure destination!
     
    wetcircuit and hopeful like this.