Player Controlled Flight Mode
|
|
Robbie | Date: Saturday, 30.07.2011, 19:35 | Message # 1 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| I've been trying to create a few videos in SpaceEngine with smooth transition between frame rates. The problem is my frame rates have been too jerky when rotating my flight position when using 'free mode' flight. I've tried the 'inertia' modes for filming, but it has been too difficult to orientate the camera into the right positions while filming. So I am wondering if another 'inertia' flight mode could be implemented into Space-Engine -a forth option- so that the player could adjust the inertia for themselves. This 'player flight' mode would be for single-players only.
There was a game (I played some years ago) called 'Spaceforce: Rogue Universe,' it had a config file where the player could change inertia values: Something similar to a 'hard friction' and 'soft friction' i.e. 1.00 = full-newtonian flight mode; and 0.99 = an almost-full-newtonian flight mode (where there's a short drift in space, but then everything stops and there is no counteraction to this drift). I also recall the game had degrees to this 'frictional' drift/drag, i.e. 0.98, 0.97, 0.96. etc
So I ask: could a user config file be used to adjust inertia?
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
SpaceEngineer | Date: Saturday, 30.07.2011, 23:56 | Message # 2 |
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
| SpaceEngine has no inertia of camera and no physics simulation at all (except planet orbital motion). In 'config' you can only adjust acceleration of camera in "inertia" mode, or mouse sensitivity in 'free mode.' Open 'user.cfg' and play with these parameters:
Code ZoomAccel 0.3 // zoom change speed (mouse wheel sensitivity) MouseSens 0.002 // mouse rotation speed KeyboardSens 0.005 // keyboard rotation speed
In a future release I'll implement a camera path recorder - where you can record your flights with a smoother motion (I believe it will happen one day ), and then you can automatically playback the camera recording in path mode. Something similar to how the camera animation is used 3DS Max.
*
*
|
|
| |
Robbie | Date: Sunday, 31.07.2011, 01:24 | Message # 3 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| Okay, I will tweak those parameters as you suggest, to see what happens.
I'm not so interested in a camera path recorder at this time. I am more interested in inertia control.
I don't quite understand how there can be no inertia on camera when you have 'spacecraft' and 'aircraft' flight modes with inertia already, when these can already be used with the camera. Given you have those inertia modes already, can you not put its values into a user file so the player can adjust its sensitivity. The inertia set-up as it is, is not easy to use at all. It's alright in its current form while flying through space without anything obstructing its path, but it's not much use near a planet - there just isn't enough control over it. I would personally like to use inertia mode more. However, better control is needed over it. As I said; the game SpaceForce managed this 'inertia control' to very good effect.
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
SpaceEngineer | Date: Sunday, 31.07.2011, 08:29 | Message # 4 |
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
| In free mode, velocity of camera upates every frame using keyboard reading. If W key is pressed, velocity in Z direction is set to 1 pc/sec (for example), if key A is pressed, velocity in -X direction is set to 1 pc/sec. Then, after camera updates, velocity resets to zero. In inertia mode keyboard readings define acceleration instead of velocity: if key W pressed, acceleration in Z direction is set to 0.01 pc/sec^2, etc. In camera update procedure velocity is computed as V.xyz = V.xyz + A.xyz * t, where A is acceleration read from keyboard, t - time tick (time between current and last frame). Velocity V does not reset after update like in 'free mode.' Rotation is calculated in similar way.
In this approximation "real" velocity in inertia mode depends on frame-rate. You can see that camera flight is not smooth, especcially near planets when many planetary nodes are loading. This is due to a one frame lag I think. Updating of camera is done at beginning of frame, and the engine has no way to know how many times will be required to finish rendering of current frame. In free mode, moving is framerate-independent because time tick is not used at all - velocity depends only on keyboard input. BTW, in video recording mode ("Frame time mode", activated by Shift-\) its independence leads to roughness of moving/rotating on the final video film - matching your keyboard hits or mouse rotation with current frame-rate when recording video is impossible. On the contrary, the inertia mode gives nice results - because in video recording mode time tick t becomes constant, and velocity calculation becomes independent of framerate.
The solution to first problem may be in implementation of physics calculations for camera in separate thread, that proceeds with its own constant time tick, for example via a system timer: one tick every 5 ms, independent of graphics framerate or loading processes. Solution to second problem I see is in camera path recording. This is similar to recording of a game match in an online shooter, then play it back with the engine in video recording mode to obtain smoother video.
*
|
|
| |
Robbie | Date: Sunday, 31.07.2011, 11:35 | Message # 5 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| Okay. I guess it's something you need to look at in more detail.
I tested out the 'mouseSens' and 'KeyboardSens.' and adjusted their values. It's much smoother in-game now. I'll try recording with these new settings to see if I get smoother transition.
It would be nice to also have this kind of sensitivity control over the release-time on the movement keys. Is there anyway to do that at present? Where I could adjust the time it takes to stop moving? i.e. 0 = stop immediate, 5 = slow down and stop after 5-seconds, 15 = slow down and stop after 15-seconds. This would be useful when I'm recording a video, where I have to take my hand away from the wasd keys for a moment to hit another key. At least that way I'd still get some forward motion without losing continuity while flying forward.
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
SpaceEngineer | Date: Monday, 01.08.2011, 02:00 | Message # 6 |
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
| No, with current version keyboard deceleraton effect is hard-coded. I can make it configurable at next release, and add an acceleration effect.
*
|
|
| |
Robbie | Date: Monday, 01.08.2011, 03:19 | Message # 7 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| Thanks a lot, SpaceEngineer. I also like your idea to have acceleration as well. Nice one. I guess it'll be something similar to the 'FastGoToTime' variable you already have assigned to the 'G' key. Having acceleration/deceleration should look really good in video presentations.
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
SpaceEngineer | Date: Thursday, 04.08.2011, 02:44 | Message # 8 |
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
| Robbie, I have a suggestion for you: Try to record video in 'free flight' mode, using only the keyboard to move and rotate camera. It seems to be far smoother when compared to using the mouse-controlled rotation. The smoother rotation is controlled by numpad keys.
Another suggetion: Would you like to record a couple of clips for the "video" page at the site? I want to record a new video myself, but have no time to do so... If you accept my request, try to make video clip in my style - no switches to another scene during the clips. It can be hard sometimes as the program can crash. As you can see in my videos, I stop moving in flight sometimes. At those moments I saved my current location in F6 menu and then exited the program to clear SE from memory. It'll help you to restart your recording at the last place, if you should crash, or if you make a mistake.
Also, try to record planets at LOD 0 or -1 (do not try positive LOD values, as in "immediate loading" mode planet may never achieve the desired level-of-detail). Don't forget to enable all effects; solar eclipses, multiple lighting, etc. If you want to include some music in your clip, don't forget to show autor's copyright at the end of video.
I would be happy to see your video creations!
Update: Orbiting mode is also accessible via keyboard. Press right mouse button (don't move mouse), and then use numpad keys to control rotation around selected object.
*
|
|
| |
Robbie | Date: Thursday, 04.08.2011, 10:24 | Message # 9 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| SpaceEngineer, I tried using the numpad keys as you suggested. I can't get use to it. It doesn't feel natural to me at all. I'm having to think too much on which keys to hit. It's like I've got two left hands It's a pity the mouse can't have this kind of smooth rotational control, it is very good.
In the videos I've done recently, there is a marked improvement in my recording, although I still occasionally get momentary freezes, and it can make my mouse jump the odd frame or two. I'm not sure if it's Space-engine or my hardware is struggling causing this glitching.
Thanks for asking me to do a video presentation to add to the video page. I would welcome doing this, but I would prefer to use my mouse and have better control over velocity presets, acceleration & deceleration of movement keys first before I attempt doing a video for you. When the next iteration of SE has better mouse and movement control, then I would like to do it; that is if you're happy to wait till then.
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
SpaceEngineer | Date: Thursday, 04.08.2011, 16:24 | Message # 10 |
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
| Okay, I will think about how to make controls more smoother. I have no idea when I release the new version, but I can send you a small patch that has all the current changes (with more stability, fixed bugs, with black holes, improved screen capturing, detal textures on planets, etc.) However, I have not finished the detail textures system, I need some more days for that...
*
|
|
| |
Robbie | Date: Thursday, 04.08.2011, 16:47 | Message # 11 |
Pioneer
Group: Global Moderators
United Kingdom
Messages: 590
Status: Offline
| Okay, when your ready, let me have the patch, and I'll test it out to see how well I get on with recording in SE.
Quad Core i7 930 CPU o/c 3.8 GHz - 6GB DDR3 1600MHz RAM - ATI HD 5870 1024Mb - Intel SSD X25-M Gen 2 - Win 7 64-bit Add Your PC Spec To Your Signature Or Post It Here
|
|
| |
snowballpudi | Date: Wednesday, 25.06.2014, 07:47 | Message # 12 |
Space Tourist
Group: Users
United States
Messages: 21
Status: Offline
| try taping down the move forward button and interchange between the three different flight modes.
Snowballpudi, look at the date of the post above. Old threads should not be posted in unless it's really important. Please don't do it again.
Edited by Watsisname - Wednesday, 25.06.2014, 09:19 |
|
| |