1
$\begingroup$

I am a beginner in Blender. I am making a roller coaster and I want to put an array of stands under my roller coaster tracks. To do that, I used DupliFrame on my pillars, parented them to my NURBs curve, and then limited their rotation using Limit Rotation. This gave me the scene below. However, this causes the pillars to be evenly spaced with respect to the curve and not with respect to the ground. Is there an easy way to do this ?

The file is attached as well

enter image description here

[https://drive.google.com/open?id=1g-UzOInMW0pRw8jEQBtX2N-L75uJDFSA]

$\endgroup$
6
  • $\begingroup$ Could you give some indications about how the stands are made? I mean probably there is an array and/or start and end caps (maybe) but I can't see exactly how this is to be connected to the rails. $\endgroup$ – lemon Apr 21 '18 at 17:28
  • $\begingroup$ Please use the edit link at the bottom of your question (i.stack.imgur.com/lXFuK.png) and add more information on how you set up your project. Add images that might help us understand your scene and settings. $\endgroup$ – user1853 Apr 21 '18 at 17:30
  • $\begingroup$ I think I might have found a solution. I am trying to work on it and will post a solution with pics (as well as edit the original question with pics). Sorry for being terse. $\endgroup$ – Santy.8128 Apr 21 '18 at 17:59
  • $\begingroup$ @cegaton: I added some more details to the question. I also edited the main question a bit since I found the solution myself (as explained in the question). $\endgroup$ – Santy.8128 Apr 21 '18 at 21:24
  • 1
    $\begingroup$ blender.stackexchange.com/questions/1013/… - seems to address a similar problem? I've never used the clamp-to constraint for modeling myself - perhaps someone else can fill in the details. $\endgroup$ – Robin Betts Apr 23 '18 at 8:45
1
$\begingroup$

Starting with your 3D Rollercoaster curve, 'RC_Curve', in whose Curve > Shape properties, Twisting is set to Z-Up.

Throughout, we will put all object origins at the first vertex of RC_Curve. Also, it will be good practice to duplicate modified objects and stash them somewhere, before applying modifiers. Hide parts as necessary. The only reason I've given things names is to keep the description short, and I'm afraid I haven't included all the keyboard shortcuts, for the same reason.

  1. Create a small plane at the first vertex of RC_Curve, 'Track_Section'.

enter image description here

  1. Add an Array modifier to 'Track_Section'. Fit Type: Fit Curve. Curve: RC_Curve. Relative Offset, by a small number in X, say 0.1. 'Merge' checked.
  2. Add a Curve modifier to 'Track_Section', Object: RC_Curve. Deformation Axis: X. Apply the modifiers.

enter image description here

  1. Create a ground plane, ('Ground',) in XY, below RC_Curve, large enough to accommodate RC_Curve in Z projection, including vertex handles.

enter image description here

  1. Duplicate RC_Curve, ('RC_Ground'). In Edit Mode, set snap to 'Face' and 'Project Individual Elements..'

  2. With all the vertices of RC_Ground selected, viewing Ortho fom above, hit G. We should now have a projection of RC_Ground onto Ground. In RC_Ground's Curve > Shape properties, check 'Stretch' and 'Bounds Clamp'.

enter image description here

  1. For convenience, duplicate one edge of Ground, separate it into a new object, 'Ground_Mesh'. Subdivide it to the number of columns you want. Snap its first vertex to the first vertex of 'RC_Ground'.

enter image description here

  1. Add a Curve modifier to Ground_Mesh, Object: 'RC_Ground'. Apply the modifier.

enter image description here

  1. Now it helps to unhide the track, an hide everything else except Ground_Mesh. In edit mode, duplicate the vertices of Ground_Mesh.

10 In the same way as we projected Ground_Curve onto Ground in step 6, we will now project the duplicated vertices onto Track_Section. ( This time, from a Bottom Ortho view).

enter image description here

  1. Bridge the edge loops.

enter image description here

$\endgroup$
4
  • $\begingroup$ This is wonderful. Could you explain the projection part again (step 10 in particular). To project RC_Curve to RC_Ground I simply made their Z location zero in edit mode. I haven't used the 'snap to face' and 'project individual elements' and can't seem to figure that one out. But otherwise, I am sure this will work and is a great solution. $\endgroup$ – Santy.8128 Apr 26 '18 at 15:37
  • 1
    $\begingroup$ It's a snap option. This manual page at least shows you where it is and what the icon looks like. docs.blender.org/manual/en/dev/editors/3dview/object/editing/… . To use it, in edit mode, select the vertices of the object you want to project. Line your view up so you are looking down the direction in which you want to project, orthographically. With snapping switched on, hit 'G'. The vertices will snap to whichever faces are behind them, in that view, Don't forget to switch it off afterwards, it can be very confusing. $\endgroup$ – Robin Betts Apr 26 '18 at 16:39
  • $\begingroup$ Got it. I tried it and it works perfectly. Thank you. I might edit it a bit later to make it more easy and verbose for noobs like me (including appending your above comment about snapping). Hope that is okay. Thanks again. $\endgroup$ – Santy.8128 Apr 26 '18 at 17:42
  • 1
    $\begingroup$ Feel free! Maybe delete the excess comments when you're done. $\endgroup$ – Robin Betts Apr 26 '18 at 18:02
2
$\begingroup$

This is one approach - (probably not the best one)

  1. In object mode, create a plane, coplanar with your curve, its width snapped to the curve's bottom ends, and with a height sufficient to accommodate the curve in projection.
  2. Create vertical edge loops in it (CtrlR + Mouse wheel), one loop for each of your columns.
  3. Knife Project your curve onto the plane, and eliminate unwanted vertices
  4. Duplicate the set of edges comprising the cut curve in the plane

You now have the profile of your track, with its vertices evenly spaced in Y, to do what you will with - (possibly Duplivert?) whatever suits the rest of your model best.

$\endgroup$
5
  • $\begingroup$ I will try this and let you know how it works. Thank you. $\endgroup$ – Santy.8128 Apr 24 '18 at 14:24
  • $\begingroup$ So, this would work on simple 2D curves that lie along a plane (like in the link that you commented earlier). It's a great suggestion! Is there a way to generalize that for curves that bends in 3D ? Like a roller coaster ? $\endgroup$ – Santy.8128 Apr 24 '18 at 22:09
  • $\begingroup$ I found one approach but can't finish it off due to my lack of expertise. Can you help? - So, I made a copy of the curve and projected it to the XY plane and then added the columns to this newly projected curve. That way I can ensure that they are evenly spaced on the floor, but I still have to manually adjust their heights to match that of the roller coaster. Is there a way to take it from there and somehow use the knife project ? I know the knife is a very useful tool but I do not know very well how to use it. $\endgroup$ – Santy.8128 Apr 24 '18 at 22:10
  • $\begingroup$ @Santy.8128 Are these small adjustments? Like the difference between a curve, and the curve approximated by straight line segments? $\endgroup$ – Robin Betts Apr 25 '18 at 6:08
  • $\begingroup$ No not small adjustments. The projected curve on the XY plan lets me keep them evenly spaced with respect to the floor. After that I manually extrude/scale each column placed on this curve so that its height matches with the roller coaster curve. $\endgroup$ – Santy.8128 Apr 25 '18 at 6:10

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.