Jump to content




Photo
* * * * * 1 votes

"Flipper Tricks" Physics Settings


  • Please log in to reply
53 replies to this topic

#1 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 12:29 AM

Happy Friday Guys,
 
Here comes a long post! But, first: Thanks to 32assassin for the wonderful Cosmic Gunfight table used in the video below. Also, thanks to flupper1 for the wonderful resources (rails, lightning bats) that I've been swapping onto all my tables lately.
 
I love the way VP flippers feel, but in comparison with the two real pinball machines in our garage, there's a major physical phenomenon missing: The EOS switch behavior.
 
A little on EOS switches in real pinball machines, and how they affect flipper feel: "To understand the importance of end-of-stroke switches (EOS) you have to understand how flippers work. On almost every type of pinball machine, a flipper coil is different from a regular coil. It's two windings in one package, one powerful one which uses high voltage, and a less powerful one which uses lower voltage. You need the high power winding to move the flipper bat up, and kick a pinball away. But if keep the flipper bat in the up-position (i.e. to trap a pinball) this can overheat and damage the flipper coil. So therefor there's a low voltage winding too. Once the flipper bat is in the up-position the coil switches to this lower 'hold' voltage, so it can stay in that position for minutes without damaging the coil."
 
Source: http://www.flippers....adjustment.html
 
