0

I'm making a tank tread, and I've got the treads working for half of the tank. I use a plane with an array modifier along a curve. I have my tread object (circled in red) parented to the mesh, then face instancing turned on in the plane. The result is what I expect (light blue arrow).

So then I try to mirror the thing along the x-axis, but what I get is...an abomination (dark blue arrow). This seems like it should be relatively easy to fix but I just can't get it right. Can someone give me a hint at what the problem is?

EDIT: Blend file:

EDIT 2: I'm wondering if it has something to do with this ancient reported bug. The decision was made not to fix it, apparently.

enter image description here

Kevin Milner
  • 217
  • 2
  • 14
  • 1
    I cannot tell exactly what is causing the issue here. It would be helpful if you provided the .blend file. – Nate_Sycro27 Jun 07 '20 at 15:36
  • @Nate_Sycro27 updated the question to include the blend file. Thanks! – Kevin Milner Jun 07 '20 at 15:56
  • what appears to be happening is the instanced object is rotated on its local z axis by 90 degrees. I've applied rotations to everything and it didn't seem to solve it. I don't know why the local rotation gets clobbered when it is mirrored. – Kevin Milner Jun 07 '20 at 15:58
  • another symptom of something "off" is I had to flip the instance object along z so the instances all faced the correct direction, but that might just be because of where the curve starts for the array. – Kevin Milner Jun 07 '20 at 16:01
  • 2
    Hello :). It works just fine when the modifiers (array, curve, mirror) are used directly on the tread-link object. Do you really need to use instancing? – jachym michal Jun 07 '20 at 18:22
  • 2
    @JachymMichal hi! from my understanding, the instancing way is the "best practices" way now-a-days. If I apply the curve directly to the tread-link, doesn't that distort the object as it goes around the curve? That's not what I want in this case. – Kevin Milner Jun 07 '20 at 19:34
  • 2
    Kevin is right. There is bending of each tread link where it goes around the tightest turns in the curve object. Instancing seems to be a decent way of addressing this issue. But I have been puzzling on this for some time and still can't find the cause of the problem. – R-800 Jun 07 '20 at 20:42
  • it seems like a 90 degree rotation is being applied to the mirrored object. I have just one in the array count, and I've refactored the components a bit so they all have "natural" origins and orientations. For whatever reason the instancing mesh (a plane) is correctly mirrored but the instance is 90 degrees off. I do not see where this could be occuring. – Kevin Milner Jun 08 '20 at 20:50
  • 1
    I think you're right about the 'bug'. I can see the constraints on the devs.. it's not easy to see a way around this. Funnily enough it does work if you get the planes to emit the track-elements as particles: https://blend-exchange.giantcowfilms.com/b/N34w657W. .. Like this answer. But I don't really think this is more than a comment .. it's a bit of a hack. – Robin Betts Jun 09 '20 at 21:25
  • @RobinBetts at this point I'll take the hack! I'll check it out, thanks! – Kevin Milner Jun 10 '20 at 12:39

0 Answers0