I'm trying to figure out how to make a stair case along a complicated bezier curve. The stairs are just made of wooden planks, so it's simple model, I'm just having trouble keeping them all level and flat and following the curve correctly. Is there a way to keep the rotation of the planks as zero instead of following the normals of the bezier curve?
2 Answers
Maybe try the Dupliframe method:
- Create your plank object and create your bezier curve.
- Put your object on the first point of your curve with a Cursor To Selected in the curve and a Selection To Cursor with your object. If the direction of your curve is the inverse of what you need, W > Switch Direction.
- Select your curve and in Properties > Data > Path Animation, enable the option, enable Follow and in Frames choose the amount of stairs you will need.
- Parent the object to the curve with ctrl P > Set Parent To > Object.
- Select the object and in Properties > Object > Duplication, choose Frames and deactivate Speed.
- Add an Object Constraint > Limit Rotation to your object. Enable the X and Y axis so that it can't rotate on these two axis and can only rotate on the Z axis.
Here's an approach which you may be able to vary according to your needs.
- I'm assuming you would like the steps to be of equal depth .. so first, scale your curve to 0 in Z.
- Ensure the Preview U setting on the curve, times the number of segments in the curve, is twice the number of steps you will need
- In Object Mode, Alt C convert the curve to a mesh, and use the Loop Tools add-on > Space to space the vertices evenly along the mesh.
- With Proportional Editing switched on to 'Connected' and 'Linear' move the topmost vertex back up to where it belongs. Set the radius of the proportional Edit large enough just to see some movement in the bottom-most vertex. As soon as the Z-dimension is significantly greater than 0, you can switch off proportional, and adjust by scaling/moving all in Z.
- Use Select > Checker Deselect to select every other vertex, (Ctrl I invert the selection if necessary, to make the bottom vertex unselected.)
- G G slide the selected vertices down their edges, until they meet the vertex below. (Do not have Automatic Merge switched on)
- With Snap set to 'Vertex' and 'Active', with the existing selection, make a convenient vertex active, and (G Z) move it vertically until it snaps in Z to the vertex above it.
- In the N sidebar of the 3D view > Mesh Display, show edge length, and take a note of the depth of your steps
- Assign an Array Modifier, with Constant Z Offset of that length, and the Count set to more than the number of steps - 'Merge' switched on.
- With all doubles removed, F fill the faces.
- Select all the faces, and AltE > Extrude by Vertex Normals
- As you can see, because of the boundary effect on vertex normals, the top layer of steps is wonky. I've tried a ton of things to get round this-if anyone can make a suggestion I'd really appreciate it -
- So it's necessary to GG slide down the top layer onto the one below twice, CtrlV > R removing doubles as you go, and X dissolving the surplus diagonal edge.
- But in the end, you get this.
I'm really hoping someone will come along and improve this.