Thanks for taking a look at aerodynamics! We tuned that aircraft model so it is easy to fly at lower speeds, like below about 400 km/h. You can try altering the center of mass and position of the elevators to improve responsiveness, but the aircraft will become less stable the more responsive you make it.
Having said that, I think what you are seeing in the video is related to the high speed the aircraft is at (~1400 km/h, above Mach 1). It looks like you increased the max thrust? Our aerodynamic model is a compromise between real-time performance, robustness (i.e. doesn’t crash), and believable behavior. What your example shows is some behavior that can occur when the forces are so large they may cause the underlying numerical method to be unstable. For flight vehicles it really works best at lower Mach numbers. However, thanks for this feedback! We can use your example to find ways to expand flight regimes the model reliably, and in real time, works with.
Thank you for the detailed explanation! It would be fantastic if a universal solution could be found for this. I’m working on a flight simulator where I plan to include not only very fast aircraft, like the one from Top Gun: Maverick that reached Mach 10, but also futuristic models with extreme maneuverability and speed. As it stands, I’m concerned that these concepts may push the current aerodynamic model beyond its limits. I’m excited about the potential improvements, and I’d be happy to continue providing feedback to help refine the aerodynamic model for more diverse flight regimes.
Thanks for trying out aerodynamics! Your feedback will help us improve the model.
Torque roll is a realistic effect and its impact is related to the amount of torque needed to drive the propeller (so its moment of inertia and drag) and the moment of inertia of the aircraft. To counter act the roll you’ll need to add a torque in the opposite direction using control surfaces like ailerons or a counterrotating propeller (see the KSP video). You could, for example, use a FluidForceSensor on the propeller to measure the torque it’s applying and then use that information to automatically trim the aircraft via ailerons.
Do you have an example we can look at? So far we have not seen an issue with propellers so long as the masses of the propellers and aircraft are scaled appropriately. However, if do have an example that is particularly bad we’d love to take a look so we can improve the model.
Hey Kibbet, finally made a helicopter with those airfoils you gave me after a bunch of research. Really cool update, Roblox! I’m currently in the process of ironing things out, since this video I’ve made interpolations between the rays since we know the pattern of the blades’ pitch as they revolve around the rotor hub. The latest versions have gone back and forth between having flapping and lead lag and not flapping and lead lag, but I really struggle controlling the helicopter when those are introduced and I’ll need to research more about what these do and how we control them for flight because as of right now I’m just letting the physics engine do the work for how they flap and lag, I’m not sure if there are even more controls in a helicopter for these, and if there are, it’s already bordering ridiculous to implement for the average player to pick up and play comfortably.
I also made a kinda garbage swashplate mock-up, got really close to a physics constraints heli, and then gave up when changing the ball sockets to prismatics when I still couldn’t get cyclic pitch naturally from the swashplate’s tilt. That model can be found here: https://create.roblox.com/store/asset/74266983123429/Helicopter-Swashplate-Octopod; all it would need is a better solution for the rod constraints connecting the pitch cylindrical constraint, the ball sockets (I recommend swapping them out with prismatics) for the octopod, and a slider implementation for the last degree of freedom that I think I omitted in this version of the rotor hub. That can be done simply by adding a slider limit to a cylindrical constraint that does the flapping motion of the blade. You can also find a starter helicopter bodykit and script here: https://create.roblox.com/store/asset/107651024770195/AH64-Apache. This should help if you’re going the route of programming the cyclic pitch like I ended up doing, but I wouldn’t recommend ray casting an incomplete unit circle like I did.
Testing this feature, we found that equipping Tools causes a massive lag spike related to HashProcessing-Task. Disabling experimental fluid forces fixed it. This only occurs in our published game, not in studio.
I had someone ask me if they could try out my helicopter, and we came across the same issue as @heedicalking, but we also ran into the issue of whenever you touch something, it’ll wreck performance for all clients. This only happens in live tests. I made sure it wasn’t my code causing the problem, and it ended up getting fixed turning off experimental fluid dynamics.
Is the first video without aero and the second video with aero enabled? What kind of clients did you see this behavior on (PC, mac, mobile etc)?
Do you have a reproducer you can share with us for the issue when you touch something? We’d like to make sure our fix works for you, and, if not, figure out what is wrong an fix that as well.
I dunno what a reproducer is. x3 We were testing it on PC. I tested it in on mobile just now, and it actually surprised me it worked fine. Both are with aero on, the first is in studio, the second is in a live experience. Here’s an additional video with aero turned off in a live experience on PC. I don’t have a mac I can use, so I can’t help y’all there.
Hey Sorry, by reproducer I just mean an rbxl file along with some instructions on how to see (reproduce) the problem. If you like you can DM me an rbxl file and we can take a look at the problem.
Hey, I’ve been wanting to ask, are we going to get native HOTAS support with the full release of this feature? Finished up my helicopter and I’m currently thinking how much easier it’d be to control if I had foot pedals and a stick.