Jump to content

[1.8-1.12] TINU - There Is No Up 0.2.3


taniwha

Recommended Posts

This is a new camera mod for KSP, replacing current flight camera behavior, and something I've wanted in KSP since I first moved the camera back in 0.19. The main thing is the pitch limit and roll lock have been removed. Those familiar with Blender's trackball camera orbit mode will likely feel at home (NOTE: that's trackball, not turn-table, which has been the default for many years: Preferences -> Navigation for the curious).

Anyway, with practice, ANY camera angle is achievable. Below is just me being too lazy to level the camera :) (and it was a cool shot)

TINU.png

 

Controlling the camera is actually fairly intuitive: dragging the mouse near the screen edges induces more roll than pitch or yaw, dragging near a center-line induces more pitch or yaw. However, the pitch, roll, and yaw axes are always local to the camera, and always combine smoothly.

However, TINU is NOT intended as difficulty mod, but rather an immersion mod (especially in space). The main goal was actually just freeing up the camera rotation, the rest just came along for the ride, partly as a necessity and partly because I wanted to see how far I can take things with the full camera freedom.

Known Issues:

  • There's no lerping when TINU decides to do a quick change in reference vectors.
  • Initial camera orientation when launching a vessel can be weird.
  • No TrackIR support.
  • There's no ground clipping.
  • Vessel switching can be unpleasant.

Changes in behavior from stock:

  • There literally is no up. There isn't even snapping to a specific reference frame (though switching to a vessel does start out aligned with the vessel reference frame (so looking at dorsal side of the root part)). However, modes other than Locked do maintain primary and secondary reference vectors. Locked uses the vessel transform as reference.
  • The primary reference vector does not mean "down", but rather the camera local vector that is automatically aligned to the primary reference direction.
  • For Free mode, the primary reference direction is the in-vector (ie, towards the main body center (or "down" for those who have yet to escape mental flat-land)). This is similar to stock behavior except it is rarely camera-down.
  • For Orbital mode, the primary reference direction is the orbital velocity vector.
  • For Chase mode (with a target set), the primary reference direction depends on the automatic mode: direction to target for Orbital, and the in-vector for Free.
  • With no target set, Chase mode falls back to the automatic mode (Orbital or Free, depending on the situation).
  • The secondary reference vector causes the camera to rotate around the primary reference vector in an attempt to maintain a useful camera angle. Unfortunately, the secondary reference vector can become degenerate (parallel to the primary), in which case it is ignored until it is no longer degenerate.
  • Free mode uses the vessel's velocity as the secondary reference rather than north. This means that the camera will track nicely when navigating on or "near" the ground (eg, rovers and planes). This is similar to stock Chase mode when no target has been set. It does break down when doing a loop (passing through vertical in either direction), but does seem to recover once flying level again.
  • Orbital mode uses "frame lock" for the secondary vector meaning that there is no automatic rotation around the primary vector.
  • Chase uses either frame lock (automatic mode is Orbital) or the target direction vector (automatic mode is Free) for the secondary vector. This keeps camera behavior consistent with stock when "near" the surface, but the target is always tracked "correctly" when in orbit, making for rather nice rendezvous and docking operations.
  • Locked mode is very much like stock: every rotation of the vessel is tracked by the camera. However, the camera "up" is not locked to the vessel's "up" (what is this "up", anyway?).
  • EVA kerbal orientation can be a little disconcerting, even with SAS on. But, There Is No Up. Free mode is highly recommended as the kerbal's behavior is at least predictable.
  • The mouse drags the world, for both rotation and camera aim offset.
  • Numpad view switching. The following descriptions used Locked as reference.
    • 7 dorsal view with fore pointed camera-up
    • 1 tail view with dorsal pointed camera up
    • 3 starboard view with dorsal pointed camera up
    • 9 180 degree rotation around the camera horizontal axis (all modes)
    • 0 per-mode "bookmarked" relative orientation
  • Rignt-control numpad modifies the view selection
    • rctrl-7 ventral view with fore pointed camera-down
    • rctrl-1 fore view with ventral pointed camera-down
    • rctrl-3 port view with ventral pointed camera-down
    • rctrl-9 180 degree rotation around the camera vertical axis (all modes)
    • rctrl-0 set per-mode relative orientation "bookmark"
  • Numpad mode switching: switch directly to the desired camera mode rather than cycle through them all
    • 8 Orbital mode
    • 4 Locked mode
    • 5 Chase mode
    • 6 Free mode
    • 2 Auto mode
  • Numpad-/ quick access to TINU's settings panel (works even when the game is paused and the UI is hidden)
  • Right-control-numpad-/ toggles TINU itself (enabled or disabled)
  • In Free mode, forward is horizontal velocity when faster than 3m/s
  • Chase mode forward defaults to horizontal velocity but is horizontal direction to target (not really different from stock)
  • Current field of view slider in the settings panel has immediate effect
  • Standalone arrow key control of the camera can be individually inverted.

Download: TINU 0.2.3

Source Code (GPL): github

Edited by taniwha
Link to comment
Share on other sites

That looks real nice! I might download it soon. Do you think you could do something similar for the tracking station (and maybe map view) to turn it into more of a proper Celestia/Space-Engine-like planetarium? (Although more pressing for that would be the ability to turn on and off orbit lines and to have free translational movement of the camera)

Link to comment
Share on other sites

So, camera jerks around back and forth when brakes on a ground vehicle (rover) are applied. REALLY bad if the brakes are locked using the brake button. Goes away if you move the camera with mouse.


Also, with a rover, from a dead stop, moving forward, the camera flips around to the front, looking back at the front of the craft (like you are running backwards in front of the craft, and when moving in reverse, does the opposite).

