The
Autohotkey solution (using the North/South of a POV hat), assuming that <Ctrl>+<Insert> ("Control Insert") is assigned to Camera, Keys, "Hold to adjust Field of View":
Code:
#Persistent
iIdStick = 1
SetTimer, watchPOV_Stick, 5
watchPOV_Stick:
bFirst := true
while(true){
GetKeyState, iPOV, %iIdStick%JoyPOV ; Get position of the POV control.
; Some joysticks might have a smooth/continous POV rather than one in fixed increments.
; To support them all, use a range:
if iPOV < 0 ; No angle to report
break
else if (iPOV > 31500) OR (iPOV >= 0 AND iPOV < 4500){ ; 315 to 360 to 45 degrees: Forward
zoomViewIn(bFirst)
bFirst := false
}
else if (iPOV >= 13500) AND (iPOV <= 22500){ ; 135 to 180 to 225 degrees: Backward
zoomViewOut(bFirst)
bFirst := false
}
else
break
}
return
zoomViewOut(bFirst){
if(bFirst){
MouseMove 0, 1200, 0
}
Send !{Insert down}
MouseMove 0, -1, 0, R
Send !{Insert up}
return 0
}
zoomViewIn(bFirst){
if(bFirst){
MouseMove 0, 0, 0
}
Send !{Insert down}
MouseMove 0, 1, 0, R
Send !{Insert up}
return 0
}
Artist
Originally posted in the thread
How is variable zoom done?