It almost feels like cheating because it’s so easy. Especially because I remember doing piece by piece with a Build-Mode Rotate tool years ago for all of my coasters. So much work was required back then. Now thanks to some talented scripters in the coaster groups, stuff like this is possible. It’s almost painful for me to watch because I remember spending so much time on just a few sections of track!
Really neat stuff though. Definitely a nice tool. You’ll have to make a nice coaster with it.
Also, I’ve only ever seen smooth track done with cylinders. That first image showing square rails makes this even more impressive. Bumps are a thing of the past.
I was one of those people in the early days, not the first, but I got in there sooner rather than later. My first coaster, “Goldfinch” was made with the rotate tool and copying bricks onto the rotated pieces. My second and third coasters were made the same way. Although I wasn’t in the beginning, I have been an innovator in the coaster community for a long time. I don’t think any of the things I made are “cheating” because I put in a lot of work to get my tools to work. I don’t think that people who use them are cheaters, either. I do, however, firmly believe that making these higher-level tools are cheating people out of the experiences that you and I had: sweating over each brick to get it aligned properly.
On the flip side, with tools that are intuitive, people can focus less on the “how to build a coaster” and more on the “what the coaster looks and feels like.” Artistic people who don’t have the patience to sweat over each brick can now work on the greater picture, and overall quality will increase dramatically because less effort is spent for a given quality of coaster, so more effort can be spent making it look, feel, and function good. A big part of that is that (eventually) this tool will provide non-linear editing paradigms. Before cmdutl, it was extremely difficult to create a roller coaster, change something in the middle, and then hook the rest of the coaster back up to it. Typically, when you make a mistake in the middle, everything past it would get deleted and re-built. That takes a lot of time and effort. With non-linear editing paradigms, it will make re-visiting parts of the coaster a lot easier, improving quality.
Here’s a little tidbit: the cylinders being smooth are an illusion. CylinderMeshes don’t change the collision shape, so above that round cylinderyness is actually a block just like the one in the top picture. Over the past 5 years there have been many so-called “autosmooth” tools with varying degrees of actually smoothing the track. Some didn’t bother with rotating the bricks to match the track, others did. The particular tool used to generate the track in the pictures uses the same code, and the round rails are rotated just like the square ones are.
As for the math, I used the idea of frenet-serret formulas to create CFrames from scratch along the curve (which, after looking at them, I completely and wholly understand CFrames). I then take the difference in CFrame from the one generated on the curve to the one on the control points and linearly interpolate the rotation from point to point. It’s not perfect, and in some cases it does weird things, but overall is a good and cheap way of doing it.
It isn’t.This has been something I’ve wanted to do for a long time. The new physics have played no part, however miniscule , in making this tool happen.
Some fun facts: when the new physics get implemented, most roller coasters will break. Why? They rely on the imprecision of hinges as couplers. Most coasters use balls hinged to each other as the linkages, while very few use couplers that have hinges in all 3 dimensions required to work with the new, stronger hinges.
Hopefully the new physics will be sufficiently faster to mitigate the extra hinged pieces required to make coaster couplers from then on out.
It depends. I plan on making it into a coaster building game ala ice128 and defaultio. In that sense, it’s free. The short-term plan for the plugin is to keep it under wraps.