What are the differences between “cp” and “cv”?
hmm… I’m not sure I can answer that… I’m guessing it’s something to do with the abstract parent classes that these nodes all inherit… Either way, I always use .cp for everything because it’s interchangeable with every point type, CVs, Verts, Lattice points, etc…
For curve with a degree of 3, controlPoints is usually NOT on the curve, then how to connect locator1.t to the point exactly on the curve?
this is where it all get complicated… The short answer is that I don’t thnk you can… at least not in the way you’d want… you want to put a locator exactly on the curve at a specific position, and then when the user moves the locator the curve shape updates… right? unfortunately, I’m pretty sure this is a no-go, at least in scripting… I don’t think curves can behave like that… However, this is pretty much exactly how the Curve Editing Tool works, so it’s theortically possible…
The other way round is possible though, you can use animation constraints to fix objects onto curves, and this is the easiset and most straightforward way of doing it (afaik)… but you can also place locators in a curves underworld… this sounds spooky but it’s just a way of placing something into an objects u(v) space, rather than 3d coordinate space. This method is far more complex in theory, but in code it’s actually simpler than using constraints, and also means the locators won’t slide about when you move the curve.
probably not what you want in this case though.