I manually copied each roller by hand and rotated/translated into place but it is not exact. How can I automate this?
-
4This may help https://blender.stackexchange.com/questions/6023/how-to-make-a-circular-array-using-offset-object-as-center – Dontwalk Feb 11 '18 at 15:19
2 Answers
Doing it by hand can be very precise and actually one of the faster ways.
First figure out how many rollers you need, then divide 90 by that number and you have the amount of degrees between each roller. For this example, I use 9 additional rollers, making it an even 10 degrees.
Then place the 3D-Cursor in the center of your curve and set the pivot point in the header to 3D-cursor.
Select your roller, duplicate it with SHIFTD and then without even confirming that hit R10RETURN.
That way, Blender considers duplication and rotation as a single action, not two.
You can now use the repeat hotkey SHIFTR to create lots of rollers and they will be rotated evenly around the cursor. No manual translation needed anymore.
If they don't have to turn, you could use an array modifier with object origin or dupliframes, spin tool or similar, but this solution is the fastest that I know and leaves the rollers as separate objects, ready for animation.
Sometimes it might be useful to put the object center of the rollers into the center of the curve using set origin in the tools area. But you should be fine with the method mentioned above.
You can use ALTD to create linked copies instead of SHIFTD if you want to save a bit of memory and filesize. All rollers will then use the same mesh.
- 16,049
- 5
- 48
- 78
While it is possible to do this manually, it can be slightly tedious, especially if you need large numbers of rollers. Another disadvantage is that you have to repeat this method if you want to change the angle.
Another technique would be to use the array modifier. Note that this method will make it difficult to animate individual rollers. Add the array modifier to the roller, and create an empty close to the roller:
Now, in the modifier, set the count to the number of rollers you need. Uncheck relative offset and check object offset. Under object offset, select the empty you just created:
Select the empty. Whatever transformations you make will be repeated as many times as you specified in the modifier. In your case, you will need some rotation and translation:
Now, you have more control if you later want to change the angle or the separation.
- 2,472
- 15
- 24
-
A good solution as long as the rollers are not intended to do any rolling. The array modifier is one big mesh with the object origin at the original object. Separating it afterwards and moving the object origins still won't fix the local axes. You'd need to parent them to bones then. – Haunt_House Feb 12 '18 at 00:08
-
@Haunt_House Ah, now I understand why you suggested copying the rollers. The OP didn't mention that they had to do something, though. – Reinis Mazeiks Feb 12 '18 at 00:14
-
Both solutions have their uses. The array modifier with object offset is a creative beast. – Haunt_House Feb 12 '18 at 00:32
-
This is a good way to make the rollers, makes it easy to make adjustments until they are the way you want them. After they are in place you can apply the array modifier. You can separate by loose parts if you want each as individual objects. – sambler Feb 12 '18 at 10:28




