Some curves ignore the curve resolution, Active Spline field missing settings

I’m experiencing a bizarre issue: Certain curves appear to offer options that other curves do not, specifically the ability to set the resolution of the active spine. I noticed this because one curve is smooth (follows the resolution setting) while the other is not (each curve point is a also a geometry vertex). Both curves are paths: I checked everywhere and couldn’t find anything that should be different between them. Attached is a simple blend file with the two curves.

curves.blend (803.4 KB)

When selecting the first curve, you get this set of settings under the Active Spline section which contains all options as desired:

Screenshot_20210426_174157

But when selecting the second curve, the section only offers two of those options, the rest are inexplicably gone!

Screenshot_20210426_174205

This is interesting.
Set Spline Type of the second curve to NURBS and the options would appear again.

I noticed before that when Path is reduced to 2 points (and then extruded) it’s as if it turns into a Poly Curve (but not exactly). It helped to set it to some other type and back to NURBS again.

Thanks, that solved it! I fixed my curve by selecting it then pressing F3 and looking for Curve - Set Spline Type - NURBS. I wasn’t aware of the different spline types till now.

Only left with one annoyance: I’m actually using a curve object that contains a bundle of curves, converted from a patch of hair particles to a curve. Once I change the curve type I notice its geometry shrinks and doesn’t meet the start and end points of each individual hair. I can fix this by selecting splines one by one then in the Active Spline section enabling the Endpoint checkbox. This is a lot of work to do manually however! Is there a way to automatically turn that option on for all splines after changing the type?

Select your curves, check Endpoint
Now hover over Endpoint > Alt-Click > Copy to Selected

Just a note, its also available in the context menu if you are in edit mode

@stray : Just reread this. Not sure how to interpret MirceaKitsunes
description, but does this work for you with joined splines?

Ooooh, you’re right :expressionless: I misunderstood

Well, I haven’t found an operator for this.
This bit should work (in Edit Mode, paste into Python Console and hit Enter):

for spline in bpy.context.object.data.splines:
    spline.use_endpoint_u = True
1 Like

Yeah this didn’t seem to work, I did all the strands manually: Took 5 minutes of constant clicking but it got the job done. Now I have some good looking curve grass I can instance to my terrain using particles, with very good looking results so far :smile: I wanted this method as it gives me more control, especially over the resolution which is super easy to balance based on quality versus render time.

Oh thanks @stray, i was just asking cause I had hoped you found a way to do it directly. Thanks for the codesnippet too. My approach if there are many joined splines is to separate them beforehand, but it would have been nice if this wouldnt be neccessary.