"Virtual pinball flippers aren't going to 'burn up,' so how could the EOS switch setting matter in Visual Pinball?" The answer is that beyond keeping the coil from burning up, the EOS switch has the super cool side-affect of allowing for all sorts of flipper tricks (covered in the amazing video Pinball 101, if you don't own it already!): Flick and Tap passes, cradle separations, etc.
 
See this quick PAPA video for a perfect illustration:
 
https://youtu.be/0iP8OMeNCyQ
 
Without the EOS switch, the flick pass in this video simply wouldn't be possible. In order to clear the gap between flippers with a gentle flick pass, the EOS switch needs to be telling the flipper to use the low voltage coil, rather than the high voltage coil that's normally used to blast the ball to the upper end of the playfield.
 
How to use the low voltage rail:
 
1. Hold the flipper up. Keep the button pressed in. The EOS (end of stroke) switch is automatically engaged.
2. Quickly release the flipper button and press it back in again -- almost immediately.
3. The result is an ever so slight "flick" of the flipper, generated from the low voltage coil.
 
One of our challenges with VP flipper settings (and this is something that JimmyFingers did some really cool work on with BMPR physics settings, before I discovered VP a year ago), is that most of our tables are set in such a way that the EOS switch is torqued so high that no matter how quickly the player does step 2 from above (quickly release and repress flipper button while flipper is being held in the up position), we almost always get a full "high voltage blast" from the flipper. This makes subtle flick and tap passes nearly impossible in VP. Cradle separations during multiball are complicated with current settings, too. I promise I'm not griping. Just an observation. :)
 
This is easy to fix, but it involves a few small tradeoffs.
 
First of all, here are my flipper settings:
 
flipperflickpassphysics.jpg
 
Note that the return strength is really low. I think people usually leave this set closer to "1" or ".8." I've dialed it all the way down to ".02" This is one of the tradeoffs - the flipper is just as quick to ramp up to its up position, but is relatively slower to return to its resting position once released.
 
Next, the EOS Torque defaults at .75. I don't believe I've downloaded a table yet where this has been altered (I'm not complaining - I love you guys' work!). I've lowered this to ".03"
 
Here are my table physics settings for this video:
 
tablephysics.jpg
 
I can't remember exactly what I changed, but I almost always raise the gravity constant just a bit and dial up the friction a bit.
 
 
Video Demonstration:
 
Wish my shots we better in the video below, only because I'd liked to have showcased how useful a nicely tuned EOS switch can be to help with backhand shots, etc.A table like Cosmic Gunfight lends itself really well to backhanding shots, because normal forehand shots can lend to brutal drains. Also - I didn't pull a single flick pass off! But -- I assure you, you can flick pass with these settings (if you have more skill than me!).
 
Note that when the ball travels from the upper playfield and dead bounces off the flippers, they're so "loose" with these settings that they really "give." That's not me flipping in this case, just the flipper rebounding up from the force of the ball hitting down on it.
 
Feature requests: I'd love to see a new value-field at some point in flipper settings that allowed for this same level of taking advantage of EOS activated low voltage, without so much "give" in the flippers upon contact from a fast traveling ball. A little bit is ok, but the effect is exaggerated here. Also, on a real table this low voltage behavior is not dependent on the flipper returning to its resting position so slowly. Could these behaviors be separated out?
 
Note that you can still engage the fully high powered coil shots by forehanding here. These flipper settings don't affect the power of regular shots. In other words, they don't make your flippers weak.
 
Curious to see what you guys think...
 
Here's the video:
 


Edited by Ben Logan, 11 July 2016 - 06:18 PM.


#2 nFozzy

nFozzy

    Pinball Fan

  • Members
  • PipPipPipPip
  • 553 posts

  • Flag: ---------

  • Favorite Pinball: Pinbot

Posted 09 July 2016 - 01:28 AM

Coil Ramp Up tries to replicate EOS, but as I think you've caught on to, the way it calculated is a bit flawed and adds unresponsiveness to the flippers in both up and down travel. U3D pinball has a really nice adjustable interactive slope thing that's pretty great.



#3 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 01:49 AM

Right, nFozzy! I'll check out U3D's flipper physics engine.

I'm thinking improved flipper physics settings parameters might...

- Allow for super fast coil ramp up to get flipper to maximum height quick as possible (we have this currently)
- Once the flipper is raised and held, have an adjustable "time window" to establish when the EOS low voltage coil ends its function and transfers control back to the high voltage coil. You can simulate this with Return Strength, but it comes at a cost.
- Allow for independent control of Return Strength and the above. In current flipper physics, a high return strength shortens the low voltage time window so much that it effectively eliminates access to low voltage flips altogether
- Allow for access to EOS low voltage flips without manifesting quite so much "give" in the flippers

I hope this is making some sort of sense! I may be talking crazy...

:P

#4 pinballdoctorx

pinballdoctorx

    Enthusiast

  • Gold Supporter
  • 55 posts

  • Flag: United States of America

  • Favorite Pinball: Attack From Mars

Posted 09 July 2016 - 02:04 AM

I don't want to nit pick on 'pinball fans' original post, but I feel that there are certain necessary clarifications as to the function of pinball flipper coils and end of stroke switches.  EOS switches do not switch voltages to the flipper coils.  In electromechanical pinball machines and some newer electronic machines, flipper coils are two windings on the same bobbin wired in series.  At rest, the EOS switch shorts out the hold winding, leaving only the pull winding in the circuit.  When the flipper button is pressed, the pull winding quickly moves the flipper through its stroke.  When the flipper approaches its end of movement, the EOS switch is opened, unshorting the hold winding.  The pull winding is lower in resistance compared to the hold winding.  The voltage applied to the coil is hard wired from the power supply and is never changed, so the current through the pull winding is higher than the hold winding, resulting in a higher magnetic force.  When the hold winding in unshorted, the total resistance of the coil increases, decreasing the current flow through it, the magnetic force and the heat it produces.  Adjustment of the EOS is important. If it opens too soon, the flipper will feel sluggish; too late or not at all and the coil will overheat.

 

Modern electronic games use the EOS switch as a signal to the CPU as to when to shut off the voltage to the pull winding and apply it to the hold winding.  These EOS switches close at the end of stroke.



#5 tictox

tictox

    Enthusiast

  • Members
  • PipPipPip
  • 143 posts

  • Flag: South Africa

  • Favorite Pinball: space

Posted 09 July 2016 - 02:12 AM

Interesting subject Ben

 

For my flipper action I dont have an adjustable curve like U3D , I settled with a"out expo" interpolation curve. I did make another hack to try balance the flipper release , I use a reduced force value altogether. both use out expo though , the reason being I went and googled what the curve of a solenoid actually looks like and it resembles out expo with the exception of a small downward kink somewhere in the middle although that is voltage based and I guess it doesnt account for motion inertia/torque of the physical object. 

 

out expo curve 

http://doc.qt.io/qt-...rve-outexpo.png

 

solenoid curve

http://cr4.globalspe...D7ADAAF1734.jpg



#6 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 02:20 AM

Thanks for the clarification, Pinballdoctorx. Nicely explained!

As far as low-voltage vs high-voltage flips are concerned, are both behaviors important to your style of play? Do you take advantage of the low-voltage flicks and taps on real machines, or do they not matter all that much?

My brother, for example never cradles the ball. Hits it on the fly only. And he's really good! Not a pin-golfer like me.



Interesting subject Ben
 
For my flipper action I dont have an adjustable curve like U3D , I settled with a"out expo" interpolation curve. I did make another hack to try balance the flipper release , I use a reduced force value altogether. both use out expo though , the reason being I went and googled what the curve of a solenoid actually looks like and it resembles out expo with the exception of a small downward kink somewhere in the middle although that is voltage based and I guess it doesnt account for motion inertia/torque of the physical object. 
 
out expo curve 
http://doc.qt.io/qt-...rve-outexpo.png
 
solenoid curve
http://cr4.globalspe...D7ADAAF1734.jpg



Tictox,

Your Unity engine tables are amazing. Elvis and Tommy clearly reflect your love of pinball, lighting, and real world physics. I've been following your work with interest for months. Thanks for the info on your flipper settings. Wish I could make sense out of those diagrams. Beyond my comprehension!

:D

Edited by Ben Logan, 09 July 2016 - 02:24 AM.


#7 nFozzy

nFozzy

    Pinball Fan

  • Members
  • PipPipPipPip
  • 553 posts

  • Flag: ---------

  • Favorite Pinball: Pinbot

Posted 09 July 2016 - 02:39 AM

Regarding EOS torque setting, this is what the command reference document has to say about it:

*EOSTorque(float) - This value/factor effects the way how long a flipper arm stays in the up/raised position even when you depressed the flipper button.
                    On real pinballs it will take some time until the flipper solenoid loses it's power until the flipper drops down or is forced to move by a hitting ball.
                    The default value is 0.75. For fine tuning you can change that but not higher than 1 or lower than 0.5 or the result will be totally unrealistic.

 

It's probably best not to reduce this too much.

 

In VP 10.1, Flipper return strength can be tweaked in real time in the script. Might be what we're looking for... The calculation's a little weird because the strength code uses formulas for momentum already, but I think it should be possible to script a custom envelope for return strength in VP10.



#8 tictox

tictox

    Enthusiast

  • Members
  • PipPipPip
  • 143 posts

  • Flag: South Africa

  • Favorite Pinball: space

Posted 09 July 2016 - 02:43 AM

Thanks , my stuff is also still far from the holy grail of real world physics ;)

 

