2

I am trying to make a Quidditch scene from Harry Potter. enter image description here

So I am trying to make outer diagonal trees.

I used Array modifier Object offset, target to empty at center

I can make "Circle" but I can not make "Ellipse". enter image description here

I tried to change Location, Rotation and Scale of Empty and Wood Object.

Thank you.

(Blender 2.90 Windows 10)

moonboots
  • 155,560
  • 7
  • 105
  • 171
Hana
  • 471
  • 4
  • 11

2 Answers2

4

Create a plane, create a curve, scale the curve in Edit mode to make an ellipse, give the plane an Array and a Curve modifier with the curve as Curve Object:

enter image description here

Create your tower object, parent it to the plane. Select the plane, in the Properties panel > Object > Instancing, press on Faces, your tower will duplicate around the ellipse shape:

enter image description here

To make each instance independent, select the towers and press CtrlA > Make Instances Real. If you want them to not share the same mesh, go into the header menu > Object > Relations > Make Single User > Object & Data.

moonboots
  • 155,560
  • 7
  • 105
  • 171
  • but you could also do this with python - batFinger would need 2 mins for this ;) – Chris Apr 14 '21 at 09:48
  • 2
    wait for the Robin Betts's full procedural solution!!! – moonboots Apr 14 '21 at 09:49
  • 2
    ok, i will wait!!! So Robin, why do you need so long? – Chris Apr 14 '21 at 09:50
  • 1
    Probably he's not as strong as we thought :// – moonboots Apr 14 '21 at 10:37
  • This is a bit disappointing...so I always looked up to my heroes: Iron man, Supergirl, Wonderwoman, Spider-Man, Fantastic four, batFingers, Robin Betts, Moonboots...but looks like I have to reduce my list. :D – Chris Apr 14 '21 at 10:54
  • @Chris Thank you for your polite explanation! Sorry for late reply I should eat dinner with my family ; ; – Hana Apr 14 '21 at 10:54
  • Ähm...thanks but you should thank moonboots - he was it. I just tried to joke around... – Chris Apr 14 '21 at 10:55
  • @Chris It worked!! But I cant make each instance independent... I could find "Make Instances Real" and pressed it but nothing happened... – Hana Apr 14 '21 at 10:56
  • And you should check his answer as correct - he will be happy about that – Chris Apr 14 '21 at 10:57
  • @Chris yes! This place people is really kind – Hana Apr 14 '21 at 10:58
  • Nope - not everybody. but most of them! – Chris Apr 14 '21 at 10:58
  • There might happen nothing but now you can select each one „alone „ right? And change each one if you want. Else you would change all of them. – Chris Apr 14 '21 at 11:00
  • @moonboots Thank you for really polite explain with images !! It worked!! But I cant make each instance independent... I could find "Make Instances Real" and pressed it but nothing happened...

    And I want to upload my image but I don't know how to... ; ;

    – Hana Apr 14 '21 at 11:00
  • @Hana: please thank moonboots. He wrote the answer! – Chris Apr 14 '21 at 11:01
  • select the towers and press Ctrl A > Make Instances Real, nothing will happen except you can now manipulate independently each tower. Another thing to do if you want them to not share the same mesh is Object > Relations > Make Single User > Object & Data – moonboots Apr 14 '21 at 11:03
  • @moonboots Ahhh It worked!! Thank you so much... Actually I tried this problem over a hour.. I7m not good at English so I can not say well but I am grateful to you! – Hana Apr 14 '21 at 11:09
  • @Chris Also thank you too! what a kind person... – Hana Apr 14 '21 at 11:10
  • Thank you❣️ – Chris Apr 14 '21 at 11:15
3

Follow path with offset.

When using follow path with fixed position one end is offset factor 0.0 the other 1.0 or for a cycle this is same. Half way is 0.5 etc.

enter image description here

Make a tower at origin, give it a follow path constraint, using the ellipse, with fixed position and no offset factor.

enter image description here

And oops, make sure that scale is applied on your ellipse AltS Scale ie it has unit scale and select follow curve on constraint to have the towers aligned to ellipse.

enter image description here

Now duplicate the mesh and move it around the ellipse using the offset factor...... being a scripter that's too much hard work, so have written a little script to do just this. Or via UI with Shift or Alt D for duplicate linked (same mesh) or unlinked respectively. And set the offset factor for each.

Little script, select tower, run script to make other distributed copies.

import bpy
from bpy import context

copies = 16

for i in range(1, copies): # copies - 1 tower = context.object.copy() # comment following to have linked copies (same mesh) tower.data = tower.data.copy() # an unlinked dupe (own mesh) tower.constraints[0].offset_factor = i / copies context.collection.objects.link(tower)

A bonus here is can easily move the goal posts, in case they are not all to be equally spaced around the ellipse by adjusting the offset_factor to have them remain on the path. Picture in OP almost looks like it may 18 spots with the two pointy end towers removed. No doubt all details are well covered on the 'net. (Kudos too to J.K. Rowlings for her support of the IRC chat servers)

batFINGER
  • 84,216
  • 10
  • 108
  • 233
  • Oh my God, I don't know how to say but at first let me thank you so much ; ;

    And I'm sorry for the late reply. I didn't have notifications set up.

    The person who answered me before was talking about you. So I asked Google, but the search didn't turn up anything. But now that you've actually answered, I feel like I've been saved by a hero.

    – Hana Apr 15 '21 at 07:50
  • I'm new to scripting and I feel like I'm working magic. In order to become a great mage like you, I'm going to learn scripting as well as CG.

    I know this may be a bit presumptuous of me, but I would love for you to see this quidditch scene when it is finished.

    Thank you very much for your help.

    From a little muggle

    – Hana Apr 15 '21 at 07:51
  • sorry I did not know about to accept the answer. Thank you so much! – Hana May 20 '21 at 14:02