Controlling the "EyeFly" Camera [+ a New Feature Request]
-
Hello Gents!
I recently explored the potential of using the “EyeFly” Camera for cinematic purposes, and came across a serious difficulty in controlling it using the mouse. It its non-practical, trying to get the camera back to center position after “yawing” or “pitching” it with mouse X/Y movements, even by putting the sliders of “Mouselook Sensitivity” to the lowest value (also reducing windows’ mouse speed).
I hereby request for future Falcon BMS releases to replace the EyeFly camera control from mouse control (X,Y,wheel) to 3 customizable analog axes, so that the axes’ center position shall be the “stop movement” for each control.
For now, I came up with a very basic solution which consists of the two following AutoHotKey scripts:
The “EyeFly_Cam_Control_Launcher.ahk”:```
;----------------------------------------------------------
;-- Falcon BMS 4.33.3 EyeFly Camera Control Launcher v.1.0
;-- October 2017 by Konstantinos “Cannon” Ikonomidis
;-- 16th VFW “ArkAngels” - www.16tharkangels.net
;----------------------------------------------------------
#Persistent
#SingleInstance force
F9::run,EyeFly_Cam_Controller.ahk ;----> If you compile both scripts to EXE files, first remove the extension “.ahk”
F12::ExitAppThe "**EyeFly_Cam_Controller**.ahk****":``` ;---------------------------------------------------- ;-- Falcon BMS 4.33.3 EyeFly Camera Controller v.1.0 ;-- October 2017 by Konstantinos "Cannon" Ikonomidis ;-- 16th VFW "ArkAngels" - www.16tharkangels.net ;---------------------------------------------------- #Persistent #SingleInstance force MouseGetPos, xpos, ypos MouseMove, xpos,ypos,0 deltaPixels := 1 Up:: MouseMove, xpos,ypos-deltaPixels,0 KeyWait, Up MouseMove, xpos,ypos,0 return Down:: MouseMove, xpos,ypos+deltaPixels,0 KeyWait, Down MouseMove, xpos,ypos,0 return Right:: MouseMove, xpos+deltaPixels,ypos,0 KeyWait, Right MouseMove, xpos,ypos,0 return Left:: MouseMove, xpos-deltaPixels,ypos,0 KeyWait, Left MouseMove, xpos,ypos,0 return PgUp::send {WheelUp} PgDn::send {WheelDown} F10::ExitApp
To run the above scripts, you need to have AutoHotKey installed in your system.
How to use the scripts for controlling the EyeFly Camera :
1. To avoid hotkey conflicts, make sure the following keys are not used for any other function (in FalconBMS keyfile, screen recorder, TrackIR etc):
–-> F9
—> F10
—> F12
—> Cursor Keys (Up,Down,Left,Right)
—> Page Up
—> Page Down
2. Before entering FalconBMS, run the “EyeFly_Cam_Control_Launcher”. This keeps running until you press F12. The only purpose of this is to run the “EyeFly_Cam_Controller” script whenever you need it by pressing F9.
3. Enable the EyeFly camera, by adding the -ef switch to the FalconBMS Launcher shortcut (see 9.6.3.15 in …\Falcon BMS 4.33 U1\Docs\Falcon BMS Manuals*BMS-Manual.pdf*)
4. Inside the 3D world of Falcon and without toucing the mouse enter the “EyeFly” camera (by default it’s: Control+0)
5. Press F9 to run the EyeFly_Cam_Controller script
6. Use the Cursor Keys (one at a time) to control “yaw” and “pitch” movement, and PageUp/PageDown to control forward/reverse movement (push more than once to go faster)
7. Before exiting EyeFly Camera mode, exit only the controller script by pressing F10
8. If you re-enter EyeFly camera, go to Step 4 and repeat the proccess.…Some Insight…
Although the above technique seems very noob, it became quite practical to me as a “mouse alternative” to accurately control the EyeFly Camera.
The technical way it works is this:
Upon entering the EyeFly Cam, Falcon BMS reads once the current X,Y mouse position and registers it as the “Camera Center”. It uses it to stop moving left/right/up/down movement of the EyeFly Camera whenever the “invisible” mouse cursor comes back to that exact spot. Same applies to the forward/back movement according to how many mouse wheel “ups” and “downs” the user has made.
With the above given functionality, the EyeFly_Cam_Controller script I made, mimics the mouse inputs but with absolute movement.
So, upon script execution the user must leave the mouse untouched, as the script registers the mouse’s current position into the variables xpos/ypos. After that, whenever the user keeps one of the Cursor Keys pressed, the script sends mouse moves to the corresponding side plus the “deltaPixels” variable (currently set to 1). Upon release of the pressed cursor key, the script send the mouse back to the initially registered xpos/ypos. As for the wheel, things are simple there: whenever the user presses PageUp it sends one WheelUp command, and for PageDown it sends WheelDown. If PageUp is pressed multiple times, the EyeFly moves forward faster, and to stop moving the user needs to press PageDown equal times. Same goes the other way around.Cheers!
Cannon. -
I agree. Controlling it with the mouse is just a good way to crash one screen … with a flying mouse
-
GREAT WORK Cannon! Although Eyefly feature is great, it needs this improvement. I hope it will be coded in the future, and if it turns that we can control it with the mouse, then I suppose we will be able to control it with the TrackIR too, right? Which again would be owsome!
Thank you! -
…, then I suppose we will be able to control it with the TrackIR too, right?..
Dude, you just gave me a brilliant idea: To try an OpenTrack customization…!
Stand by for more, soon… -
Dude, you just gave me a brilliant idea: To try an OpenTrack customization…!
Stand by for more, soon…And…voila!
-
Wahw!!! From previous to last post, exactly 60 minutes. One CREATIVE HOUR! Cannon YOU ARE GREAT!
-
This topic should be bookmarked…
-
@Red:
I agree. Controlling it with the mouse is just a good way to crash one screen … with a flying mouse
Perhaps the eye-fly camera feature can be done a 6-dof option plus zoom?
-
would be real nice to control it with my space navigator
https://www.3dconnexion.com/products/spacemouse/spacenavigator.html