Curve Deform with Geometry Nodes - Blender 4.0 Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 88

  • @DKNS_DSGN
    @DKNS_DSGN 6 หลายเดือนก่อน +6

    Great tutorial, thank you! For anyone trying to this in 4.1+ there are the Index Switch nodes for the confusing switch mess for axis selection. :)

  • @displaced_vertex
    @displaced_vertex 3 หลายเดือนก่อน +3

    The most underrated TH-cam Blnder channel. I recommend it to every friend :P

    • @Erindale
      @Erindale  3 หลายเดือนก่อน

      Thank you so much

  • @xard64
    @xard64 9 หลายเดือนก่อน +1

    For someone trying to learn geometry nodes this tutorial was very helpful, informative and easy to follow.
    I don't know if there's easier way to do this but as an extra task I created using the new for node tools with 5 additional nodes (if not counting the for loop input and output) a variant of this curve deformation setup which automatically copies the assigned mesh all separate splines found inside the given curve object. This allowed me to just keep on drawing new splines to inside curve object edit mode to repeat the same object quickly.

    • @Erindale
      @Erindale  8 หลายเดือนก่อน +1

      Nice! That sounds like a great extension!

  • @EduTriRo
    @EduTriRo 2 หลายเดือนก่อน

    I just watched 50 seconds of your video and learned what I came for, after another one hour video of yours, great stuff!! thanks a lot, I´ll probably watch more

  • @ghostarts5767
    @ghostarts5767 9 หลายเดือนก่อน +1

    Thank you so much, this is amazing. earlier i made a geometry node setup for hair cards where i was creating ribbons inside geometry nodes, but it had quite a few limitations, this is so much better with a lot of flexibility,
    Thank you

  • @BenP-hr2rc
    @BenP-hr2rc 4 หลายเดือนก่อน +2

    If you are generating a curve inside of your node tree to use this "Curve Deform" node group on, you have to make sure to place a "Set Curve Radius" between the curve and the node group. Curves built in the modeler seem to have a default radius of 1, while ones built in geometry nodes seem to default to a radius of 0 until you set one. So if you are trying to use this with a curve generated inside of your node tree and not imported from outside of the node group with an Object Info node and aren't seeing anything, that is probably why you aren't getting any output (everything being scaled to 0 based on the radius).

    • @Erindale
      @Erindale  4 หลายเดือนก่อน

      Yeah this is correct. I think that should be patched to have a default of 1 for radius but I’m not sure if it’s in yet

  • @jeffg4686
    @jeffg4686 11 หลายเดือนก่อน +1

    I just wanted to put my vote in for a plugin for some of you geonodes gurus.
    Basically like Firefly Text Effects, but for Blender where you can do cool things like wrap it on a curve, and apply additional effects.
    Maybe I can contribute some day after seeing some others geonodes setup for some of the initial ones (I'm no geonodes guru at all).
    Maybe we can get an open source plugin going where many people can contribute, else it sure does look like a good money opp.

  • @Gelo31415
    @Gelo31415 5 หลายเดือนก่อน +1

    You explained things really well - this is such a great tutorial!

  • @fifdesign89
    @fifdesign89 2 หลายเดือนก่อน +1

    thx for the video. came here from a blenderartist forum link - trying to build a waterslide-generator with different parts on different sections on a curve. still a way to go but this helped definitely :)

    • @Erindale
      @Erindale  2 หลายเดือนก่อน

      Wow sounds like a very cool project! Good luck!

  • @Nikkes02
    @Nikkes02 11 หลายเดือนก่อน +2

    You are a good teacher. I know this particular stuff already, but if it was a new topic for me, I'm sure I could follow this and then be able to apply this on my own 🙂

    • @Erindale
      @Erindale  11 หลายเดือนก่อน +2

      Thank you I’m glad to hear that!

    • @Nikkes02
      @Nikkes02 11 หลายเดือนก่อน

      @@Erindale Just wanted to add that a lot of your other topics do touch on things I haven't thought of (or from a fresh perspective), although I have done years of work as a graphics programmer. So thank you 😎

  • @hereb4theend
    @hereb4theend ปีที่แล้ว

    Aw sweet, Christmas came early this month! Many blessings and good cheers to you Mr. Erindale.

  • @OneGhastlyGhoul
    @OneGhastlyGhoul 4 หลายเดือนก่อน

    Very minor tip, but you can subdivide even faster by pressing Ctrl + number (depending on the number of subdivisions you want). Saves a few seconds.

    • @Erindale
      @Erindale  4 หลายเดือนก่อน +1

      As long as you don’t have emulate number pad turned on! I have a full size keyboard now but when I learned way back I was just on a laptop so used the number row for camera views. Old habit

    • @OneGhastlyGhoul
      @OneGhastlyGhoul 4 หลายเดือนก่อน

      @@Erindale, that makes sense ofc.

  • @zetsology
    @zetsology 8 หลายเดือนก่อน +1

    Thank you. I found what I couldn't figure out by myself.

  • @danialsoozani
    @danialsoozani 11 หลายเดือนก่อน +1

    Another great tutorial! thanks for sharing it here AND amazing Pigeon Tool Bag add on you've mentioned!

    • @Erindale
      @Erindale  11 หลายเดือนก่อน +1

      Thanks! The addon is so powerful!

  • @ArcaneErudition
    @ArcaneErudition 6 หลายเดือนก่อน

    When you plugged in the mix node I was like 🤯

  • @SEKOPASA
    @SEKOPASA 2 หลายเดือนก่อน +1

    You are a amazing teacher.

    • @Erindale
      @Erindale  2 หลายเดือนก่อน

      Thank you so much

  • @JohnFrazier
    @JohnFrazier 3 หลายเดือนก่อน

    When I came for a Blender tutorial, I didn't realize there would be a geometry lesson included.

    • @Erindale
      @Erindale  3 หลายเดือนก่อน

      Every day’s a school day 🙌

  • @KevinProost
    @KevinProost 9 หลายเดือนก่อน +6

    You're my new Bob Ross

  • @legofreak5769
    @legofreak5769 ปีที่แล้ว +2

    i was just trying to figure this out like 2 days ago... thank you!

  • @Zhiznestatistiks
    @Zhiznestatistiks 11 หลายเดือนก่อน

    Thanks, it helped me to better understand how curve sampling works.

    • @Erindale
      @Erindale  11 หลายเดือนก่อน

      A very useful thing to know when working procedurally!

  • @hansgoudey9052
    @hansgoudey9052 11 หลายเดือนก่อน +2

    Very pretty thumbnail! Always enjoy your thoughts on node groups :)

  • @kimmolaine665
    @kimmolaine665 11 หลายเดือนก่อน +6

    Stupid question: at 13:20, you're using a Position node. How do we know, or specify, that the information comes from the cube and not from the spline? I mean, you created this network so that it's attached to empty (?) and not the cube, so it can't flow from there.
    I'm fairly new to Blender and have a background in Houdini where we usually need to specify these kinds of things😂

    • @crisishotl1ne
      @crisishotl1ne 11 หลายเดือนก่อน +7

      Since geometry nodes works backwards, it'll collect the context for the position node from the Set Position node that it's (eventually) plugged into. Since we plug the cube geometry into the set position, it'll reference the cube vertex positions.

    • @kimmolaine665
      @kimmolaine665 11 หลายเดือนก่อน +1

      @@crisishotl1ne Thank you, that explains it

  • @TripTilt
    @TripTilt 11 หลายเดือนก่อน +3

    Quite a complex topic and setup but made easy with your great explanations!

    • @Erindale
      @Erindale  11 หลายเดือนก่อน

      Thank you tt! I appreciate it

  • @sander-wit
    @sander-wit 11 หลายเดือนก่อน +3

    Just so you know, you're awesome.

    • @Erindale
      @Erindale  11 หลายเดือนก่อน +1

      Thanks so much 😁

  • @Node_Art
    @Node_Art ปีที่แล้ว +1

    This will be useful for what I'm working on. thanks my friend !!

  • @johnsmith56920
    @johnsmith56920 3 หลายเดือนก่อน

    I've done it thanks. Very useful. What I'd like is to have the curve deform modifier applied ot a portion of the mesh (no problem here) BUT with a fall off that would smoothly integrate the deformation into the mesh. This would give us a procedural tool for organic modelling. I'd love that.

    • @Erindale
      @Erindale  2 หลายเดือนก่อน +1

      Should be able to use a geometry proximity and a map range to set the falloff based on distance from the curve?

    • @johnsmith56920
      @johnsmith56920 2 หลายเดือนก่อน

      @@ErindaleI am going to try that. But, if an expert (means you) were to make it nice, flexible, user friendly, ... My problem with the ones I've done is that the deformation is not consistent. If I move the center of the deformation slightly the deformation can rotate madly around the normal.

  • @Intercepto
    @Intercepto ปีที่แล้ว +1

    Amazing tutorial thank you for this. I always wondered how are meshes getting deformed on curves.

  • @BagBuff
    @BagBuff 4 หลายเดือนก่อน

    Random Q: Do you know of a way to find the Length or Factor of a spline at it's intersection with a single vector value? ie. I have multiple splines that each cross over x=0 and x=4 plane. I want to trim them perfectly to those X values while maintaining their Y and Z values where crossing those planes. I am stumped.

  • @YvesBonheur
    @YvesBonheur 11 หลายเดือนก่อน +1

    Always amazed by your amazing tutorial!!!☺

    • @Erindale
      @Erindale  11 หลายเดือนก่อน

      Thank you

  • @duncanrudd348
    @duncanrudd348 11 หลายเดือนก่อน

    Great thinking and explanations as always Erin!

    • @Erindale
      @Erindale  11 หลายเดือนก่อน

      Thanks Duncan!

  • @Feddark
    @Feddark 3 หลายเดือนก่อน

    Thank you for the super tutorial!

  • @Kendrixx-f1b
    @Kendrixx-f1b 4 หลายเดือนก่อน +1

    Erin I'm tryin to follow up with the tutorial and which video do I need to watch in order to follow up the first 2mins I just cant find it

    • @Erindale
      @Erindale  4 หลายเดือนก่อน

      Ah sorry I was not clear about that. I mean it more like “here’s one I made earlier”. This is the tutorial that makes that curve deform setup I use at the start

  • @MarcLuscher
    @MarcLuscher 7 หลายเดือนก่อน +1

    I'd LOVE to know which video you "previously made the curve form in" ... i can’t currently see any to figure this out

    • @Erindale
      @Erindale  7 หลายเดือนก่อน

      I mean that like “here’s one I prepared earlier” but it’s an example of what we’re actually making for the first half of the tutorial

  • @RayGalactic
    @RayGalactic หลายเดือนก่อน

    Thank you!

  • @nicholasgonzalez
    @nicholasgonzalez ปีที่แล้ว +1

    you are a wizard!

  • @richard_robert
    @richard_robert หลายเดือนก่อน

    Oh it's Big Brain time.

  • @AhmadHossam
    @AhmadHossam 2 หลายเดือนก่อน

    If spline type is poly subdivision the curve 200 before using the curve defoem node

  • @Ciklopcat
    @Ciklopcat 8 หลายเดือนก่อน

    Thank you for your work!

  • @luzid.vision
    @luzid.vision 6 หลายเดือนก่อน

    Great! Wonder why the mean radius of a curve is not affected by apply scale, would actually make sense! Such a tricky thing to apply scale to your curve and everything is bullocks :D Am I right in my assumption that instances are actually pointers?

    • @Erindale
      @Erindale  6 หลายเดือนก่อน +1

      Yes instances are just referencing the same mesh data which is why they need realising to be modified independently

    • @luzid.vision
      @luzid.vision 6 หลายเดือนก่อน

      @@Erindale You are an amazing tutor. Thank you for deepening my understanding of this incredible software.

  • @arktessellator_10
    @arktessellator_10 5 หลายเดือนก่อน

    i have a technical question regarding how the geo nodes flow of computing is working in this vid. my understanding is basically any field computation of input node, in this case position node which will take the position of each point as a field to which ever geometry it is connected to within a geo node tree,
    now the position node above the bounding box node, its connection goes to maprange to seperate xyz which is connected to sample curve node, now this sample curve node is operating on geometry (which is the bezier curve here) so it forms a tree according to my interpretation thus this should imply that position node will be taking the position of the bezier curve point. But this assumption of mine is clearly wrong as that position node is taking the position of cube seperating its z value, meaning that this position node is sort of connecting to the next big tree associated with geometry connected to set position node which takes the cube as input geometry, if this wasnt the case ig the final output wouldnt have worked as it looks. so the question that remains to me is what is the thumb rule that i need to follow when deciding which geometry associated with which tree is being evaluated by that node (specifically input nodes)?

    • @Erindale
      @Erindale  5 หลายเดือนก่อน +1

      Great question! In 99% of cases the field is evaluated on the context of the geometry it connects with. This is slightly different for sample nodes and raycast and geometry proximity. For these nodes you have something evaluated on the target geometry and then some way you want your main geometry (in this case the cube) to retrieve it from the sampled geometry.
      For example the Geometry Proximity node has a “Sample Position” socket. This is what position you want your main geometry to sample from. By default it’s the position of the geometry but you can specifically set it. Same on the raycast etc.
      With the Sample Curve node, it can sample a specific attribute or it also passes through position, tangent etc by default. With our use case here we want each point of our cube to “know” where on the curve to sample from. The factor is a predictable 0..1 range so we just need a float value between 0 and 1 on our main geometry to sample that curve.
      Same idea with the Sample Index node. You use an integer on the main geometry to correspond to specific indices of the sampled geometry.
      If you’re familiar with coding, these are like a dictionary. We have a key:value pair which is spline factor: position. If we want to retrieve the position from the spline, we need to give each element of our cube a key to go and get the right thing.
      Hopefully this will become more obvious in the future. There’s been discussions around how to visualise things more clearly.
      So rule of thumb: the field is evaluated on the context where it meets geometry EXCEPT from the sample nodes where you’re telling them how you want to map data between two different geometries.
      Does that help?

    • @arktessellator_10
      @arktessellator_10 5 หลายเดือนก่อน

      @@Erindale yes that seems very logical since now that you mention that the goal of sampling nodes is to pass the value or attribs to next target geometry. Thanks🫡!

  • @joachimfure8030
    @joachimfure8030 8 หลายเดือนก่อน

    I tried using this to control the "tentacles" of a jellyfish, everything seemed to work until 18:10, my tentacles(which is also curves generated in geo nodes) dosnt rotate at all when I tilt the curve. Will continue to google around, any steps that need to be different since im dealing with curves, and not a mesh?

    • @joachimfure8030
      @joachimfure8030 8 หลายเดือนก่อน

      Of course I found the solution right after I asked. I was applying all this AFTER I converted the curve to mesh, if I do it before it works.

  • @Rybz
    @Rybz 11 หลายเดือนก่อน

    For making a curve deform with GN (with tilt, etc) it always needs to Realize Instances or can it also be done without? (For example, for a very long line of repeating meshes)

    • @Erindale
      @Erindale  11 หลายเดือนก่อน +1

      My next tutorial which is being edited now is about doing arrays deformed to splines so you’ll get to see how you can work with instances in that one. It will result in identical instances though so you can’t deform them to the curve, just instance them along

    • @Rybz
      @Rybz 11 หลายเดือนก่อน

      @@Erindale Omg, will it have rotation, start position offset and tilt? Cause this is exactly what I was needing help with rn!! An array with deformation along a curve and one without. :P

  • @manchot29
    @manchot29 11 หลายเดือนก่อน

    Great stuff!

  • @Will_Scobie
    @Will_Scobie 11 หลายเดือนก่อน

    excellence!

  • @rbettsx
    @rbettsx 5 หลายเดือนก่อน

    26:46 .. I guess a 'Swizzle' subgroup would avoid the spaghetti, and be more generally useful, these days.. and there's a menu option, too... oops.. someone else has just mentioned that

    • @Erindale
      @Erindale  5 หลายเดือนก่อน

      Yeah definitely going to add one of these to ETK that would be very useful

  • @horngshianngan5313
    @horngshianngan5313 10 หลายเดือนก่อน

    Excuse me, by any chance anyone know why my Suzanne still remain stretch even followed the steps after 27:50 😢sorry I'm newbie.

  • @blackvertigoion36
    @blackvertigoion36 3 หลายเดือนก่อน

    😅 I've been frustrated for hours trying to get this to work, only for me to realize I've been using the normal node instead of the position node 🤦‍♂️

  • @shmuelisrl
    @shmuelisrl ปีที่แล้ว

    when did they add factor as a subtype to integer? 🤔

    • @warcat3d
      @warcat3d ปีที่แล้ว

      At least since 3.6, not sure when exactly it was implemented

  • @SamMan6410
    @SamMan6410 11 หลายเดือนก่อน

    I'm having trouble with the Axis selection no matter what combination I make with the switches I never seem to have all axis to be blue. Can someone help?

    • @Erindale
      @Erindale  11 หลายเดือนก่อน +1

      If you invert the normal from the sample curve node, does that solve it?

    • @joshuaborner
      @joshuaborner 11 หลายเดือนก่อน

      @@Erindale It did for me. Thank you!

  • @theMindRobber1
    @theMindRobber1 8 หลายเดือนก่อน +5

    Maybe i’m in the minority, but i absolutely do not understand this. I’ll keep trying though

    • @Erindale
      @Erindale  8 หลายเดือนก่อน +2

      You’ll get there eventually! This is not a basic thing though and it’s using a bunch of geo nodes more abstract concepts of data flow so don’t be hard on yourself not understanding immediately!

    • @galacticbroadcastingcompan8756
      @galacticbroadcastingcompan8756 5 หลายเดือนก่อน

      You're not alone. Keep going.

  • @PiterTraceurFA
    @PiterTraceurFA 3 หลายเดือนก่อน

    jesus christ dude, 35min?

    • @Erindale
      @Erindale  3 หลายเดือนก่อน +1

      If you just want to get the tool without understanding the process you can download the file from the link in the description

  • @ruslandad365
    @ruslandad365 หลายเดือนก่อน

    Amazing Tutorial!!!
    Thanks!!!