You could probably somehow rig up the new Constraints feature in-studio to make it so the stair will revolve around the center point, allowing you to rotate and move it up/down. You can also just group 2 stairs on opposite sides together, group, move up, rotate, ungroup, repeat.
Yes it’s possible with Studio but it would probably be quite time consuming and unlikely to have a low brick/tri count. This is one of those cases where a mesh is far superior. I can probably whip up a spiral like that in minutes in other programs.
Meshes for things like stairs are clunky and collisions are often unpredictable, stopping you walking up a step or having your character levitate above the steps.
Doesnt necessarily say ‘spiral staircase’ and collisions could be replaced by using a cylindrical tube union or invisible bricks instead of the spiral itself.
You won’t get both of these conditions if you want the effect to be smooth. I recommend using a mesh, as it should be more efficient and probably easier to make.
Pretty much the biggest problem with using a mesh for us is creating the mesh. Nobody on the team works with blender or any other mesh making applications.
So that pretty much throws using meshes out of the window, unless there’s already one uploaded on ROBLOX.
Also, this is going to be an elevator. It won’t be moving or anything, (it’ll be a teleporter) but it will still need to look good.
We’re trying to keep a low brick count, because we’re currently at 24.8k bricks. We recently reduced it down from 40k. We want the game to be playable for a majority of devices.
I could try restraints, but I have a feeling it’s going to look very choppy. We’re shooting for a nice curve.
Next, I had trouble with the door. The elevator has a door so people can get in and out, but the spring constraint covers the door. Also not sure if there’s a way to fix this?
Clone them, move them up, rotate them a bit. Repeat this a couple of times.
Insert a new part with a Cylinder shape. Give it a color/material etc. of your choice.
Select two nearby spheres, then select the cylinder. Enter the following code in the command bar. Repeat this process until you’ve connected all spheres.
local P0 = game.Selection:Get()[1] -- sphere 1
local P1 = game.Selection:Get()[2] -- sphere 2
local C = game.Selection:Get()[3]:Clone() -- copy of your cylinder
local Dis = (P0.Position-P1.Position).Magnitude
C.Size = Vector3.new(Dis, 2, 2)
local Mid = (P0.Position+P1.Position)*0.5
C.CFrame = CFrame.new(Vector3.new(Mid.X, Mid.Y, Mid.Z), P0.Position)*CFrame.Angles(0, math.pi/2, 0)
C.Parent = game.Workspace
This is a pretty cool way to do it, but I’m still seeing some problems with it.
There’s still little cracks inbetween each cylinder.
I understand that it probably won’t be perfect, but is there a way to fix the cracks? Or will I need to manually go in and resize them?
The cylinders are too big! How can I make them smaller? (if it’s possible)
I tried to resize the cylinder, which didn’t change it.
I tried to resize the sphere, which didn’t change it.
How can I resize it? I’m not a scripter, so I don’t know how to change it if it has something to do with the script.