Page 1 of 129 1231151101 ... LastLast
Results 1 to 10 of 1282

Thread: [0.23.5] RasterPropMonitor - make your IVA a glass cockpit (v0.15) [10 Apr]

  1. #1
    Mad (social) scientist Mihara's Avatar
    Join Date
    Apr 2013
    Location
    Moscow, Russia
    Posts
    1,156

    Cool [0.23.5] RasterPropMonitor - make your IVA a glass cockpit (v0.15) [10 Apr]

    This is a plugin initially conceived to handle the internal monitor displays of the ALCOR capsule, with the intent of supplanting MechJeb/Engineer windows when flying from IVA. It evolved to the point when it's an entire kit of tools and widgets for creating advanced IVA props, capable of displaying information in many ways and dragging the kicking and screaming kerbals into the XXI century from the 1930s they seem to be stuck in.

    While this mod is mostly intended as an IVA making toolkit for modders, this package shows off some (amusingly, not all) of it's capabilities by completely redoing the instrument placement in all stock capsule interiors, which I'm sure many people will find useful exactly as presented -- consider it an independently useful technology demo. (yes, it does include patches for B9 cockpits.) It's most important function is to be "that mod where RasterPropMonitor.dll comes from" just like the popular Firespitter package is also the source of the Firespitter.dll which is used in lots of other places. If you wish to have RasterPropMonitor in the capsule you made, poke me and I'll help -- though please don't be offended if I'll reply by copypasting from the extensive documentation I wrote specifically for this.

    Please be sure to send me bug reports, because I'm pretty sure some of these things are not computed sensibly and I definitely missed something.



    The core of the plugin is an IVA information display, capable of displaying lots of useful data, (Total number of individual data variables you can display or make props act on is over 150!) as well as a number of outer cameras. All the information pages are completely configurable, pretty much nothing is hardcoded, the plugin can be used to create a wide variety of shapes and sizes of IVA display prop, as well as buttons, switches, gauges, alarms, and there are probably potential uses which I'm simply not seeing. Everything is exhaustively documented, and the system is designed to be flexible and extensible. You can write plugins for it, and in fact, that's how much of it works internally.

    Despite glowing comments, the IVAs this package provides are pretty basic compared to the gadgets in the ALCOR capsule which is where the bulk of this effort is ending up and where you can see the most elaborate use of this plugin's capabilities.

    Notable projects using RasterPropMonitor that you can also play with:What started as an attempt to help make a lander can that doesn't suck is turning into an industry.

    • Download: (Written in a very big font because people who can't read were complaining they can't find the download link.) The canonical binary distribution, which replaces the IVA in all stock capsules and augments it with monitors in certain mod capsules by using ModuleManager. Prop models courtesy of alexustas and released under the terms of CC-BY-NC-SA 3.0. ModuleManager.dll from this thread.
      Pods supported directly by this package: Every stock pod. Even those that have 'sealed box' internals have new instrument placement that makes them almost flyable. Every mod pod that uses any stock IVA. Every B9 pod that has an IVA. TMA-1 Orbital Orb.
    • Frequently Asked Questions: Please read.
    • What not to suggest: See PLANS.
    • Installation: Unzip so that the package's GameData matches your GameData, simple. Despite how simple it is, people seem to be getting this wrong, so I'll use big bold letters: THIS MOD IS VERY PICKY ABOUT BEING INSTALLED EXACTLY WHERE IT EXPECTS, everything that is within the GameData directory in the package must end up directly within your GameData directory, and there is nothing I can do about that. WARNING: Installation by overwriting previous versions is NOT guaranteed to work and NOT recommended. If you do that, you're on your own.
    • Developer documentation: PDF file that corresponds to the release version rather than in-progress version on the wiki.
    • Source code: GitHub and released under GNU GPLv3. Pull requests welcome. No, seriously.
    • Full documentation: On GitHub in the wiki. It's about as long as the sourcecode, because I like to write detailed manuals.
    • For previous releases see GitHub releases page.


    Extra things:
    • Better, more advanced menus: Kerbal Space Industries MFD Package has an interface that is more in line with the way real multi-function displays work and is more optimized for actually using it day to day than my own feeble attempt at using my own code.
    • Squad Texture Reduction Pack: You don't really want to use it, because Active Texture Reduction does the same in a non-invasive future proof manner, and the texture reduction pack is multiple versions out of date. If you still insist on using it, though, you also need this ModuleManager Patch.
    • Kerbonov Kn-2 cockpit: There's a patch to support it.
    • TouhouTorpedo's MK3 cockpit: This cockpit is not supported in the package itself because it does not have a well-established installation method for modern versions of KSP. There is, however, this ModuleManager patch if you did get it installed.
    • FASA Gemini Pod: It is not directly supported because I don't feel it's appropriate to just go and override what is an extremely detailed replica of historical craft with modern instruments in a package meant for general use. But if you don't care about historical accuracy, MOARdV has made a package for you.
    • Playing first person throughout: There are two plugins that do this sort of thing: FirstPersonEVA and Through the Eyes of a Kerbal




    RasterPropMonitor v0.15

    Known issues in this version

    • There is still no way to arm and disarm the grappling claw from IVA, even though you can release it from the targeting menu just like a docking port. There will be in the future, but in the meantime you can use action group buttons.


    Bugs fixed

    • Variables that have been deprecated and undocumented since version 0.10 have been completely removed.
    • TARGETDISTANCEZ would be negative if the target was in front of the ship and positive if it was behind. The sign on that was flipped to get it to make more sense.
    • LONGITUDETGT actually returned latitude.
    • Looping alarm sounds did not actually work.
    • STAGEREADY accounts for manual stage locking/disabling.
    • JSIActionGroupSwitch's "stage" feature likewise checks to see if staging is locked.
    • Fixed a bug where showing JSIOrbitalDisplay and JSIHUD at the same time would show incorrect colors for the HUD textures.
    • Fixed a bug where the prograde icon in the JSIHeadsUpDisplay pitch ladder was drawn upside down.
    • Fixed a bug where the prograde icons in JSIHUD were invisible if drawn on a transparent prop (like a HUD).
    • Time formatter now observes the KERBIN_TIME system settings. If the system says your day is 6 hours long and year is 426 days long, so will your monitors. For your convenience, a variable named ISONKERBINTIME will return 1 if the game is set to use Kerbin time.
    • Courtesy of angavrilov, closest approach calculations now correctly work with landed vessels.
    • Courtesy of angavrilov, SCANsatRPM now correctly plots post-node trajectory.


    New features

    • The new grappling claws had cameras installed in them, available just as docking port cameras are, and are otherwise supported in the targeting menu. ISCLAWREFERENCE variable tells you if the current reference point is a claw, ISREMOTEREFERENCE tells you if the current reference port is not a pod.
    • Claws can be disengaged from the targeting menu just like docking ports.
    • The Target Menu can now select asteroids that are being tracked under the Space Objects menu item.
    • The needsElectricCharge option in JSIActionGroupSwitch is now applicable to all actions.
    • A new option in handler configuration now lets you write background and page handlers which are aware of each other.
    • textOverlay option in page definition can now overlay a static text print over other sources of text, like a page handler, allowing you to make button hints on screen with text.
    • By popular request, you can now disable taking the screenshots of individual monitors by setting doScreenshots option in their configuration to false.
    • By popular request, most of the informational logging can be turned off.
    • JSIVariableAnimator can now also scale props.
    • JSIExternalCameraSelector has a configuration option that disables the light cone automatically turning on when it's picked up.
    • JSIOrbitDisplay now makes better decisions on what to display, making it more useful.
    • JSIOrbitDisplay will now draw the orbits and positions of all celestial bodies orbiting the body that the vessel is orbiting (for instance, the Mun and Minmus when the ship orbits Kerbin).
    • JSISteerableCamera supports multiple cameras (selected with the new nextCamera and prevCamera config parameters). JSISteerableCamera now also has a seekHome config parameter. When the button associated with this parameter is pressed, the currently-displayed camera returns to its initial position (pitch and yaw are set to 0).
    • MechJebRPM new buttons: Force Roll 0, Force Roll +90, Force Roll 180, and Force Roll -90. Landing Guidance (Land at Target / Land Somewhere) and Docking Autopilot are both in the MJRPM page handler. A Rendezvous Autopilot button exists, but it requires a MechJeb update to function.
    • JSIHeadsUpDisplay now displays a prograde icon on the heading bar and the pitch ladder to represent slip and angle-of-attack.
    • Stage locking can now be done using RPM with JSIInternalRPMButtons.ButtonStageLock().
    • And the speed display mode (ORB / SRF / TGT) can be changed with JSIInternalRPMButtons.ButtonSpeedMode().
    • The prograde icon in the JSIHeadsUpDisplay heading strip can be suppressed with showHeadingBarPrograde = false.
    • Added NEXTAPSIS, TIMETONEXTAPSIS, and NEXTAPSISTYPE variables.
    • Added JSIOdometer, which emulates a mechanical odometer to display numerical values in either raw numeric format (8 digits + sign), SI format (3.3 precision plus an SI prefix), or HHH:MM:SS time format.

  2. #2
    Brilliant work here, good to see a new way to make those displays.

    What do you mean by supporting exactly one camera, though? Most internals have multiple possible camera positions, usually accessed by double-clicking the windows. Is the text rendered in screen-space or via some similar way so that it will be missing or incorrectly projected if you'll look at a display from another camera?

  3. #3
    Looking good, but... the obsessive in me notes that it's not quite lined up with all the other instruments on that console. -_-;;

  4. #4
    Mad (social) scientist Mihara's Avatar
    Join Date
    Apr 2013
    Location
    Moscow, Russia
    Posts
    1,156
    Quote Originally Posted by Commander Zoom View Post
    Looking good, but... the obsessive in me notes that it's not quite lined up with all the other instruments on that console. -_-;;
    Because the console itself is kind of crooked and not lined up. Get PartTools 20, load it in Unity and see for yourself.

    Patches welcome.

  5. #5
    Mad (social) scientist Mihara's Avatar
    Join Date
    Apr 2013
    Location
    Moscow, Russia
    Posts
    1,156
    Quote Originally Posted by bac9 View Post
    What do you mean by supporting exactly one camera, though? Most internals have multiple possible camera positions, usually accessed by double-clicking the windows. Is the text rendered in screen-space or via some similar way so that it will be missing or incorrectly projected if you'll look at a display from another camera?
    No-no-no. External camera. Look closer at the first image in the album... guess I should have included more and better pictures.

    Every display page can have an associated named transform. This transform can be located anywhere within the vessel. When the page is activated, this transform will become the location of a camera, which will render into the screen background. You can have as many of those as you can have pages, the (arbitrary) limit on these is 8. (You can have as many individual different prop displays per pod as you like.)

    This distribution is more an example than anything else, and I don't have a model with a named transform in it handy, so in the example display here, the name of the transform it looks for is "port". Every stock docking port has one, unfortunately there's no telling which one will be found first.

  6. #6
    Ah, alright, makes sense.

  7. #7
    Here is something I did to the PTK NP. Since I don't have the mesh for this capsule to create the transforms I created 8 unique camera parts and placed them around the outside of the capsule in various places.


  8. #8
    Canis Vulgaris Asparagus el_coyoto's Avatar
    Join Date
    Sep 2012
    Location
    Strasbourg, France
    Posts
    188

    \o/

    Awesome!

    What bothers me with MJ, KER and most addons is that they add behavior windows to display their stuff and this behavior does not really fit the game GUI aesthetics.
    I love mods, but I sometimes miss the clean look of a fresh KSP install...

    Providing data in IVA view is the solution to this problem and reinforces the immersion into the game.
    Can't wait to see what modders will do with your work : in my opnion, the only thing that KSP really lacked until now were MFDs as cool as those in found Orbiter Flight Simulator...

  9. #9
    I'm missing something: I tried adding a transform named "port" in both a pod external and an internal model and the screen5 will not show the cam. Also, why does it say "port, 30" for camera 5? If we want multiple cams, do we just add that camera line under each page in that module?

  10. #10
    Mad (social) scientist Mihara's Avatar
    Join Date
    Apr 2013
    Location
    Moscow, Russia
    Posts
    1,156
    Quote Originally Posted by Nazari1382 View Post
    I'm missing something: I tried adding a transform named "port" in both a pod external and an internal model and the screen5 will not show the cam. Also, why does it say "port, 30" for camera 5? If we want multiple cams, do we just add that camera line under each page in that module?
    What do the logs say, and why did you name it 'port'? I only used that in the example prop config because that's a transform name that stock docking ports have. I'm not sure what's happening exactly, but I have a suspicion it's finding something (otherwise there would be a log message that the transform was not found) but that something has a position from which it's not possible to see anything. The transform has to be on the external model, (it can be on any part of the vessel, but the pod is searched first. The search is done again every time you switch pages.) and Z+ will be the direction it will be pointed into.

    If you want multiple cams, you add camera1, camera2, etc. The ",30" is the field of view the camera will have. For example, here's a config from an ALCOR screen that I used while testing:

    Code:
      MODULE
      {
        name = RasterPropMonitorGenerator
    	
    	refreshRate = 10
            refreshDataRate = 10
    	
    	button1 = buttonR1
        page1 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/landing40x10.txt
    	camera1 = Ext_B_CamTransform,40
    	
    	
    	button2 = buttonR2
    	page2 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/orbit40x10.txt
    	
    	button3 = buttonR3
    	page3 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/target40x10.txt
    	camera3 = DockingCamTransform,20
    	
    	button4 = buttonR4
    	page4 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/shipinfo40x10.txt
    	
    	button5 = buttonR5
    	page5 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/Crew40x10.txt
    	
    	button6 = buttonR6
    	page6 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/resources40x10.txt
    	
    	button7 = buttonR7
    	page7 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/misc-1-40x10.txt
    	
    	button8 = buttonR8
    	page8 = ASET/ASET_Lander_Cabin01/Props/FlatMon40x10/misc-2-40x10.txt
    	camera8 = Ext_A_CamTransform,60
      }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •