-1
$\begingroup$

I am trying to map an image of an arrow around a torus and then rotate the torus to animate it, around both its major axis and its minor axis.

Either I can rotate the mapped image, or I can rotate the torus? Can I create an array of a cylinder and map the image of the arrow onto the array?

I have tried using armatures in the torus and rotating the armatures both around the minor axis and the major axis of the the torus but this kinks the surface of the torus.

The single arrow, on a grid 24x24, extends to the full extent of the torus' surface, which is divided into 24x24 faces to facilitate mapping - whether in Blender or not, but in 2D animation.

Ultimately two torri are linked, each with its own arrow image, one positive and the other negative.

Here is a link to the entire completed animation done in 2D: enter link description here

Here is a .gif of the completed animation done in 2D. I would like to be able to duplicate this 2D animation in 3D Blender. enter image description here

Here are some more images to illustrate the mapping: Male positive Arrow image mapping Female negative Arrow image mapping Here is a 2D map of the arrows, but I am using 12x12 rather than 10x10, and the arrows are full bleed in that they both extend each to the limit of the torrus mappingsenter image description here

https://sites.google.com/site/vid932008/animation/blender#TOC-3D-Computer-Animation-is-unable-to-resolve-the-rotation-of-the-Spirit-of-One

$\endgroup$
2
  • 2
    $\begingroup$ Is the link what you are trying to make? Because I sure did not get that from your question. You might want to edit it and try to make it more clear what you want to model. $\endgroup$
    – David
    Feb 21, 2018 at 0:22
  • $\begingroup$ Ideally all information to understand the question should be contained in the question. $\endgroup$ Feb 22, 2018 at 1:41

2 Answers 2

3
$\begingroup$

An alternative is to animate a texture.

Here an arrow is mapped on top of the material of the torus. Animating the coordinates for the texture makes the arrow move around the surface:

enter image description here

enter image description here

$\endgroup$
3
  • $\begingroup$ What sorcery did you use to unwrap the torus cleanly and undistorted? $\endgroup$ Feb 22, 2018 at 1:58
  • $\begingroup$ @Haunt_House just one vertical seam, select a quad right next to the seam, select all (so that all are selected but one is active). Unwrap using follow active quads... $\endgroup$
    – user1853
    Feb 22, 2018 at 3:31
  • $\begingroup$ @Haunt_House also: blender.stackexchange.com/questions/96198/… $\endgroup$
    – user1853
    Feb 22, 2018 at 3:45
5
$\begingroup$

If you wanted to animate an arrow going round a torus, this is one way of how I would do it:

Model your arrow, then shear the arrow and warp it to make it coil.

enter image description here

Create a lattice and make sure the arrow fits inside. I used ten divisions, less might still be ok. Give the arrow a lattice deform. Parent the arrow to the lattice.

Then use warp again, this time on the lattice. It makes sure the arrow bends around the torus.

enter image description here

Now you just have to animate the lattice in a circle and animate the arrow with local rotation. The lattice will deform the arrow while it rotates.

enter image description here

Here's the finished result:

enter image description here

If you want a snug fit, use a shrinkwrap modifier on top with just a smidge of offset. It might even make the lattice unnecessary.

enter image description here

Of course there's more than one way of doing this. If you want to turn the torus in itself, here's how:

Create a torus and an armature. Doesn't have to be low poly, it's just a bit easier. Put the cursor in the middle of the top edgeloop.

enter image description here

Move the bone in Edit mode to the cursor. Then put the cursor in the middle and duplicate the bone. You can use SHIFTR to do t quickly.

enter image description here

Create a ninth bone and give all other bones Copy Rotation Constraints to that bone, local coordinates to local coordinates. Parent the torus to the armature using envelopes. You can also use weight paint or any other method, just make sure that every bone has only one edgeloop under his control. No kinks whatsoever.

enter image description here

Finishing touches. I moved the ninth bone to the center, gave all of them a custom shape and rotated the ninth bone so that it's relevant axis points towards the screen. When I rotate the main bone clockwise, all others rotate inwards.

enter image description here

And the finished result:

enter image description here

$\endgroup$
13
  • $\begingroup$ I really like both answers !!! $\endgroup$ Feb 22, 2018 at 2:32
  • $\begingroup$ It will be a challenge for me to achieve either or both of these methods with my limited Blender experience but your answers make sense to me and inspire me. $\endgroup$ Feb 22, 2018 at 2:33
  • $\begingroup$ Can't get it to work. First the torus flips around, than I cannot get the envelopes to influence the torus to make it rotate around the minor axis. I thought I had it rotating around the minor axis but then again, maybe I never did get that to work. . . . .. . .. . . . . .. .... .. .. .. . . .. .. . ... . . $\endgroup$ Feb 22, 2018 at 22:07
  • $\begingroup$ There's a difference between "I can't get it to work" and " I haven't done it yet". Try to get the armature to work with all the copy rot constraints. Ignore the torus until they do what they're supposed to do. Switch on axes so you see whether they all point in the same way. And I am still pretty peeved about what you wrote on your website about what Blender cannot do. $\endgroup$ Feb 22, 2018 at 23:11
  • $\begingroup$ I apologize for that statement that Blender "cannot" and I admit that you have been able to get it to do exactly what I am trying to get it to do. $\endgroup$ Feb 24, 2018 at 2:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.