Thank you @ClayishCoast9, happy you found it useful. I mostly fly general aviation aircraft and helicopters in FS2020 + fighters and helicopters in DCS. I agree VR HeadWay is useless on a 2 DoF system like ours and leave it disabled. The small movement of the head give even more the feeling of getting the Gs. With the TrackIR it’s a bit worst, but I tend to lower the platform movement when not in VR.
Apart from this, I have great news!
@chass32 I believe you will find useful the contents of this message as well.
Yesterday I got a reply from NLR’s support and they suggested me to clone the FS2020 profile to be able to force it using the 6DoF script instead of the standard one. To my great surprise, it was still moving the platform in the wrong direction sideways. I tested all the other scripts (3DoF normal and IK, ecc.) and found subtle differences but all were moving the platform in the wrong direction during turns. I noticed all the scripts were written for FSX, not FS2020, probably because the telemetry output in both simulators is the same, but maybe some value is reversed and that’s why we get the strange behavior.
I started digging the C++ code in the various scripts and understood how it works. It’s pretty easy with a basic understanding of coding. It was enough to remove a minus sign in a few values to get the platform moving in the right direction sideways. But then I got carried away and started experimenting for a few hours (it’s good you can edit the code in real time while flying, just saving the file will apply the difference without the need to exit and re-enter FS).
What I came out with at the end is, I think, the best starting point we can squeeze out of a 2 DoF platform as the V3.
I fixed or added:
- Corrected lateral Gs and mixed in other subtle values during turns
- Added influence of body rotation velocity on the Y axis, giving authority to the rudder pedals (very cool if you try a side slip while landing!)
- Added the feeling of acceleration when you add or remove throttle in flight (the so called “surge” effect)
- Added lateral G-forces on the ground (the platform will tilt in the correct direction when using pedals during taxi or take off)
- Realistic ground effects based on the actual Gs received from the telemetry (you can leave the ugly “faked effect” off). You can really feel the difference between tarmac and grass now LOL
- Many other little tweaks and fixes
Instructions to test the profile without affecting your configuration:
1: Click the Clone button on the default profile
2: Use the following settings:
3: You will find a copy of all the profile scripts in the Documents/MotionSystems/ForceSeatPM/Scripts folder. Please download this zip which includes all the files you need: ZIP
Add my profile file (Flight_Simulator_2020_Tellurico1975.cpp) here:
4: Check your settings and point to the correct cpp file here:
5: Save the settings and check all the values are set to the default values (I tweaked the values in the script to give an average movement with everything set on default, you can fiddle with the settings to fine tune it. Keep in mind “Gain” is the fuselage position and “Rate Gain” the actual Gs):
6: Set the SFX like this (I will see if I can make the gear effect better somehow):
7: Use Roll and Pitch Post-Processing to fine tune the excursion of the platform (more Offset = more excursion), you can also work with Gain to make it more responsive close to the central point:
The following lines of code is where basically the magic happens, and telemetry data is converted to motion (after applying some rules and filters in other parts of the code):
// ROLL
ctx.output.motion.vectorMode.roll_rad += MSSA::bound(-LeftRightMaxAngle, g_filtered_FieldTurnRateRoll * 0.025f * motionTune.Body_Roll_Gain.v, LeftRightMaxAngle); // Roll Position
ctx.output.motion.vectorMode.roll_rad += MSSA::bound(-LeftRightMaxAngle, g_filtered_XRate * 0.025f * motionTune.Body_Roll_Rate_Gain.v, LeftRightMaxAngle); // Roll Gs (Current Bank Speed)
// YAW
if (simOnGround)
{
ctx.output.motion.vectorMode.roll_rad += MSSA::bound(-LeftRightMaxAngle, g_filtered_FieldRotationVelocityBodyY * -0.075f * motionTune.Body_Roll_Rate_Gain.v, LeftRightMaxAngle); // Yaw pedal feeling enhanced on the ground
}
else{
ctx.output.motion.vectorMode.roll_rad += MSSA::bound(-LeftRightMaxAngle, g_filtered_FieldRotationVelocityBodyY * -0.03f * motionTune.Body_Roll_Rate_Gain.v, LeftRightMaxAngle); // Yaw pedal feeling in the air
}
// PITCH
ctx.output.motion.vectorMode.pitch_rad += MSSA::bound(-RearFrontMaxAngle, g_filtered_FieldPitch * -0.005f * motionTune.Body_Pitch_Gain.v, RearFrontMaxAngle); // Pitch Position
ctx.output.motion.vectorMode.pitch_rad += MSSA::bound(-RearFrontMaxAngle, g_filtered_FieldFinalAccForward * 0.010f * motionTune.Body_Pitch_Gain.v, RearFrontMaxAngle); // Surge Acceleration
ctx.output.motion.vectorMode.pitch_rad += MSSA::bound(-RearFrontMaxAngle, g_filtered_YRate * -0.05f * motionTune.Body_Pitch_Rate_Gain.v, RearFrontMaxAngle); // Pitch Gs
In the ZIP file you find the complete profile to be imported (I don’t know if it includes the scripts as well) and the Hex code if you want to do it manually.
Please test it out and let me know what you think. My Buttkicker will arrive tomorrow, I will try to make custom gear and engine effects for that as well…