DocNappers Posted March 16, 2021 Share Posted March 16, 2021 (edited) This is a continuation of Camera Tools originally made by BahamutoD and previously maintained by jrodrigv. It is intended to be used with the version of BDArmory Plus that has been extensively built upon after gaining a surge in popularity from Scott Manley's use of it in Runway Project and is currently being used for Flying Circus, but probably works fine with other versions of BDArmory too or even without BDArmory. > Download from SpaceDock Source on GitHub License: GPLv3 New features in v1.35.0 Spoiler Add better handling of dogfight mode for BDA waypoint mode with combat. Adjust get/set accessor templates to return specified types instead of generic objects. Reduce / eliminate unintended roll and camera offset in dogfight mode due to low lerp rates. Add a slider for selecting the reference frame to use for the dogfight offset. Adjust the dogfight inertial chase slider to the range 0—1 and adjust the "inertia" behaviour, including affecting camera rotation. Add a chase plane mode to dogfight mode where the secondary target is the active plane and roll is disabled. Allow choosing which part (or CoM) to track. Add controller input (AXIS_CAMERA_HDG and AXIS_CAMERA_PITCH) to freelook in dogfight mode and camera rotation in stationary and pathing modes. Add a geospatial pathing option to pathing mode where points are GPS coordinates and rotations are absolute instead of relative to the active vessel. It can be a bit jittery when Krakensbane is active and the floating origin is more than a few km away. Also, for now, this is just using spline interpolation between GPS points instead of proper geospatial interpolation via https://www.movable-type.co.uk/scripts/latlong.html, so paths crossing 180° longitude won't work properly. New features in v1.34.0 Spoiler Chinese localisation thanks to user ThreeMACH. Pivot toggle: Add an option to toggle pivot points between the camera and the target (if valid) when rotating with the right mouse button. A hotkey can be assigned to this toggle, but is not assigned by default. When pivoting around the camera, the behaviour is unchanged. When pivoting around a target in pathing or stationary camera modes, the behaviour is similar to KSP's standard camera movement depending on whether the movement modifier is being held or not. While the movement modifier is not being held, rotation is aligned with the camera's axes. While the movement modifier is being held, rotation is aligned with the target vessel's axes. In pathing camera mode, the pivot point is the vessel's reference transform position. In stationary camera mode, the pivot point is either the targeted part or the vessel CoM if that option is selected. In dogfight camera mode, the pivot toggle affects the free-look mode and pivots around the closest point to the vessel along the camera's forward axis. Fix camera roll when transitioning between modified and non-modified movement modes in stationary camera mode. The free-move mode (position vs speed) and pivot mode are now preserved in the settings. Tweak the mouse sensitivity for input to rotations for more comfortable rotations. New features in v1.33.0 Spoiler Add a slider for controlling how long after BDA's secondary dogfight target dies (for non-missiles) before selecting a new secondary non-missile target (to enable lingering on kills). Fix false positives of Krakensbane being active on vessel switches. New features in v1.32.0 Spoiler Improvements to death camera angles and transitions for dogfight mode. Add a button to switch from pathing mode to stationary mode while maintaining the current view. Adjust location of random mode options. Add a button for resetting the camera roll (in stationary and pathing modes). Optimisations to use vessel.CoM instead of vessel.transform.position where applicable. Apply maxRelV to the stationary camera when using random mode. Remove the low-altitude stationary mode override for random mode. Prevent the camera from going below terrain and water (when vessel is only partially submerged) in dogfight mode. Separate the auto-zoom toggle between dogfight and stationary modes. Adjust default settings for a dynamic dogfight mode. Add a slider for setting the minimum interval to check for a new secondary dogfight target if the secondary target is a missile. Don't restart the dogfight camera when switching secondary targets for smoother transitions. Krakensbane optimisations (from BDArmory). Finish adding English (en-us) localisation and tooltips. New features in v1.31.0 Spoiler Fix NREs from atmospheric audiosources when not in atmosphere. Don't reset the original camera parent's position when reverting (fixes weird camera angle). Override the camera restore distance with custom distance (from BDA) when reverting due to auto-enabling for BDA. Add support for a new BDA helper property for inhibiting camera tools. Add support for new BDA helpers for tracking missiles' targets in dogfight mode. Minor tweaks to MouseAimFlight helpers. Some internal restructuring of utils. Begin adding localisation support (not yet complete). Begin adding tooltips (not yet complete). New features in v1.30.1 Spoiler Sanitise timestamps by shifting duplicates by 0.001s instead of breaking the view frustrum with NaNs and avoid division by 0 in spline calculations. New features in v1.30.0 Spoiler Fix stock aero FX not being applied and provide a toggle to disable them. Adjustments to fix some issues when BDArmory should be inhibiting CameraTools and more detailed debugging messages. Add check for new BDA OrbitalAI. New features in v1.29.2 Spoiler Fix an AudioSource memory leak. New features in v1.29.1 Spoiler Fix wind-tear audio being overly loud from recent tweaks. New features in v1.29.0 Spoiler Add a configurable movement threshold to activating free-look mode (default: 0.1). If the camera parent gets stolen, automatically steal it back if it's the original camera parent (due to spawning a kerbal, BDA MML, etc.). Allow customising the maximum value of the zoom, auto zoom, dogfight distance and dogfight offsets in the settings.cfg. Optimisations to how part audio effects are managed. Rework the sonic boom calculations, allowing them to reset and removing the booming when switching vessels/restarting camera modes. New features in v1.28.0 Spoiler Adjust random mode selection for low altitude to be more amenable to BDA pod-racing. Add a visual toggle for free-move mode (speed vs position). Add an optional keybind for resetting the roll in stationary camera mode. Initially unbound, remove the entry from the settings.cfg to unbind it once bound. Fix camera position in Stationary and Dogfight modes when returning from Map mode. Add a free-look mode to Dogfight mode (hold right mouse button, compatible with MouseAimFlight integration). New features in v1.27.0 Spoiler Fix dogfight centroid mode. Add checks for the active vessel being a BDA missile and use dogfight chase mode if it is. Add roll option to stationary camera using right+middle mouse buttons, with the movement modifier key (keypad enter) switching between camera and world coordinate systems. Add support for using the MouseAimFlight mod in dogfight camera mode. Delay camera activation/deactivation when not in flight mode until back in flight mode. New features in v1.26.0 Spoiler Prevent the camera from going below the surface in dogfight mode when the vessel is landed or near the surface when splashed. Disable roll and offset in dogfight mode when the vessel is an EVA kerbal. Ignore ksp_dir.txt lines starting with # for post-build events in Linux (not sure how Windows should do this). Fix bug in field name for input boxes. New features in v1.25.0 Spoiler Add an inertial chase mode to the dogfight camera. Inertial factor provides a looseness to the camera position. Offsets are relative to the vessel frame of reference, instead of the camera frame of reference. Save / restore other AudioSource fields that get modified as part of doppler SFX in case this is part of the cause of some sound bugs (not sure if it is or not, but better safe than sorry). Rework the BDA secondary target priority to favour the vessel's target (instead of attacker) when it has recently been firing or fired a missile (requires BDA+ v1.5.4.1 or later). Add a slider to control the minimum update interval of the BDA secondary target selection after switching targets (updates occur every 0.5s after the minimum interval has elapsed). New features in v1.24.0 Spoiler Initialise the "maxRelV" numeric field properly so that the field-width parameter is 6, not the min value. Cache the atmospheric audio sound clips to avoid GC allocations. Include the fix (from BDArmory) for Apple Silicon (M1 chip) not calculating sqrt properly when multiplied by a float. https://issuetracker.unity3d.com/issues/m1-incorrect-calculation-of-values-using-multiplication-with-mathf-dot-sqrt-when-an-unused-variable-is-declared Add an auto-landing option to the stationary camera. Without "Maintain Vel." enabled, the position of the camera is based on the vessel's current position. With "Maintain Vel." enabled, the position of the camera is based on the vessel's predicted terrain intercept if it follows a ballistic trajectory (no drag). The altitude of the camera above the terrain is defined by the "Up" component of the "Manual Flyby Position". An extra horizontal offset is defined by the "Fwd" (in the vessel's velocity direction when activated) and "Right" components. New features in v1.23.0 Spoiler Fix some memory leaks detected by KSPCF. Refactor integration with other mods into their own files (mostly). Some BDArmory-related settings may need resetting. Allow deploying to multiple KSP instances when compiling in Linux. Add speed free-move mode for keyboard input (default toggle 2). Toggling this resets the speed to zero. Disabled when in numeric input mode. Update numeric input fields when making changes with keyboard input. Add display field-width parameter to numeric input fields. New features in v1.22.0 Spoiler Bugfixes: Add check for the class type of VesselSpawner due to the current changes in BDA dev. Fix BindingFlags for initial reflection due to changes in BDArmory. Improvements: Add a target centroid option for the dogfight mode. Replace reflection for BDArmory with delegates for much faster field/property access. Lower the log error for not being able to set IVA camera mode to a warning. New features in v1.21.0 Spoiler Improvements: Updated fields/properties for compatibility with an internal refactor in BDArmory. Don't revert the camera when there's no further dogfight targets. New features in v1.20.0 Spoiler Bugfixes: Don't reset the zoom value when reverting the FoV. Fix the lower limit of the camera shake multiplier when using numeric fields. Make the config paths relative to the KSP app location (makes it more relocatable). Fix an NRE in the audio controller. Improvements: Add a version number and activation toggle/indicator to the GUI. Separate zoom and autozoom parameters for the different modes so that adjusting zoom levels in one mode doesn't affect other modes. Tweak the camera shake slider to use steps of 0.1. Move the floating origin corrections for the stationary camera to the BetterLateThanNever timing phase to avoid the occasional flicker. Remove the 0 minimum of the max relative velocity to allow reverse fly-bys with the stationary camera again. Only disable TimeControl's CameraZoomFix while CameraTools is active so as to avoid interfering with that mod while CameraTools isn't active. Look for and disable BetterTimeWarp's ScaleCameraSpeed while CameraTools is active, since that also messes with CameraTools during slow-mo. BDA Auto Targeting: add an option to not target incoming missiles. Corrections to the KrakensbaneWarpCorrection for dogfight and stationary camera modes so that they work (almost) correctly at all altitudes and warp levels. Known issues for the stationary camera when maintaining orbital velocity are: When changing low warp rate at above 100km altitude a slow drift begins, as if the orbit calculation position is slightly wrong. I.e., starting at a given low warp and staying there is fine, but once changed the drift begins. Below 100km altitude, there is a small unsteady drift when not in high warp (and exaggerated by low warp) and once noticeably present continues after entering high warp. Switching in and out of map mode returns the camera to the wrong position. New features in v1.19.2 Spoiler Bugfixes: Check for the flight camera being null on startup (caused by other modules crashing KSP). Fix check for secondary camera target priorities in dogfight mode with BDArmory (incoming missiles are prioritised, then incoming fire, then current vessel's target). Ignore maxRelV when random mode is enabled (should fix badly placed stationary camera on vessel switches). Improvements: Allow the stationary camera to be placed up to 5km higher to avoid potential terrain line-of-sight issues. New features in v1.19.1 Spoiler Bugfixes: Fix random mode transitions that got broken in the last release. Delay activating the new camera mode on vessel switches until LateUpdate for all camera modes, not just dogfight mode. Reset the zoom slider when resetting the FOV. Auto-switch the auto-zoom to regular zoom when entering pathing mode as pathing only uses the regular zoom. Remove the temporaryRevert code (I think that was a Scott Manley hack). Improvements: Adds autoEnableOverride for BDArmory's tournament inter-round time-warping. New features in v1.19.0 Spoiler Improvements Use a more stable direction for dogfight mode when the vessel is bobbing around on the ocean. Auto-Enable for BDArmory when using surface AIs too. Interpolation rate setting renamed to 'Secondary Smoothing', which takes values in the linear range from 0 to 1 to try to give the user a more intuitive understanding of what the setting does. Actual Lerp values are calculated as 10 ^ {-2 * secondary smoothing} (i.e., 1 to 0.01). Old paths are automatically upgraded to use the new variable. The default hotkey for toggling the menu is now [0] (keypad 0) to avoid a conflict with the new AI GUI in BDArmory, which uses [/]. A variety of QoL improvements for pathing mode by HatBat: Keys created during path playback are now automatically inserted at the current path time. Useful for molding paths in to specific shapes. Added a 'Maintain Speed' button to the keyframe editor that adjusts the duration of the current keyframe to approximately match the speed between the previous two keyframes. Useful for smoothly extending paths and correcting speed inconsistencies in complex paths. Camera updates can now be switched between Update or 'Real-time' and FixedUpdate or 'In-Game Time'. 'Real-time' creates smoother paths and works while the game is paused, which helps to reduce lag, while 'In-Game Time' is useful for making sure pathing speed is consistent with game physics and that none of the path is skipped when processing footage to remove lag. See FFmpeg's mpdecimate. New keyframes created while CameraTools is inactive are now correctly started at the current camera position, rather than on top of the vessel facing down or inside the vessel, and use the stock zoom. Path playback now starts from the selected keyframe if one is selected. Useful for previewing small changes to long paths. The flight camera now correctly reverts to its original distance, orientation, zoom state and mode when pathing is deactivated. Camera zoom is now updated immediately rather than gradually when selecting a keyframe or starting a path. [7]/[1] now moves the pathing camera up/down relative to the frame instead of the ground. This functionality was previously on the scroll wheel. Vertical movement with the mouse is now triggered by holding both the middle and left mouse buttons and moving the mouse forward/backward (replaces the previous scroll wheel functionality). Holding keypad Enter (configurable) modifies the reference frame for movement to be relative to the vessel instead of the camera. Also, left/right and forward/backward are reversed for more natural movement when viewing the vessel from the front, which is the typical use-case. The scroll wheel now adjusts the move speed while the pathing camera is active. This is useful for quickly switching between fine adjustments and repositioning of the camera. The default time increment for new keys has been changed back to 10 seconds from 1 second. This is a more practical default path length and makes manually inserting new keys easier. The default rotation interpolation mode is now CubicSpline, was previously Slerp. The last path you used is now remembered between restarts. The GUI no longer closes on pressing save. Replaced by a bit of visual feedback. Useful for habitual save pressers. New features in v1.18.2 Spoiler Improvements: Re-add the "interpolation rate" parameter in pathing. (A value of 1 means that the camera follows the defined path precisely. A value less than 1 means that the camera chases the point on the path.) New features in v1.18.1 Spoiler Improvements: Add customisable min/max values to the keypad move and zoom speeds (editable in the settings.cfg). New features in v1.18.0 Spoiler Improvements: Add option for text input fields instead of sliders. Add 'Maintain Vel.' option, which is the equivalent of the old 'Initial Velocity' reference mode. Make the menu toggle hotkey configurable too. Make loading of paths a bit more fault tolerant. New features in v1.17.0 Spoiler Bugfixes Only activate the camera when changing modes if it was already active. Don't automatically start playing a path when adjusting it or creating a new one and stop it if keyframes or the path is deleted. Start playing a path when it's loaded if camera tools is active. Adjust ordering of stationary path updates to avoid jitter. Improvements Automatically disable TimeControl's camera zoom fix as it breaks CameraTools when slow-mo is enabled (sorry @ntwest). Switch stationary and pathing cameras to run in Update instead of FixedUpdate as they aren't sensitive to physics updates. Switch pathing camera to use unscaled time so that it works while paused. Add option of cubic spline interpolation to pathing mode positions based on https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Interpolation_on_an_arbitrary_interval. Add option of Slerp and cubic spline interpolation to pathing mode rotations. Note: the interpolation method is used from the keypoint it's set in until the next one, so different parts of the path can use different interpolation methods. Rework stationary camera to actually make the camera stationary when below maxRelV. Jumps due to CoM changes (e.g., launch clamp detachment) should not affect the camera position unless maxRelV is extremely low (e.g., <1 in most cases). Option to save the previously used rotation in stationary camera mode when no target is selected (prevents semi-random initial views, default: disabled). Add keybinding options for free move keys (escape cancels keybinding). New features in v1.16.4 Spoiler Recompiled with KSP 1.12 assemblies. New features in v1.16.3 Spoiler Fix potential NRE when enabling IVA mode. Abort trying to enter IVA mode if KSP throws an exception. Don't add atmospheric controllers to objects that already have one. New features in v1.16.2 Spoiler Respect random mode when manually activating the camera. Exit IVA mode more reliably to avoid broken flickering camera. Performance optimisations to avoid GC allocations. New features in v1.16.1 Spoiler Fix NRE when vessel is destroyed before switching to IVA mode. Don't immediately re-enter IVA mode if manually switched out of it. New features in v1.16.0 Spoiler Try to reacquire a dogfight target if reverted due to a null dogfight target and Auto-Enable for BDArmory is enabled. Limit the type of vessels atmospheric audio gets added to to avoid saturating KSP's SoundManager channels unnecessarily. Fix indexing bug in 'pathing mode' (note: the example path is still weird). Add sliders for configuring chances of 'random mode'. Add IVA view to 'random mode' (if the vessel has a cockpit, otherwise it counts as dogfight mode). In 'random mode', use the stationary camera when switching to views of a target that is close to the ground or about to crash. Improve the positioning of the stationary camera when switching to views of a target that is close to the ground or about to crash. Recover better from something else stealing the camera parent. New features in v1.15.4: Spoiler Exclude music volume levels from volumes based on distance from the camera. Migrate non-static config files to PluginData to avoid invalidating the ModuleManager cache (should give slightly faster start-up times). New features in v1.15.3: Spoiler Disable slider discretisation when keypad control is enabled. Properly correct for time-warp under almost all conditions for dogfight mode. (It only gets the offset wrong between 70km and 100km above Kerbin and similarly on other bodies.) Eliminate pretty much all graphical glitches caused by floating origin and Krakensbane velocity shifts in dogfight mode. Change the keypad move/zoom speeds to sliders for easier access. Add option to turn on lots of debugging. New features in v1.15.2: Spoiler Don't touch the camera when we're not in control of it! Use TimeWarp times instead of Time times for velocity calculations. Allow switching into and out of IVA and Map modes. New features in v1.15.1: Spoiler Fix missing config file load/save bug. Update all version numbers properly. New features in v1.15.0: Spoiler A bunch of bugfixes. Save settings properly. Death camera: when in dogfight mode, temporarily follow the explosion when the followed plane gets destroyed. Adjustable lerp (interpolation) rate for dogfight mode. Adjustable roll amount (based on the followed craft) for dogfight mode. Smoother transitions into dogfight mode. Auto-enable for BDArmory. Edited 15 hours ago by DocNappers Add v1.35.0 improvements/fixes Quote Link to comment Share on other sites More sharing options...
I love ksp Posted March 17, 2021 Share Posted March 17, 2021 First reply. Quote Link to comment Share on other sites More sharing options...
Minmus Taster Posted March 17, 2021 Share Posted March 17, 2021 You are our savior @DocNappers! welcome to the Forums! Quote Link to comment Share on other sites More sharing options...
ItsSnowyy Posted March 18, 2021 Share Posted March 18, 2021 how do i get sonic boom for this Quote Link to comment Share on other sites More sharing options...
CHEEKYMONKEY6 Posted March 19, 2021 Share Posted March 19, 2021 yay fourth reply Quote Link to comment Share on other sites More sharing options...
DocNappers Posted March 24, 2021 Author Share Posted March 24, 2021 On 3/18/2021 at 3:33 PM, ItsSnowyy said: how do i get sonic boom for this There should be a sonic boom in there from before, though it requires that a plane be travelling faster than 330m/s towards the camera. I'll need to do some testing to check that the playback volume is the right level to be audible. Quote Link to comment Share on other sites More sharing options...
OnlyLightMatters Posted March 24, 2021 Share Posted March 24, 2021 (edited) Hi DocNappers and thank you for supporting this mod! KSP 1.11.2. I have a few messages in KSP.log regarding CameraTools. I have a bigger issue, the icon mod does not appear in the app's menubar, cannot invoke the control panel window of the mod. Mod DLLs found: Stock assembly: Assembly-CSharp v0.0.0.0 Scale_Redist v1.0.0.0 / v2.4.4.0 ModuleManager v4.1.4.0 BlendshapeModelLoader v1.0.0.0 TexturesUnlimited v0.0.0.0 CameraTools v1.14.0.0 CCK v5.1.0.0 / v5.1.0.0 for KSP v1 KerbalEngineer.Unity v1.0.0.0 KerbalEngineer v1.1.8.3 KIS v1.28.7685.40880 / v1.28 for KSP v1.11+ KSPDev_Utils.2.4 v2.4.7504.27510 / v2.4 for KSP v1 MiniAVC-V2 v2.0.0.0 Kopernicus.Parser v1.0.0.0 ModularFlightIntegrator v1.0.0.0 / v1.2.10.0 Kopernicus v1.0.0.0 KS3P v1.0.0.0 / v6.1.2.3 PQSModExpansion v1.0.0.0 Parallax v1.0.0.0 ParallaxCollision v1.0.0.0 ParallaxInstallationChecker v1.0.0.0 scatterer v0.723.0.0 Stock assembly: KSPSteamCtrlr v0.0.1.35 KSPe.Light.TweakScale v2.2.2.2 Scale v2.4.4.5 v1.14.0.0 displays even if it is the 1.15 which has been installed with CKAN. [LOG 14:17:42.886] Load(Texture): CameraTools/Textures/icon [WRN 14:17:42.890] Texture resolution is not valid for compression: 'F:\Yann\Jeux\KSP-1.11.2\GameData\CameraTools\Textures\icon.png' - consider changing the image's width and height to enable compression If this linked with the icon which does not display in the UI ? And finally [LOG 13:57:43.398] [AddonLoader]: Instantiating addon 'CamTools' from assembly 'CameraTools' [WRN 13:57:43.404] File 'GameData/CameraTools/settings.cfg' does not exist [EXC 13:57:43.405] NullReferenceException: Object reference not set to an instance of an object CameraTools.CTPersistantField.Load () (at <233de726bc1249ecb1fabd9f189881e1>:0) CameraTools.CamTools.Load () (at <233de726bc1249ecb1fabd9f189881e1>:0) CameraTools.CamTools.Awake () (at <233de726bc1249ecb1fabd9f189881e1>:0) UnityEngine.DebugLogHandler:LogException(Exception, Object) ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object) UnityEngine.GameObject:AddComponent(Type) AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup) AddonLoader:StartAddons(Startup) AddonLoader:OnLevelLoaded(GameScenes) AddonLoader:OnSceneLoaded(Scene, LoadSceneMode) UnityEngine.SceneManagement.SceneManager:Internal_SceneLoaded(Scene, LoadSceneMode) Do you want more information? Edited March 24, 2021 by OnlyLightMatters Quote Link to comment Share on other sites More sharing options...
DocNappers Posted March 25, 2021 Author Share Posted March 25, 2021 (edited) 19 hours ago, OnlyLightMatters said: Hi DocNappers and thank you for supporting this mod! KSP 1.11.2. I have a few messages in KSP.log regarding CameraTools. I have a bigger issue, the icon mod does not appear in the app's menubar, cannot invoke the control panel window of the mod. Mod DLLs found: Stock assembly: Assembly-CSharp v0.0.0.0 Scale_Redist v1.0.0.0 / v2.4.4.0 ModuleManager v4.1.4.0 BlendshapeModelLoader v1.0.0.0 TexturesUnlimited v0.0.0.0 CameraTools v1.14.0.0 CCK v5.1.0.0 / v5.1.0.0 for KSP v1 KerbalEngineer.Unity v1.0.0.0 KerbalEngineer v1.1.8.3 KIS v1.28.7685.40880 / v1.28 for KSP v1.11+ KSPDev_Utils.2.4 v2.4.7504.27510 / v2.4 for KSP v1 MiniAVC-V2 v2.0.0.0 Kopernicus.Parser v1.0.0.0 ModularFlightIntegrator v1.0.0.0 / v1.2.10.0 Kopernicus v1.0.0.0 KS3P v1.0.0.0 / v6.1.2.3 PQSModExpansion v1.0.0.0 Parallax v1.0.0.0 ParallaxCollision v1.0.0.0 ParallaxInstallationChecker v1.0.0.0 scatterer v0.723.0.0 Stock assembly: KSPSteamCtrlr v0.0.1.35 KSPe.Light.TweakScale v2.2.2.2 Scale v2.4.4.5 v1.14.0.0 displays even if it is the 1.15 which has been installed with CKAN. [LOG 14:17:42.886] Load(Texture): CameraTools/Textures/icon [WRN 14:17:42.890] Texture resolution is not valid for compression: 'F:\Yann\Jeux\KSP-1.11.2\GameData\CameraTools\Textures\icon.png' - consider changing the image's width and height to enable compression If this linked with the icon which does not display in the UI ? And finally [LOG 13:57:43.398] [AddonLoader]: Instantiating addon 'CamTools' from assembly 'CameraTools' [WRN 13:57:43.404] File 'GameData/CameraTools/settings.cfg' does not exist [EXC 13:57:43.405] NullReferenceException: Object reference not set to an instance of an object CameraTools.CTPersistantField.Load () (at <233de726bc1249ecb1fabd9f189881e1>:0) CameraTools.CamTools.Load () (at <233de726bc1249ecb1fabd9f189881e1>:0) CameraTools.CamTools.Awake () (at <233de726bc1249ecb1fabd9f189881e1>:0) UnityEngine.DebugLogHandler:LogException(Exception, Object) ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object) UnityEngine.GameObject:AddComponent(Type) AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup) AddonLoader:StartAddons(Startup) AddonLoader:OnLevelLoaded(GameScenes) AddonLoader:OnSceneLoaded(Scene, LoadSceneMode) UnityEngine.SceneManagement.SceneManager:Internal_SceneLoaded(Scene, LoadSceneMode) Do you want more information? Looks like I missed one of the places where the version number is set. I'll update it. The problem with the icon not showing up in the GUI is due to it not finding the settings.cfg file when it tries to load the assembly (the settings.cfg file was removed at one point to avoid overwriting everyone's settings each time it got upgraded). I'll add a fix so that it uses the default values if it doesn't find it. In the meantime, you can generate a settings.cfg file with my current settings: CToolsSettings { referenceMode = Surface toolMode = DogfightCamera randomMode = False autoFlybyPosition = False autoFOV = True freeMoveSpeed = 10 keyZoomSpeed = 1 zoomExp = 1 enableKeypad = False maxRelV = 2500 manualOffset = False manualOffsetForward = 500 manualOffsetRight = 50 manualOffsetUp = 5 useOrbital = False targetCoM = False cameraKey = home revertKey = end useAudioEffects = True shakeMultiplier = 1 dogfightDistance = 50 dogfightOffsetX = 10 dogfightOffsetY = 4 autoZoomMargin = 25 useBDAutoTarget = True dogfightLerp = 0.1 dogfightTargetLerp = 0.25 autoEnableForBDA = True DEBUG = False dogfightRoll = 0.5 } Edited March 25, 2021 by DocNappers Quote Link to comment Share on other sites More sharing options...
DocNappers Posted March 25, 2021 Author Share Posted March 25, 2021 I've just updated CameraTools continued to v1.15.1, which should resolve the issues with the missing config file. Quote Link to comment Share on other sites More sharing options...
FlamingRocket Posted April 1, 2021 Share Posted April 1, 2021 Hi, not sure if it's my game or the mod, but there are a few "glitches" that I have experienced. For example, reaching 3000m suddenly makes the camera switch to fly-by for a brief moment even though I wasn't pressing anything, secondly, the camera appears to glitch and shake very violently when I timewarp (physical timewarp doesn't do this). My game is modded with Hullcam but I don't know if it's related. I downloaded the mod through CKAN and have updated to the latest version. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted April 1, 2021 Author Share Posted April 1, 2021 Yeah, there are still a variety of glitches in CameraTools. I've been busy with adjustments to BDArmory lately for the latest Runway Project round. Hopefully, I'll have a bit more time to fix these issues now. I haven't tested it with time warp enabled since we've mostly been running fights in real-time in atmospheres. It ought to just be a matter of shifting the velocity calculations over to using KSP's `TimeWarp` class instead of Unity's `Time` class, I think. Using the wrong time-step in those calculations would definitely lead to a horribly shaky camera. Using a different camera mod together with CameraTools should be fine as long as only one of them is active at a time. The way that it works is that each mod (and the base KSP flight camera) assigns the flight camera to a game object and then moves that object around, so if it's active in one mod and then another one steals it, the first mod is going to continue applying transformations to it with the expectation that the camera is attached to its game object (which it isn't). Ideally, each camera mod would check that the flight camera parent transform is the one it's using before applying any transformations. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted April 1, 2021 Author Share Posted April 1, 2021 OK, version 1.15.2 is on SpaceDock. Bugfixes: It fixes the issues where CameraTools was doing stuff to the camera when it wasn't supposed to. It also uses the appropriate TimeWarp times for velocity calculations. Improvements: It allows switching into and out of IVA and Map modes without breaking the camera. Quote Link to comment Share on other sites More sharing options...
OrbitalManeuvers Posted April 6, 2021 Share Posted April 6, 2021 Hello! Picked this up to see what the differences might be, even though I don't do any plane stuff. But ya know, anyone working on mods I use is a good thing. I was wondering if you'd consider a change. In UpdateDogfightCamera() in CamTools.cs, there's a * 10 factor being forced into the keyboard Zoom speed, whereas that's not done for the keyboard Move speed. And indeed, this makes Zoom pretty unusable for me. Try putting the camera near a parked vessel and then use keyboard Zoom. Even at 1 it's just way too fast for close shots. I get that the * 10 can help with fast ramp zooms, but it excludes any other usage, and the same thing could be accomplished by just typing a larger number, whereas there's no way to slow it down no matter what you type. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted April 6, 2021 Author Share Posted April 6, 2021 (edited) OK, I'll look into it. I haven't used the keys to control the sliders before. I'm currently working on removing the jitter that occurs whenever the floating origin or Krakensbane velocity changes occur. Edit: the zoom speeds seem fine to me. There's two boxes that appear when you enable keypad control that let you set the speeds. It's a bit tricky to enter a value less than 1 due to it trying to parse the number immediately, but you can do so by putting the '.' in first. I can remove the built-in *10 factor and set the default zoom speed in the box to 10. I might change those to sliders instead. The only issue I see is the discretisation of the sliders that I put in to make the sliders behave nicer when setting them with the mouse. Edited April 6, 2021 by DocNappers Quote Link to comment Share on other sites More sharing options...
DocNappers Posted April 8, 2021 Author Share Posted April 8, 2021 (edited) Version 1.15.3 is now on SpaceDock. Bugfixes: Disable slider discretisation when keypad control is enabled. Properly correct for time-warp under almost all conditions for dogfight mode. (It only gets the offset wrong between 70km and 100km above Kerbin and similarly on other bodies.) Eliminate pretty much all graphical glitches caused by floating origin and Krakensbane velocity shifts in dogfight mode. Improvements: Change the keypad move/zoom speeds to sliders for easier access. Add option to turn on lots of debugging. Edited April 8, 2021 by DocNappers Add entry to changelog. Quote Link to comment Share on other sites More sharing options...
Jebs_SY Posted May 2, 2021 Share Posted May 2, 2021 Hello DocNappers, any chance to have this small bug fixed? Today it's line 1533. (originalAudioSourceDoppler = audioSources.dopplerLevel;) where one needs the "if (audioSources.name.Equals("MusicLogic")) break;" Basically, after using Camera Tools the ingame music fades out when zooming away from the vehicle. ( https://www.youtube.com/watch?v=7e8oxurzUvY ) Wow, this bug is old... Quote Link to comment Share on other sites More sharing options...
DocNappers Posted May 2, 2021 Author Share Posted May 2, 2021 (edited) 14 hours ago, Jebs_SY said: Hello DocNappers, any chance to have this small bug fixed? Today it's line 1533. (originalAudioSourceDoppler = audioSources.dopplerLevel;) where one needs the "if (audioSources.name.Equals("MusicLogic")) break;"Basically, after using Camera Tools the ingame music fades out when zooming away from the vehicle. ( https://www.youtube.com/watch?v=7e8oxurzUvY ) Wow, this bug is old... Can do. Are there any other audioSources that ought to be excluded? Also, I didn't know about the PluginData folder affecting start-up times. I'll add that in too (also in BDArmory). Edit: The ones that showed up when switching through camera modes for a test probe were kerbalEVA (Elsen Kerman), kerbalEVA (Elsen Kerman), probeCoreOcto2.v2 (_SpawnProbe), probeCoreOcto2.v2 (_SpawnProbe), PartActionController(Clone), StageManager(Clone), EVA Construction Mode, MusicLogic, MusicLogic, FX Sound, FX Sound, FX, FX Sound, FX Sound, FX Sound, airspeedNoise New Game Object, New Game Object, New Game Object, New Game Object, New Game Object, New Game Object, New Game Object, New Game Object, kerbalEVA (Elsen Kerman), kerbalEVA (Elsen Kerman), probeCoreOcto2.v2 (_SpawnProbe), probeCoreOcto2.v2 (_SpawnProbe), PartActionController(Clone), StageManager(Clone), EVA Construction Mode, MusicLogic, MusicLogic, FX Sound, FX Sound, FX, FX Sound, FX Sound, FX Sound, airspeedNoise Edited May 2, 2021 by DocNappers Quote Link to comment Share on other sites More sharing options...
Jebs_SY Posted May 2, 2021 Share Posted May 2, 2021 (edited) Hello Doc, nice, thank you. I'm also not that deep into that topic. I think for almost all other audio sources it makes sense, that they become more quiet, when one zooms away from the object. Just the in game background music should not change it's volume. EDIT: Regarding the PluginData directory: "... mod that use cfg for config saving should put them into a PluginData subdirectory where they are not loaded by the game."https://github.com/sarbian/ModuleManager/issues/43#issuecomment-170361911 It makes sense to put setting CFGs of plugins into this directory, because they are not loaded by the game itself nor modulemanager invalidates the cache when something in it changes. Parts and such stuff may not be put in there. Nowadays the MM cache is re-build very fast... so it's not such a big issue anymore, if it got invalidated for no reason. (It must be invalidated on the other hand, if a PART CFG changes.) Still, when it's not a part CFG, but a settings CFG (which is not needed by the main game), it's still good to put it in the right directory. Edited May 2, 2021 by Jebs_SY Quote Link to comment Share on other sites More sharing options...
DocNappers Posted May 2, 2021 Author Share Posted May 2, 2021 OK, v1.15.4 is released with that fix and the settings.cfg and paths.cfg in the PluginData folder (they should migrate automatically). Quote Link to comment Share on other sites More sharing options...
Jebs_SY Posted May 2, 2021 Share Posted May 2, 2021 @DocNappers Wow, amazing fast and already even picked up by CKAN. Thank you very much. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted June 1, 2021 Author Share Posted June 1, 2021 v1.16.0 is now released. Changelog: Bugfixes: Try to reacquire a dogfight target if reverted due to a null dogfight target and Auto-Enable for BDArmory is enabled. Limit the type of vessels atmospheric audio gets added to to avoid saturating KSP's SoundManager channels unnecessarily. Fix indexing bug in 'pathing mode' (note: the example path is still weird). Improvements: Add sliders for configuring chances of 'random mode'. Add IVA view to 'random mode' (if the vessel has a cockpit, otherwise it counts as dogfight mode). In 'random mode', use the stationary camera when switching to views of a target that is close to the ground or about to crash. Improve the positioning of the stationary camera when switching to views of a target that is close to the ground or about to crash. Recover better from something else stealing the camera parent. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted June 1, 2021 Author Share Posted June 1, 2021 Of course, immediately after releasing v1.16.0 I found a bug. v1.16.1 is now released. Changelog: Bugfixes: Fix NRE when vessel is destroyed before switching to IVA mode. Don't immediately re-enter IVA mode if manually switched out of it. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted June 6, 2021 Author Share Posted June 6, 2021 v1.16.2 is now released. Changelog: Bugfixes: Respect random mode when manually activating the camera. Exit IVA mode more reliably to avoid broken flickering camera. Performance optimisations to avoid GC allocations. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted June 18, 2021 Author Share Posted June 18, 2021 v1.16.3 is now released. Changelog: Bugfixes: Fix potential NRE when enabling IVA mode. Abort trying to enter IVA mode if KSP throws an exception. Don't add atmospheric controllers to objects that already have one. Quote Link to comment Share on other sites More sharing options...
DocNappers Posted June 25, 2021 Author Share Posted June 25, 2021 v1.16.4 is now released. Changelog: Recompiled with KSP 1.12 assemblies. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.