Ben all measured motion can be described on a graph. Perfect Linear motion would be a perfect 45 degree straight line on the graph. So the rate of distance in regards to time is always exactly the same. Eg.. If you made a graph of travelling 10 meters in 10 seconds in perfect linear motion... horizontal axis being time and vertical axis being distance... If you drew a straight line up from the one second mark and a line across from the one meter mark the two lines would meet each other on the 45 degree line.. you could do this for any value and they would meet at the same place. 2 seconds = 2 meters 3 seconds = 3 meters etc.. this is constant motion. 

 

Non linear motion graphs are curvy, like in the graphs I shared. It just resemble variances in the motion like acceleration or deacceleration. For example the out expo and voltage curves graphs are deacceleration curves. From the point they start they are slowing down more and more over time. 

 

hope that helps hehe


Edited by tictox, 09 July 2016 - 02:44 AM.


#9 pinballdoctorx

pinballdoctorx

    Enthusiast

  • Gold Supporter
  • 55 posts

  • Flag: United States of America

  • Favorite Pinball: Attack From Mars

Posted 09 July 2016 - 02:51 AM

What you refer to as high and low voltage flips are important to my play in my real pinball machines.  I've never really liked the feel of flippers in VP.   They respond too slowly and have too narrow of what I call the accuracy point.  That is, the place on the playfield that I want the ball to go versus where on the flipper the ball is when I press the flipper button seems way too narrow/critical compared to a real machine.  It also seems that there is a lack of repeatability.  I press the flipper button with the ball at the same place on the flipper but the ball seems to go to different places each time.  Now I am running VP 9.2, so perhaps 9.9 or VPX is improved? Tap operations in VP is almost impossible to do properly versus a real machine.



