I think I have understood the basic principles of animating an arrow traveling along a curve. My problem is that my arrow becomes twisted as it travels along the curve. What is it that I do wrong? Does it somehow has to do do with the fact that I'm working in 2D
-
$\begingroup$ Try changing the Twisting setting from the default Minimum to Z-UP in the Curve settings. $\endgroup$– robCommented Sep 20, 2018 at 8:00
-
$\begingroup$ blender.stackexchange.com/help/someone-answers $\endgroup$– ChrisCommented Jun 29, 2021 at 13:46
1 Answer
If you want your arrow to grow along the curve:
- Give your arrow an Array modifier, choose Fit Type > Fixed Count, and End Cap > arrow like you did.
- Give your arrow a second modifier, a Curve modifier, and choose the Path as the Object.
- Now increase the amount of Count of your Array, the arrow grows along the curve.
- You can now insert keyframes so that at frame 1 of the timeline there is only one duplication and at frame X there is as many duplications as you want.
- Note that, anyway, the arrow will be messed up at the U turn of the curve, as your arrow is not subdivide, is big, and the curve is sharp. If you don't want the front of your arrow to be deformed it should be a separate object and it should move along the curve (with the method explained below).
If you want your arrow to move along the curve:
You gave your arrow a Curve modifier while, for your purpose (follow a curve without deformation) you should have given it a Follow Path constraint.
Right now it is behaving like it is supposed to. You've given your arrow a Curve modifier, which means that it follows the curve you've chosen as Object and it deforms along this curve. As your arrow is big and doesn't have a high poly mesh, the deformation is a bit messy. Even with a high poly mesh it won't give anything great.
If you want your arrow to follow the curve without any deformation, you need to give it a Follow Path constraint:
- Remove the Follow Path you gave to the curve (it is useless, the curve won't follow any path).
- Delete the Curve modifier you gave to the arrow.
- Delete the previous Follow Path you gave to the arrow and give it a new one.
- In this modifier click on the Animate Path button, and enable the Follow Curve option. As Blender doesn't know how you want to orientate the arrow, try different Forward (X is the good one).
- Now the arrow follows the curve without any deformation.
Now if you want to control the speed of the arrow along the curve:
- Select the curve, open the Graph Editor window, on the left panel (Path > NurbsPath.001), unfold NurbsPath.001 and click on Evaluation Time. Open the right panel with N and click on the Modifiers tab. Delete the Generator modifier (X). You've delete the animation you've automatically generated when you created the Follow Path constraint you gave to the arrow, and the arrow doesn't move any more. You have to reprogram the animation.
- In the Properties panel > Data > Path Animation, choose the amount of Frames you want. 100 by default is ok. It means you choose to segment your curve 100 times. The Evaluation Time will determine at what segment of your curve your arrow will be at the time you want. For example place your timeline cursor (green bar) at 1 and create a keyframe (i) on the Evaluation Time > 0.00. Now move your timeline cursor to 20, go back to the Evaluation Time, choose 50, and create a keyframe. Now from frame 1 to frame 20 the arrow moves from the beginning of the curve to its middle.
- If you want the animation to be linear and not smooth as it is by default, in the Graph Editor, press t and choose Linear.
-
$\begingroup$ Ok. But I didn' add a "curve modfier"? I added an array modifier. Could you a little bit more explicit, I'm pretty new to modifiers and constraints. $\endgroup$ Commented Sep 18, 2018 at 12:48
-
$\begingroup$ you added a Curve modifier below the Array, and you don't need the Array either, Array is made to repeat an object, it's not your purpose here $\endgroup$ Commented Sep 18, 2018 at 14:50
-
$\begingroup$ Well I want the arrow to grow along the curve. $\endgroup$ Commented Sep 18, 2018 at 16:09
-
$\begingroup$ Also, If I take away the modifier, I loose the the actual arrow (there are two objects in layer 11: a "base" and the actual arrow). Please bear with me! $\endgroup$ Commented Sep 18, 2018 at 16:17
-
1$\begingroup$ you should edit your question and explain precisely what you want with some drawings, so that we give you the best way to do it $\endgroup$ Commented Sep 18, 2018 at 16:30