And, unfortunately, as great as the name is, @taniwha, it seems that for Google search purposes, you couldnt have picked a worse one... Google returns *nothing*, using "kerbal tinu", as well as "kerbal there is no up" *and* even "kerbal tinu there is no up" ... lol :(

EDIT: and OH MY GOSH!!... the funny ragdoll effect it has on EVA'd Kerbals is hilarious... :P
Until you realise there seems to be no way to get your kerbal standing upright... which makes ground EVA impossible. vOv

Edited by Stone Blue
Link to comment
Share on other sites

@Stone Blue: Yeah, I think I need to disable TINU for kerbals (I know I do for IVA).

As for rover behavior: same with planes I need to figure out some better secondary axis logic for that. I think my secondary axis epsilon is too tight (ie, too small a projected vector is accepted as valid).

As for google: ksp tinu seems to find it now. first hit, even. Situation not so good for "there is no up", though. Give it time, I guess. Adding quotes works, though.

Edited by taniwha
Link to comment
Share on other sites

I"ve succeeded in giving the break-dancing kerbals a rest (not pushed yet), but now they get dizzy (secondary vector issues, same as other grounded vessels). I think fixing one of those will fix the other.

Link to comment
Share on other sites

Small update: I have kerbals behaving sensibly and the EVA navball working about as well as it can (indicating roll seems overly difficult). I'm currently working on the near-zero-velocity jitters and camera orientation on vessel switch.

Link to comment
Share on other sites

3 hours ago, Daniel Prates said:

That sure was a great screenshot.

What was?

Oh, I see... that I don't see. My browser refuses to load it because the screenshot (I'm guessing you're referring to

On 4/11/2020 at 10:44 AM, taniwha said:

it was a cool shot)

TINU.png

) is embedded over HTTP with the rest of the site being accessed via HTTPS.

Link to comment
Share on other sites

I've released version 0.0.2 of TINU. This fixes the nasty jitters when parked and landed kerbals are now very usable. I haven't tried them in orbit since before releasing 0.0.1, but they should be mostly ok (especially if SAS is off).

Link to comment
Share on other sites

I've released version 0.0.3 of TINU. This fixes an NRE that occurs briefly during KSP startup and implements middle mouse button camera aim offset. Note that camera offset motion is reversed from stock: the mouse drags the world rather than the camera. I find this to be much more intuitive, but I do plan on adding inversion options.

Link to comment
Share on other sites

I have released version 0.1.0 of TINU, this brings lots nice little tweaks:

  • KSP portrait mode (ie, monitor rotated 90 degrees) supported (in theory, who plays that way?)
  • Fixed zoom with mouse wheel when mouse is over UI elements
  • Camera mode switching via number pad giving direct access to each mode (even when TINU is disabled):
    • 4 Locked
    • 5 Chase
    • 6 Free
    • 8 Orbital
    • 2 Auto
  • Added a settings window accessible via app button in flight mode (note: other modes show the button too, but that's a bug)
  • Settings auto-saved whenever the settings window is closed, and auto loaded during KSP startup (however, can be reloaded at any time).
  • Option to disable TINU entirely, or for each camera mode.
  • Option to invert the MMB camera offset (note, from my perspective: mouse dragging the world is natural, mouse dragging the camera (stock behavior) is inverted) (works only when TINU is enabled, but then you get stock behavior anyway)
  • Default field of view slider (effective even when TINU is disabled)
  • Arrow key rotation sensitivity slider (works only when TINU is enabled)
  • Virtual trackball size can be adjusted. A larger ball makes for lower roll sensitivity making panning a little easier.

Planned from here are more behavioral tweaks including such things as optionally not following velocity for Free mode, saving camera orientation with the vessel, nicer orientation behavior when switching between local vessels, etc. These things proved to be in need of more thought and I thought it best to get this general usability update out.

Also, TINU is NOT intended as difficulty mod, but rather an immersion mod (especially in space). The main goal was actually just freeing up the camera rotation, the rest just came along for the ride, partly as a necessity and partly because I wanted to see how far I can take things with the full camera freedom. Thus the ability to disable TINU at any time. A good camera is never noticed, any camera you have to fight is a bad camera.

Link to comment
Share on other sites

  • 2 weeks later...

I have released version 0.1.1 of TINU.

Changes from 0.1.0:

  • Fix delegation of control to the stock camera (MMB drag not working was one symptom)
  • Fix RMB drag causing the camera to lock to the vessel. TINU should be much more usable when the vessel is rotating.
  • Thicken the lines in the icon.
Link to comment
Share on other sites

  • 2 weeks later...

I have released version 0.2.0 of TINU.

Changes from 0.1.1:

  • Add inversion of camera pitch and yaw key input (standalone arrow keys)
  • Add a hot-key to toggle TINU's settings panel (works when paused and even when the UI is hidden) and TINU itself
  • Add a slider for the current field of view: takes effect immediately
  • Add frame-relative per-mode orientation "bookmarks": only one per mode, but is particularly handy in Free mode for planes and rovers (once going over 3m/s so Free can lock onto the velocity)
Link to comment
Share on other sites

  • 6 months later...
  • 1 month later...
  • 2 months later...

I

On 1/21/2021 at 8:17 AM, taniwha said:

@NateDaBeast It's probably your browser rejecting the http;// in the link. Try editing the link to be https:// (and then fight with your browser to accept the self-signed cert).

I was having a similar issue? , Google Blocked me from reaching the download, though I  just clicked the button to "Unsafely" Go to the website and it downloaded normally, (something about a Poorly Signed Certificate) but It might just be Google being Zealous

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...