#10 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 02:57 AM

Yes -- it does help, tictox. I can picture the relationships when you describe it that way. Thanks!

nFozzy -- thanks for the tip about adjusting return strength in the script. Anyone know of a table that does this? I'd love to copy and paste some code, as about all I can do in the script so far is address lighting, etc.

As far as lowering the EOS value so drastically is concerned, I agree with the command reference document that it introduces "totally unrealistic" effects, but I would edit that to say side effects. The low voltage flips I'm getting out of these settings are pretty consistent with my real Whirlwind in the garage. Wish there was a way to get those low voltage flips without the wonky side effects. For now, it's a trade off I'm happy to live with. I love this stuff!

:P

What you refer to as high and low voltage flips are important to my play in my real pinball machines.  I've never really liked the feel of flippers in VP.   They respond too slowly and have too narrow of what I call the accuracy point.  That is, the place on the playfield that I want the ball to go versus where on the flipper the ball is when I press the flipper button seems way too narrow/critical compared to a real machine.  It also seems that there is a lack of repeatability.  I press the flipper button with the ball at the same place on the flipper but the ball seems to go to different places each time.  Now I am running VP 9.2, so perhaps 9.9 or VPX is improved? Tap operations in VP is almost impossible to do properly versus a real machine.


You're in for a treat with VPX ball physics, Pinballdoctorx. Give it a try. You may find yourself amazed by the level of realism. I was blown away.

#11 tictox

tictox

    Enthusiast

  • Members
  • PipPipPip
  • 143 posts

  • Flag: South Africa

  • Favorite Pinball: space

Posted 09 July 2016 - 03:02 AM

yes I agree vpx when set up right by some table authors has a excellent feel to it. 



#12 nFozzy

nFozzy

    Pinball Fan

  • Members
  • PipPipPipPip
  • 553 posts

  • Flag: ---------

  • Favorite Pinball: Pinbot

Posted 09 July 2016 - 03:41 AM

I'm by no means a great scripter, but I made this to see if tweaking return strength would work without issue (It does!)

 

It's not tuned very well. Set return strength to something like 0.07 - 0.08

 

 

Under LeftFlipper.RotateToStart:

        LeftFlipper.TimerEnabled = 1
        LeftFlipper.TimerInterval = 16
        LeftFlipper.return = returnspeed * 0.5

Under RightFlipper.RotateToStart:

        rightflipper.TimerEnabled = 1
        rightflipper.TimerInterval = 16
        rightflipper.return = returnspeed * 0.5

then in it's own section:



'===================
dim returnspeed, lfstep, rfstep
returnspeed = leftflipper.return
lfstep = 1
rfstep = 1

sub leftflipper_timer()
	select case lfstep
		Case 1: leftflipper.return = returnspeed * 0.6 :lfstep = lfstep + 1
		Case 2: leftflipper.return = returnspeed * 0.7 :lfstep = lfstep + 1
		Case 3: leftflipper.return = returnspeed * 0.8 :lfstep = lfstep + 1
		Case 4: leftflipper.return = returnspeed * 0.9 :lfstep = lfstep + 1
		Case 5: leftflipper.return = returnspeed * 1 :lfstep = lfstep + 1
		Case 6: leftflipper.timerenabled = 0 : lfstep = 1
	end select
end sub

