A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by roryo, Jun 4, 2015.
AX runtime models in Sine:space.
@wetcircuit - very cool! Did you rig up that model? Lot's of potential for smart world building here!
Yes, just a simple "building block" to test.... Somehow I missed the whole HANDLES feature in AX so I was scripting everything with playmaker – never realized AX has onscreen-click control built in! It's a great fit within the virtual world.
(Deciding where to place the handles and how to rig them could probably fill an ergonomics textbook )
Here's an earlier test with a more elaborate model, with some poorly designed controls … although it does give me ideas for runtime models that work like puzzleboxes where you need to move one part to expose the controller for another part….
I am using AX for an academic research project at the moment and revisiting features of AX that I haven't worked with in a while. Sometimes I forget how much is in there!
Let's say I want a curved wall with fancy windows here -- are one of the deformers decent enough to be used for this along with, say, a freecurve to shape the path of deformation -- or do you suggest another option?
Use the path deformer, but the trick is you have to add extra vertices to the model that needs to bend around the path.
Thanks, @wetcircuit -- I wasn't sure if it would work this way (I've not tried the deformers yet since I've heard they tend to break a lot).
So what technique do you tend to use to add verts to the model (the most effectively) with, say, a window prefab (with a windowsill and maybe a light) placed on it? -- And can the deformer curve prefab meshes too (or is there a way to just add a regular mesh?)
As an alternative technique, I had thought about using a plan-repeater for something like a wall-segment prefab that repeats/tiles endlessly, but making it go around curves/corners with a deformer seems like it could be a problem, considering it is not an AX model. Any ideas on this method too?
Add vertices to a Plan under the Input using Subdivision:
Add vertices to an Extrude using Segs
Combine Meshes will lock the verts as one object so everything deforms together.
You'll have to experiment with deform on a prefab. As I recall it again depends on the original's vertices, if there are enough it will deform "smoothly", if there aren't enough it will be janky.
You can get the exact cell size from a Path Repeater (called Actual Bay?) and use that to control the X-scale of the prefab.
Sweet! -- That's exactly what I needed! -- Thanks @wetcircuit!
LOL -- He still hasn't changed the name for that??
I guess that's a good thing as long as the documentation is so sparse (...at least as long as there is someone here who still knows what it's actually for!)
A video tutorial about runtime handles:
Great tutorial! Much appreciated!
The potential for this is unlimited but you know what is the most advanced thing I can imagine doing with this?
Game levels that shape-shift gradually while you're playing them.
I don't have an example but imagine just setting up some lines to be corridors and then making them wiggle their way around the inside of a bounding box in slow-motion. When the lines cross, an intersection opens up. There would also be rooms along the outside of the bounding box that the corridors can connect too. Some containing monsters, one containing the exit.
Yeah this sounds cool. And by the time they finish the "puzzle" the entire environment has changed and all the beasties released.
I've been using Archimatix in Sinespace the last few weeks. The potential for interactive environments like that is huge, and since Sinespace handles everyone's avatar and the MMO networking that is some major headaches out of the way. You can upload "regions" (large Unity scenes) with AX buildings that can be manipulated with handles and conform to the terrain – most of the AX stuff works as expected so you don't need to stamp AX models or create prefabs. Just build a scene with live AX models, and add a couple of components so your region is accessible and the avatars have somewhere to land.
They've just opened up scripting access to the AX parameters (as of yesterday), so AX could be tied to scene elapsed-time, or time-of-day, or even just getting to a "goal-area" that triggers a change (doors, gates, bridges)…. They have vehicles and a quest system too, I haven't tried them yet but imagine "pod racing" through a mutable course where passing a trigger brings in new obstacles or narrows the track...
I've got a kind of tutorial about AX in Sinespace (plus some other AX goodies) coming next week.
I noticed that you are on sale. I just wanted to ask again (I know.. I'm sorry) if the bezier curves are breakable yet?
While AX is on sale, and Rory is in Greece teaching how to make new procedural ruins in C#
I will be guest-hosting ARCHIMATIX WEEK!
Login to Community.Archimatix.com to vote in our Next Features Poll
I've added 20 possible Next Features from forum discussions and user-requests. Some have made brief appearances in the beta and are in various stages of development, some have been hinted at by Rory, Some we've been waiting on since launch, and some are new….
If you don't see your feature in the Poll, add it to the forum post or start a discussion in Feature Requests.
AX development resumes when Rory returns (mid-September) so make your choices known!
I've googled "breakable bezier curve"… …and, I am not sure this is an actual thing, at least not by that name. Google doesn't know what it is, and I'm not actually sure what you are asking for either.
Beziers are on the FreeCurve node and I have a feature request in the Poll for FreeCurve to be fully-parameterized. That would (probably) include an update to "catmull bezier" which was mentioned one time by Rory, but there are other flavors of bezier controllers…. Does the "breakable" flavor have another name? Or maybe if I understood what you're asking for I could nudge Rory about it…? (He may not answer you this week since he is away)
Hi, thanks for the reply.
I am talking about the handles on the free-curve to be breakable. Right now the handles run parallel with each other. If they were breakable it means you can freely move each side of the handle independently. Which means you make things like sharp corners and all sorts of lovely shapes.
I have asked Rory before about this and he said that he plans on adding it. I just check back every other month to see if it is in. Otherwise, the only alternative is to learn turtle programming, and I am not very technically minded for that.
Ahhh! I understand. I will make sure that is included in the discussion of new bezier controls.
(and yes, that would be a great feature!)
Actually @dnoparker I just tried this… It's not what you were asking for "broken bezier" but it's effectively not that far different...? I just use the adjacent bezier. The "broken" points are not bezier, they are corners...
I understand that it is not what you are asking for…, but it's not exactly a deal-breaker. I don't see what can be accomplished with a broken bezier that can't be accomplished this way too with (maybe) a few extra points…?
(...but not sure it needs extra points since I can mix corners and bezier, and bezier segs are adjustable in the node, bezier is really just adding more points on the model at regular intervals, it could be done most accurately with only corners and no bezier smoothing. leave the smoothing to the mesh node tools.)
Anyway, it doesn't seem like a "block" to functionality. It's just a slightly different way to look at the 2D shape.
I understand where you are coming from. There are definitely some shapes that are difficult to achieve without breakable handles (the Batman logo for example). Like you said, you can just add more points. It just irks me to know that complex shapes can be achieved with 3 points instead of like 10, and in the process look a lot cleaner and run faster.
Makes the whole thing a lot more editable too. If you want certain sections of the shape to go in a different direction, you have to contend with moving dozens of points around instead of just dragging a single broken handle.
I am from a 2D animation background, so maybe it's just me that wants this! but thank you for considering it. Hopefully, there will be a chance to add it in the future.
Someday you will show me how you make a batman logo with 3 broken beziers, I'd sure like to see that.
I spent about 10 sec attempting to trace this with bezier LOL, but stopped because tracing the actual points is faster and more accurate. I can add as many points as the shape needs, no more no less.
Bezier gets converted to points and adds more facets (there's an adjustment setting for how many are created), so bezier are NOT using fewer points or running faster.
Meanwhile normals and tangents are smoothed on the 3D mesh. You can have a low-poly model with smoothing, or a high-poly model with facets…. Adding a half-dozen extra vertices to "round" each curve, could add thousands of polygons that aren't even necessary.
I get wanting a familiar 2D workflow, but artist-to-artist (I'm not the developer) Unity is never going to have clean 2D vectors, the choice is smoothed triangles or faceted triangles. Batman logo is maybe a challenge for 2D bezier, but in 3D it is just another triangular model.
For automated conversion, there's 630 Studio's SVG Importer which converts to turtle in a few clicks. It has a quality setting to convert angles into points.
Haha I knew you would do that!
Like I said, I understand your point! I am just thinking about it from a design standpoint. If you were asked to change or flip a curve on that Batman logo, it would require you to move all those points you've created individually. Whereas if the handles were broken then all that would be required is to drag a handle.
You win though! Ill keep hushed
LOL, yeah, not going to work in all situations… It's ok for quick and just a few points, but tedious if I have to go back and clean up all those X-Y points one-by-one…. this shoddy placement would not make a bossman happy
But thanks for the challenge!
Archimatix was updated on the store yesterday to 1.1.7
According to the description Rory has added some hooks for a C# API… That means controlling AX without a graph...
Which is one of the choices on the community Next Features Poll
But, I promised tutorials this week! Here's Tips for Parametric Models.
It covers organizing the child gameobjects by labelling AX nodes, and combining meshes by material – very useful if you stamp geometry into a scene or create prefabs -- typical AX model will stamp tons of child meshes and colliders into the scene… with cryptic emo-band names like Extrude_7…
Clean it up into just a few gameobjects with sensible names! (Good for runtime models too!)
Another video tutorial for ARCHIMATIX WEEK!
Animate AX runtime models with Playmaker
This one is a step-by-step, with some tips at the end to get models animating faster and smoother – rebuilding the model causes dropped frames, but a runtime model can be animated without rebuilding.
Turn on youtube CC for text, or read the full transcript on the Community Forums:
I've made something a little different for today.
Secrets of the Archimatix Interface – including Rectify, Subdivision, and that little white cross on all the Shape Nodes… cryptic features I didn't understand for the longest, a few things I'm asked "where is the…?" and "How do I…?", and 1 or 2 quirks that I uncovered accidentally.
I've made a Buzzfeed-style "listicle" of animated GIFs, but I couldn't decide on a click-bait-y headline…
T̶h̶e̶ ̶S̶H̶O̶C̶K̶I̶N̶G̶ ̶T̶R̶U̶T̶H̶ ̶a̶b̶o̶u̶t̶ ̶A̶X̶ ̶t̶h̶a̶t̶ ̶y̶o̶u̶ ̶t̶o̶t̶a̶l̶l̶y̶ ̶w̶e̶r̶e̶n̶t̶ ̶e̶x̶p̶e̶c̶t̶i̶n̶g̶
H̶o̶u̶s̶e̶w̶i̶f̶e̶s̶ ̶W̶e̶i̶r̶d̶ ̶T̶r̶i̶c̶k̶ ̶c̶o̶u̶l̶d̶ ̶s̶a̶v̶e̶ ̶y̶o̶u̶ ̶m̶o̶n̶e̶y̶,̶ ̶a̶n̶d̶ ̶a̶s̶s̶e̶t̶ ̶c̶r̶e̶a̶t̶o̶r̶s̶ ̶a̶r̶e̶ ̶A̶N̶G̶E̶R̶Y̶
W̶T̶F̶ ̶i̶s̶ ̶R̶e̶c̶t̶i̶f̶y̶ ̶a̶n̶d̶ ̶o̶t̶h̶e̶r̶ ̶t̶h̶i̶n̶g̶s̶ ̶y̶o̶u̶ ̶w̶o̶n̶t̶ ̶l̶e̶a̶r̶n̶ ̶b̶y̶ ̶R̶T̶F̶M̶
10 Archimatix Features Explained with GIFs
1. Rectify on the Circle Node…
What does Rectify do, exactly?
It's obvious the shape is being tilted, but what is it for...?
Find the answer, plus 9 other quirks of the Archimatix interface you probably weren't obsessing about the way I was.
Have a fun weekend!
is this clickbait, because It clicked the bait
I forgot to post artwork!!!
The "trees" are Archimatix with parametric control over the height and radius of trunk, the width of the steps and how many times they twist around.
In the twilight hours of Archimatix Week I hope you had a few minutes to check one of the tutorials.
I am not going to finish my last video tutorial before tomorrow morning, but I'll get it up in the next couple days…. Better to do it right than to try to hit a deadline…
I just wanted to pop in to share a little teaser screenshot and some information about an upcoming asset that I will be releasing (Package was uploaded today) that has some custom integration in it just for Archimatix.
You may find this of interest as well, as it provides the functionality you are looking for I think ,breakable beziers, though im not sure if its in the way you want as it generates Turtle Script instead of using the free curve node, which may, or may not be more beneficial to you.
One of the biggest complaints about Unity has always been the inability to just draw something in the editor right there in the scene, and turn it into a mesh. This has also been one of my biggest 'I wish' things with Archimatix as well. FreeCurve is good, and when it works it works, but when it doesn't, it fails miserably. A lot can be done with Turtle Script, but who really wants to sit there and type all that out? Editing it is just as tedious.
Enter Poly Doodle...
Poly Doodle is a 2D Shape, Spline, and Bezier editing tool with extrusion and exporting capabilities. Poly Doodle is its own full fledged editor extension, but features integrations for exporting to Archimatix graphs making drawing exactly what you want, how you want it a breeze.
Brief Feature Overview
Custom UI allowing you to quickly and easily draw shapes, splines, and beziers.
Supports Compound Shapes and Clipping operations.
Live scene view and editing capabilities.
Multiple Extrusion Exporters
Export Shapes, Spline, and Beziers to Archimatix Graph nodes.
Save and Load Shapes, Splines, and Beziers as objects for editing and use in other 630 tools.
Expandable - easily create your own plugins, tools, and exporters for poly doodle.
Integrated with many other 630 Studio products.
Poly Doodle (Basic) will be released for $35.00
I will post more videos and pictures of Poly Doodle and its Archimatix Integrations here in the coming weeks.
Archimatix Master Pack on Unity Asset Store
The Archimatix Master Pack is the complete set of add-on tools and nodes that 630Studios currently produces specifically for Archimatix and huge discount over buying each package individually.. This pack is truly immense and adds all sorts of new nodes, SVGImport capabilities, a Re-Designed UI, and additional tool windows like a graph mini-map all of which makes Archimatix almost a whole new experience.
I have included the full package breakdown in this spoiler as its rather long.
Spoiler: Full Master Node Pack Details
This pack contains everything found in the following packs.
Archimatix Shape Nodes
Archimatix Mesh & Material Nodes
Archimatic Pro Tools & Nodes
There are currently 9+ Tools, 23+ Nodes included from the above packages included in this package.
AXModel Parameter Viewer
Shape Merger Layout Tool.
Re-designed and improved Graph UI.
Extended Turtle Script.
Shape List Grid Repeater
Shape List Repeater
Shape List Selector
Shape List Spanner
Mesh List Selector
Material List Selector
As always any questions, comments, or feedback is always appreciated.
For product questions, support, and general discussion feel free to join us on our Discord Server.
those trees are so cool although in a level that would be a very long and plain staircase. could you add a platform every X many steps?
I was thinking there would be a circular "gatehouse" every-so-often to cover the transition from lower trunk to middle and upper, that way I could re-use the same trunk model (just reduce the radius) until I get up to the branches (where the "village" is)….
And I started thinking about who the gatehouses are suppose to keep out, and if the village has multiple routes to the ground on adjacent trees, they are probably within arrow-shooting distance so a cluster of gatehouses all defend each other from different angles like towers on a castle… That's a potential game, getting up or down a tree while another tree is shooting at you.
Then I realized I needed a Unity tree tutorial because eventually it isn't Archimatix anymore, the branches are windzone trees in a prefab instancer – and are there giant acorns that fall out of the tree and smash the roof??? It is giant trees or tiny people?…. bla bla, basically I over-thought it. hahaha. But thank you. I need to finish it!
@wetcircuit, for some reason the forum software stopped notifying me about posts to this thread, and I just now saw how many walkthroughs you've added. Your work is excellent, and thank you for sharing your techniques!
@roryo I've been testing Archimatix with a new asset, called Bakery, which does GPU lightmap baking. I've run into the problem of Archimatix objects not baking in Bakery, though they do bake (with some small issues) in Enlighten. Originally I reported this to Bakery's developer, but when we investigated together we found that the UV2 generation in Archimatix produces some overlapped UV2s that are causing Bakery to skip processing.
The author of Bakery is implementing a workaround for me, a way to override the validation of the UV2 and proceed anyway, but I want to engage with you on the AX side to help isolate and fix the bug. I've been using AX quite a lot, and it is absolutely my go-to tool for procedural geometry. I've got a very complex cinematic scene in the works that I'm ready to lightmap bake, and it is almost impossible to do that in Enlighten or Progressive because it takes *days*. I really need to get Bakery working in order to finish my project.
The author of Bakery has created a shader to visualize UV2 overlaps, and gave me permission to share it with you and others.
What's the best way for us to engage and work on this together? I'm willing to do testing at my end, but will need some guidance. I can replicate the problem in a very simple AX scene. Just place a default-sized arch on a flat plane, assign materials, set the appropriate flags in AX to enable the lightmap bake, and then try baking with Bakery.
I also noticed that the flag to create UV2 maps seems to switch off by itself after doing that just once. Is that intentional? In testing, I kept forgetting to turn that back on for each build.
Sorry to bring a bug report. Make no mistake, I absolutely *love* Archimatix and have created things in this asset that would have taken so much longer with Blender.
Thank you @syscrusher
I'm jealous of Bakery it looks fantastic (windows/invidea only, I think)
It's working well for me so far, and the dev is responsive about bug fixes. It's not beta, but it's an early release and still has some rough edges, but the dev is polishing those. Yes, it's Nvidia Windows only, because it uses CUDA compute logic.
Hopefully the hardware-agnostic GPU lightmapper in 2018.3.0 will deliver some fancy later in the year
Hi @syscrusher - for the secondary UV's, AX simply uses Unity's Unwrapping function:
Unwrapping.GenerateSecondaryUVSet ( Mesh mesh, UnwrapParam settings);
AX generates standard Unity meshes and, on request, these meshes are fed into this function. I am using the default UnwrapParams. Might something other than the default help? I don't have a Windows machine, so I can test it myself. In the meantime, I will take a look at the arch to see if there is anything unusual in the mesh generated such as a rogue vertex, etc. Does the problem happen on anything simpler, like a Box?
Per the flag to generate secondaryUVs, it is expected to go off after you regenerate the model. The reason is that the secondaryUVs are computationally intensive to generate (in the order of seconds) and, since one goes through many iterations in parametric design, it makes sense to generate the secondaryUVs only just before baking. I have tried to find an event such as "WillBake" to automatically generate the secondary UVs on baking, but I could not find one.
Glad to hear you are generating complex cinematic scenes with AX! Are there ant screenshots you can share?
Ha - finally!
Will be out this week!
Hmm.... I wonder if their function is broken? That would be yucky.
I don't know, but now that you've explained what you're doing, I can go search that out in your source code and experiment. Thanks.
I'll test that. I picked the arch as a simple test case that was still interesting enough to be a meaningful test. Standard Unity cubes work fine in the same scene in Bakery, but I haven't tried an AX Box shape to see if it functions equivalently.
My initial tests of this were on your demo scene with the Romanesque architectural structure.
What about leaving that flag alone (as the user sets it) if I am in "manual build" mode? Then it's on me whether my manual builds take 500 mS or 15 sec.
Soon, I hope. I have about 90% of the environment completed and am working on the characters and animations next. I'd share a screenshot or two privately if you want, but I don't want to share publicly just yet. :|)
Would you consider comping a copy of AX to the developer of Bakery so they can test? Or perhaps sharing a limited-time license with them under a private NDA? (I know that's a lot to ask...I have a published asset of my own, so I understand if you're not okay with that.)
Sure - could you ask him to send me a PM?
I will do that. Thanks, and please let me know what else I can do to help from either end. I'm not trying to shove this off onto you, just wanting to bring together all three of us if we can, to make both assets even better and more compatible.
Hope I haven't already asked
Is it possible to set a parameter to random? Like if I build a structure can I go in and say I want it to have a random height, radius and number of sides each time I drop one in the world? And can I draw a circle and tell it to fill with evenly spaced instances of said structure resulting in a town?
With scripting this is easy. My AX-Playmaker video is about animating exposed AX parameters with random floats. If you control the parameters externally with scripting, it can be any game mechanic (random, achievement, faction, local resources, etc).
But internally, no. Many of Unity's MathF functions are in AX, but not Unity's random.range or random.insideunitcircle…. Easy to assign with a scene manager script, but AX can't do it on its own.
I used a "self-randomizing prefab" to generate the room lights in the pic below. AX scatters the prefabs inside the building with a PrefabInstancer, but the prefab itself has a playmaker FSM attached that decides whether a light should be created and picks the color and intensity from a random range. (They could also be controlled by a time-of-day script, etc).
I've also used proxies where AX generates a named/tagged GO and a script looks for them in the scene.
I'd love a random generator inside AX . But scripting is probably the only way to get the models to regenerate in the same random way the next time you visit that location, or to create "smart" models that are reacting to scene information, evolving over time, changing because of resources), and can be saved with PlayerPrefs.
Is it possible to use a proxy AX Model too? -- I think this could sort of add "subgraph" possibilities with the potential for "culling" based on the camera, and all without taxing the hardware too much.
What about generating a random seed? -- You just share this random seed with the next guy (or the next scene, before it loads.)
Minecraft does it this way, so I see no reason AX couldn't do it, assuming it grabs its "new" random values from the same random string each time (with a pre-calculated "index" for each node that would be decided upon the initial generation of the random seed, and then upon each subsequent node added).
Just an idea...
This method is supported by Dungeon Architect and (I'm pretty sure) DunGen.
You have to be a little careful with predictable pseudo-random sequences, because even if the sequence of numbers is predictable and repeatable, different parts of your code need to be sure to ask for the "next number" in the same temporal order every time. IOW, you don't want 20 GOs each asking for their number in an order that depends on the GOs' execution order during init as decided by Unity. Dungeon Architect solves this problem by having one external integer determine things predictably for the entire model, and if you have more than one DA model in your game, you track which numbers go to which models somewhere outside DA itself. This is a very solvable problem, but one that needs to be reflected in the code design.
Yeah, that's definitely a consideration… I would not stick all those lights up in a model ever again, LOL. If you can do intelligent culling and generating…, or get AX to hand it over to Unity as much as possible, that's big.
AX is like a noodle spline modeler, and a runtime-thingie-maker, and then Rory is into architecture so it is all framed as an architecture tool. But really everything is so granular, there are no rules. AX does great stuff with the repeaters (like terrain), but there's so many other systems to be the "brains". I think at some step it makes sense to go to script control, but it would be great if there was a "tumbler" to jiggle all the variables.
I remember Rory had a name for it: Replicants…?
Like, I guess it is a step up from Duplicates... It's duplicates with the exposed numbers jumbled, or something…. Makes more sense on a parametric model for stamping.
Not sure how it would work as runtime. Random everytime? Sequential (growth)? Cycle (seasonal), cycle once then stop (age and die)…. I think if AX gets a jumbler that's a good thing, but I can't see going over a certain level without breaking into some code or FSM brain…. Although I just started programming the nodes, so who knows?
@wetadigital, good memory! Replicants are like Instances with the ability to vary the main control parameters of the source object. That way you could have one node/Grouper that defines the logic of the parametric object, but then each Replicant of it can vary the parameters. With a Replicated tower, you should be able to get individual buildings like these from a single source node:
The Repeaters could have JitterTools added per control parameter, so as the Repeater creates and distributes Replicants, it creates unique versions of the building (or of a set of buildings that it chooses from a Channeler node).
In this way we could make entire cities procedurally.
A semblance of this is possible in AX now. In the following city example, the JitterTool attached to the repeater is only varying the Y-scale of the source model and the Repeater is stamping out Instances rather than Replicants. Image if the Y-scale jitter was controlling a Height parameter. Then the number of floors would increase with height. etc.
You can make a city like this right now in AX with just a few nodes:
In the following example, the size of the block is influencing the Y-Scale of the buildings. When switched to Replicants, then each building would have more floors.
I had a version of Replicants working a couple years ago, but the generation chain in AX has gotten more complex since then. I will do some evaluation to see how big a job it is to get Replicants going quickly. One caveat with Replicants: they will be slower than Repeater Instancing with scaling jitter, since each unique building is generated individually rather than simply given a custom transform matrix to a Unity Instance of the object.
Sounds great, @roryo! -- I don't think that will be a problem for those of us either modeling in AX, or using an imposter system...
That being said...
Do you think you could hook replicants (and maybe AX models themselves) up to something like "Amplify Imposters" (or, as I noticed on your features request forum post, perhaps implement a basic imposters solution yourself?) to get it performing smoothly for those of us using Replicants extensively?
I think it would be a great option to include for all models generated in AX imo... >___>
ahhh, that was me actually. Rory never agreed to (or suggested) imposters. I threw that one in for me.