Just tried it an LOVE IT !!
Great work George.
There is definitely more bounce and you can easily do the dead flipper to dead flipper pass.
I believe the VR Version of Pinball FX2 bounces like you have it now...But you really should have seen the real table I played recently it definitely bounces much more...
Again I don't really like it , but it may be more realistic?
I don't know ! We are chasing an illusive and subjective goal but at least we have the means now.
I have asked Rav to give us a tutorial with some examples of bounce control recipes with different degrees of bounce... and to explain all the parameters...
Here is a "recipe" that I find bounces a little more...
Code:
Sub BAM_Init()
If BAM_VERSION < 233 then Exit Sub
Set RightFlipperExt = xBAM.Flipper("RightFlipper")
Set LeftFlipperExt = xBAM.Flipper("LeftFlipper")
RightFlipperExt.Omega = 50
RightFlipperExt.SetMaterial 1, 0.1, 0.05, 0.065
LeftFlipperExt.Omega = 50
LeftFlipperExt.SetMaterial 1, 0.1, 0.05, 0.065
End Sub
Sub OnPreHitFlipperSettings_bounceControl(FlipperExt)
If BAM_VERSION < 233 then Exit Sub
' Params to tweak
const base_elasticCoef = 1 ' very bouncy flipper rubber
const expected_ball_speed_after_hit = 280 ' calc elasticCoef to get desired ball speed after ball hit flipper
const minimum_elasticCoef_to_scale_fast_balls = 0.18 ' we will add this to calculated elastiCoef, so ball after hit will have aditional 5% of speed before hit
const reduction_for_flipper_in_motion = 0.10 ' if flipper is not in starting point, reduce elasticCoef by 10%
const min_elasticCoef = .8 ' 2%, ball will almost glue to flipper, this is minimum value
If FlipperExt.Hit Then
Dim elasticCoef
' ball_speed_after_hit = elastic_coef * ball_speed_before_hit
' so, elastic_coef = expected_ball_speed_after_hit / ball_speed_before hit !
elasticCoef = 2
If expected_ball_speed_after_hit < xBAM.Ball.Speed Then elasticCoef = expected_ball_speed_after_hit / xBAM.Ball.Speed
' now add little bit to preserv atleast 5% of ball speed before hit (not all balls should end with 240 mm/s)
elasticCoef = elasticCoef + minimum_elasticCoef_to_scale_fast_balls
' make sure, we to not have elasticCoef higher than base value
If elasticCoef > base_elasticCoef Then elasticCoef = base_elasticCoef
' now, reduce elastic coef if flipper is not at StartAngle (1 deg difference or more required)
If FlipperExt.AngleDiff > 1 Then elasticCoef = elasticCoef - reduction_for_flipper_in_motion
' ... finally make sure, that elasticCoef will not be "negative" or to smalll
If elasticCoef < min_elasticCoef Then elasticCoef = min_elasticCoef
FlipperExt.SetMaterial elasticCoef
End If
End Sub
This is just my subjective opinion, lets see how Ravarcade Explains it