sub rightflipper_timer()
	select case rfstep
		Case 1: rightflipper.return = returnspeed * 0.6 :rfstep = rfstep + 1
		Case 2: rightflipper.return = returnspeed * 0.7 :rfstep = rfstep + 1
		Case 3: rightflipper.return = returnspeed * 0.8 :rfstep = rfstep + 1
		Case 4: rightflipper.return = returnspeed * 0.9 :rfstep = rfstep + 1
		Case 5: rightflipper.return = returnspeed * 1 :rfstep = rfstep + 1
		Case 6: rightflipper.timerenabled = 0 : rfstep = 1
	end select
end sub

 



#13 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 03:52 AM

Thanks, nFozzy! I'll try this asap and let you know how it goes. Totally appreciate it.

:D

#14 flupper1

flupper1

    Enthusiast

  • Members
  • PipPipPip
  • 453 posts
  • Location:Netherlands

  • Flag: Netherlands

  • Favorite Pinball: Visual Pinball

Contributor

Posted 09 July 2016 - 09:58 AM

I added the code from nFozzy in my physics update for BK2000. How can I best test if it has the desired effect in the gameplay? The trick in the PAPA video from Ben? Any other tricks?



#15 laylow

laylow

    VP Veteran

  • Members
  • PipPipPipPip
  • 535 posts
  • Location:Amsterdam

  • Flag: Netherlands

  • Favorite Pinball: 1978 >

Posted 09 July 2016 - 01:55 PM

I followed Bens settings, I think it works :)

 



#16 tictox

tictox

    Enthusiast

  • Members
  • PipPipPip
  • 143 posts

  • Flag: South Africa

  • Favorite Pinball: space

Posted 09 July 2016 - 04:02 PM

Looks good laylow

 

Ben I watched your video as well it is great. In fact this very topic got me thinking and I revisited my logic and code and made adjustments ;)

 

I thought about the holding coil , when you release the flipper it is not charging up but charging down. So I inverted my curve for flipper release. In doing this I found I could remove the need for using a reduced force on release but I did shorten the time span for the curve to 0.2 seconds. 

 

I will make a new build and post when it has been updated, I would love you to try it out as well and give some feedback ;) From my own testing so far it seems to work great like in your guys videos. 

 

Thanks for bringing the topic up , I think it is a must have feature for pinball as I always see the papa tutorial guy using this feature of the flippers in his ball control. 



#17 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 05:34 PM

I added the code from nFozzy in my physics update for BK2000. How can I best test if it has the desired effect in the gameplay? The trick in the PAPA video from Ben? Any other tricks?

Awesome news, flupper1. Here's another essential skill to test: Cradle separation during multiball. Really helped by low voltage coil usage. I don't pretend to have mastered any of these skills, of course!

 

Here's the PAPA flick pass video:

 


Edited by Ben Logan, 11 July 2016 - 06:54 PM.


#18 Drybonz

Drybonz

    Really bad at pinball, but having fun.

  • Members
  • PipPipPipPip
  • 1,209 posts

  • Flag: ---------

  • Favorite Pinball: Theatre of Magic

Posted 09 July 2016 - 06:07 PM

I had asked about slingshot passes in another thread, and varying difficulty from table to table.  It would be great if these better physics settings could become a regular thing in scripts, like the rolling ball sounds, etc... 



#19 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 09 July 2016 - 07:42 PM

It's awesome that we have a field for Return Strength in the flipper physics settings box in the editor. Right now, the only way I know to get access to Low Voltage is to lower the return strength drastically. I'm imagining that access to Low Voltage "flicks" could be separated out and made independent from Return Strength with the addition of a new subroutine (I'm not a programmer, so forgive the clunkiness of my terminology here). I tried to diagram it...

image.png

Edited by Ben Logan, 09 July 2016 - 07:44 PM.


#20 Drybonz

Drybonz

    Really bad at pinball, but having fun.

  • Members
  • PipPipPipPip
  • 1,209 posts

  • Flag: ---------

  • Favorite Pinball: Theatre of Magic

Posted 09 July 2016 - 07:46 PM

It makes sense that you would need low return strength so that the flipper isn't snapping back by the time you click the button back in... so that you get a smaller, lighter flip... often it doesn't seem possible to avoid flipping the ball really hard when you try to do the pass.