MOGRAPH: extrude on spline?


I have not been able to successfully get the “extrude poly selection along spline” feature to work with the EXTRUDE object in mograph. The extrusion never remotely seems to follow th path. I’ve tried to subdivide the spline, use different interpolations, reverse spline sequence, play with the axes on object, spline and extrude object. Subtle changes do occur, but I dont get the extrusion to follow correctly. It almost looks like it consistantly mirrors the shape of the spline.


instead of using the spline option in the extrude deformer, use a spline effector to control the extrude deformer, and linke the spline into that. This way it matches your spline 100%


Same thing here testing on a simple cube. Extrusion doesn’t want to follow the spline at all and doesn’t seem like it’s mirroring because moving the endpoint of the spline and it’s handles makes the extrusion go in all different unpredictable directions.


Yep, works like a charm.


I was just starting to play with the splne effector
thanks kai


I just read in the HElp doc–the spline function in Extrude actually generates its own virtual instance of the spline and places it on the poly selection normal–so it wouldnt work without the spline effector it seems.


I managed to get the reverse thing by using Soft interpolation on the spline. Havn’t got a clue why this happens though.
This happens if the spline is Bezier and is set to Adaptive and Subdivided
Cubic and subdivided go bonkers as well.
I’m still clueless though.


Ah–much better now.
And I can alternatively use both methods (extrude with spline selection) if I just want “clones” of the extrude deformation created on any poly selection I create. Nice.


Set the Spline effectors/Parameter/Transform mode, to Relative to spline or the extrusion may be offset.


Yeah–I also had to send my spline and effector to the poly axis (at least I think i did that)


Oh HO, there we are. I’d been exhuming my old Extrude Along Spline plug and ignoring all the errors it created in my console. Plus this is dynamic–move a point on the spline and the extrusion moves also.


Yes–this is potentially better then EAS.
Would be nice to get controllable tertiary branching. Maybe theres a way using the mograph data node to choose virtual polygons from the first extrusion, Then extrude from them. You would have to be able to tell the extruder somehow to make the poly “square”. It can be done with some of the effecors and using the visibility function–but its just a random crapshoot as to where those new branches will be created. getting into Houdini territory here i guess.


It’s possible, what you do is duplicate the mesh, make it editbel, select the polygons you want, make that into a selection tag, drag & drop the seleciton tag back to your other model, and use that in the second extrude.


That’s not working so well. Let me see if I understand correctly.

  1. Current State the hierarchy that has the first Extrude Deformer working properly;
  2. In this duplicate mesh, select a poly on the branch and make it a selection set;
  3. Take this selection tag BACK to the original mesh, the one on which the branch is still parametric;
  4. Use that selection tag in a second spline effector, with a second spline, and a second Extrude Deformer.

I was sketchy on whether that’d work considering that the first branch wasn’t converted, still parametric, and it doesn’t so far. I’ve double-checked my object references. Here’s a file upload of how I’ve done it, along with a top-level screenshot.


Oh I see, Per’s talking about making more first-level branches from the trunk, and Joel and I are talking about trying for second-level branches coming from branches.


Nope, i’m talking about second level branches, what your’e doing is right, but make sure that it isthe second extrude, not the first, the order int eh heirarchy is what’s important (alos that hte naming is correct and that you have moved the tag correctly onto the parametric object), also don’t expect it to work in situations where the polycount is changing.


I think Per’s saying that, (or at least this is what Im thinking) you extrude your first set of branches, make a copy, make editable.

Then you select the polys you want from the first branches , from which to extrude. Delete all but those polys. Now turn on your original procedural branches. You can grow your first set of branches, and then once those branches are grown, turn on the visibility of the second set, and have those grow. And so on. Its not 100% procedural–which is always nice, but its a good solution.

EDIT–just read Per’s post–I’ll have to explore later…
(the poly count would be changing—since the new branches would be adding new polys)


Nope, it’s literally just duplicate your procedural object (make sure to not include your hypernurbs unless you want to extrude polygons out of the hnobject itself), do a current state to object on it, select some polygons on it, store their selection, apply the selection tag to your original proccedural object that you ran current state to object on, and use the new selection you made in the extrude deformers selectino box.


But the poly selection tag from the second object, once placed on the first, is referring to nonexistent polygons. Or at least referring to polygons on another object about which it knows nothing. In a way, what you’re saying reminds me of those ‘hidden’ poly selection sets on Extrude Nurbs, C1, C2, etc.

I mean, the ability to do this is profound. For someone like Joel, to make veins, for me to make tree branches and roots–for all kinds of stuff. XFrog doesn’t do this as well as this method, if it works. Easily made, smooth intersects on complex branching objects, good lord, I’ve been wanting those since the very first thing I did in Cinema. This qualifies as a Big Deal.

If it’s the hierarchy that’s important, is it possible to look at my example file and re-arrange it?


Sure, feel free to post the scene file, the thing to remember is that the selection tag just stores indexes of where polygons/points/edges are selected, they don’t have to match the object they’re on, this hack depends on the deformer order being correct:

geometry (tag1, based on geometry)(tag2, based on current state to object geometry)
|- extrude applied to tag 1
|- extrude applied to tag 2

and the fact that the geometry that the second deformer gets will have the polygons that are marked as selected in the selection tag itself.

You can carry on the workflow indefinitely, however if the polygon count changes further down then like any modeling history based workflow it will result most likely in a mess.