Hot answers tagged

10

The object could be a simple (say) Bezier curve, with a Bevel Object (another curve) assigned to it in its Properties > Geometry panel. The 'Tilt' property of individual control points on a Bezier curve is keyable: So just right-click it to set keyframes appropriately.. if you want a loop, set first and last keys to be visually identical, and go into the ...


9

Problem Definition Animation Nodes provides a set of nodes that returns some information about particle systems, however, non of which provides any information regarding hair children, and this is a known limitation in blender. To get around this, we shall replicate the children system in blender's particle system using Animation Nodes. Inputs Our input ...


8

Spline From Branche Starting from version 2.1 of Animation Nodes, the Splines From Edges node has a new method called Spline Per Branch which minimizes discontinuity by combining the vertices of each branch in a single spline. Below is a comparison between the Splines Per Edge (left) and the Splines Per Branch (right) methods: Sking Modifier The author ...


5

One way to do it is to use a discretized implementation instead of a parameterized one. We store the parameter (location along spline) of the object in a custom property. At each execution, we increment that parameter by the velocity that we can compute from the relation you provided above. The divide node is a unit conversion which you can replace with ...


3

Find and select the end control points Hit F to join them with a new segment Select the point which goes least in the direction you want, and X dissolve it.


3

Animation Nodes have a node called Trim Spline Node which can be used to dynamically trim splines. There are certain complications, however, if one decided to use this node: Edges are not directed, so you may observe some splines growing outward from a vertex and other splines inward toward a vertex. There no easy way to determine which edges belong to ...


3

Add your objects to a group or a collection. Then get the objects using the Collection Info node or the Objects From Group node. Finally, get their locations using the Object Transforms Input node. We now have the points locations, we use the Find Close Points and Splines From Edges node to create the splines as follows:


2

I see that if you give the curve object/spline a tiny bit of Depth, then you can set a material to it and see it in viewport. I have exaggerated the Depth here and set it to 'Full' but you can see here what is going on. If the spline does show a color in the imported material, possibly it will show after giving it some depth.


2

Starting from this thread (Make a 3D tube with a bezier curve), I figured that the curve modifier had to be used somewhere. First the spline and the length however. Use the following spline settings: For the length of your object, you can use the array modifier with "Fit Type" set to 'Fit Curve' and then select the curve you want to trace. Then pick your ...


2

What you are trying to do is already possible using a hook modifier. Manually you can go into edit mode, select a point and press ⎈ CtrlH->Hook to new object. This is also available to mesh objects which hooks the new object to the selected vertices. We can create hooks using python. I'm not sure we can do this without the hook_assign operator, so we ...


2

Viewport preview is not supported for bezier curve objects automatic texture coordinates except Object, at least for 2.7# series, this may change in future versions but for the time being it is a known limitation. Both Generated and Use UV for Mapping options are only visible while rendering in Cycles/Blender Internal, OpenGL support does not display these. ...


2

This answer will be using the technique described in my answer here. After getting the parameters of the intersections, we prepend it with zero and append it with 1 representing the start and end of the spline respectively. The prepended list represents the starting parameters of the sub-splines between intersection points while the appended list represents ...


2

1) Z-buffer (real depth map) Place a camera above the surface Set it to Ortographic. Then go in Camera view (Numpad 0) and change its Clipping values in such a way that they are the "tightest" possible to display all the curve (i.e. the biggest possible "Start" and the smallest possible "End") Render the image (F12), then select "Z-Buffer" in the list ...


2

Try setting the twist parameter to 'Z-Up': You can also manually control the tilt of the curve for each vertex or control point of it in the n-panel:


2

I think this rig should do nicely!


2

First, I'll show how to morph objects distribution from one curve to another curve then we will use the same node-tree to morph a curve. ========================================== Morphing Object-Distributions: 1) First, we have to sample the curves (A and B) which we will use to distribute the objects, both curve's sample-amount should be the same: 2) ...


1

There are several methods: In blender 2.82, In geometry node there is a socket "random per island", that will generate color for separated meshes within the same object. Be aware, currently this socket can only work for cycles, not possible in eevee. while using "curve object output" node, it's preferred in a loop, and input an object list. Since you are ...


1

Array modifier fit to curve. Am of the opinion that Spline.calc_length() would only return the length of the non deformed local coordinates of the curve. It is unaware of what of many objects it is the data part of... trying to bend it out of shape with modifiers and shapekeys etc. Fortunately can estimate the length simply and quickly using method below. ...


1

As far as I know this is currently unsupported, since curve geometry itself and Bevel Object are both part of Object Data. Maybe this will eventually be supported when Library Overrides project is merged, until then here are two workarounds. Workaround 1 - Curve deform modifier Use bevel objects on independent "dummy curves" with a simple straight ...


1

These are relationship lines which display the relationship between parented objects. You can disable this in the viewport overlay settings.


1

My attempt at this problem is quite similar to Omar Ahmad's answer in that I calculate the spline parameter of the intersections – i.e. their positions along the spline's length in the range of zero to one – and use this value for the placement. (Visible hollow copy only for demonstration purposes. Origial filled box used for calculations is hidden) As a ...


1

Summary Make sure Align origins of curves with Snap the first vertex position of curve. you have not repositioned the bones when you want to see standard rest position. I believe you should either have Separate Back spine concept and Separate Tail concept for Control concept. Fresh Start. Clear preference. Switch direction of spine bones. Less ...


1

In the new beta v2.1, which you can download from the release page, the Evaluate Spline Node returns the radii of the samples:


1

I managed to find a solution, but it's a bit of a hack. Most notably, the process involves baking the animation, so it needs to be redone every time you want to change the layout of the curve. select every bone in the chain and make sure "Inherit Rotation" is turned OFF keyframe your "helper" IK curve to whatever you want the train to do (I wanted mine to ...


1

I've accepted the answer from @Omar Ahmad, but I also wanted to show the solution I came up with. Rather than using the trim spline node, I instanced a bunch of curve objects, and fed each single edge into each of them, and then set their bevel end value based on the distance from the effector object. Here's an animated gif and a hi-res screenshot showing ...


1

Surely there's an easier way to do this. Had a fiddle with this and came up with code below, which I'm not sure wins on either count of speed nor cleanliness. Adds a new spline with the same coordinates, and handles as bezier points of spline zero in original, with one point popped off. Even with all that code didn't copy handle type for left and right. ...


1

Use the excellent csv module built into Python for that. The Python documentation has plenty of examples on how to read and write CSV files. Once you have a row, you can convert individual bits to other objects, like so: vec = mathutils.Vector([float(coord) for coord in row[1:4]]) The explicit conversion to float is necessary as CSV is untyped, so every ...


1

curve.splines is a list so you can test how long it is - if len(obj.data.splines) > 0: print('There is a spline in this curve') You can treat the points the same - if len(obj.data.splines[i].bezier_points) > 0: print('We have a point in this spline') Depending on what you are doing you could also use a for loop - for s in obj.data.splines: ...


Only top voted, non community-wiki answers of a minimum length are eligible