Commit Graph
486 Commits
Author SHA1 Message Date
originalnicodr b090f68732 Properly disable CinemachineBrain on freecam on IL2CPP games. 2024-06-12 18:35:39 -03:00
originalnicodr 54f20fde95 Made the rest of the panels initialize correctly if UnityIGCSConnector failed to initialize, updated the readme with IGCDOF info, resized icon, Increased version number 2024-05-08 01:01:30 -03:00
originalnicodr 66773b300f Improved post-processing logging messages and improved compatibility with Hellpoint and potentially more games. 2024-05-05 23:36:21 -03:00
Sebastián A f557d3de88 IGCS Support for CUE (#72)
* Initial work on supporting IGCS

* feat: Added callback when starting session, adding missing func.

* chore: tidy up math and cleanup.

* chore: tidy up some verbose code

* Added more callbacks, fixed math.

* fix: use queue command system instead of directly writing to the camera.

* lock camera while igcsdof is active.

* build system shenanigans

Now we can build the project just fine by building separately the C
project and the C# project.

* small syntax changes.

learning c# and stuff

* Refactor executeCameraCommand and improve thread-safety in FreeCamPanel

* woops, correct order of arguments for MessageBoxA

* fix: move the ourCamera check where it's actually needed.

* chore: formatting c file

* rewrite: move all igcsdof logic to its own class.

Since CUE *must* work without igcsdof, I thought it would be convenient
to handle all the logic regarding igcsdof in its own class. The
initialization is a bit of a mess because since most of what it's on
FreeCam is static I had to do some trickery.

I wanted to specifically avoid calling LoadLibrary every time so I
thought on only initializing one and having an internal flag either the
thing loaded correctly or not (`isValid`).

* fix: Pin callbacks to avoid garbage collection

* chore: removed unused code

* chore: fix typo.

* nit: more idiomatic C# usage.

Just applied what rider suggested =)

* fix: remove unnecesary GCHandle, store delegates.

* feat: Update IGCS dof camera status accordingly.

Before, we just left igcsdof always enabled, now we handle the cases
properly, avoiding the posibility of the user using igcsdof with the
freecam disabled.

* nit: fix comments and added some to UnityIGCSConnector.

* feat: Get the transform reference earlier for perf™️

* fix: Properly handle an initialization error.

* chore: remove overly verbose debugging

* fix: make sure we start with a clear queue after we end a session.

This was what maybe was causing the misaligning after you cancel a
session since we never checked if the queue was emptied by the code.

* fix: properly cast a function pointer to use what it returns.
2024-05-04 20:05:12 -03:00
originalnicodr 918d871041 Added support for more post-processing classes for the post-processing panel. 2024-03-16 19:44:59 -03:00
originalnicodr f8918bc3f7 Use the gameplay far clip plane value if the default value is still being used. Also changed the default near clip plane to be bigger, since it seems that having a super small near clip value affects how far the far clip value actually affects the gameworld. 2024-03-15 18:49:01 -03:00
originalnicodr 5b98e68c40 Separated the "reset all" feature into another button in the animator panel. 2024-03-13 23:50:53 -03:00
originalnicodr 67782b5c8b Fixed some animations not playing in npcs, stopped the game from switching animations when we were manually replacing them, improved the refresh animations feature, and added support for the animator for newer games. 2024-03-13 19:47:46 -03:00
originalnicodr 63ac2dfbd9 Added fallback arrows in case we cannot build the cone for the ones we build (was happening on Metall: Hellsinger and Road 96). 2024-03-10 19:11:39 -03:00
originalnicodr 463fec38b2 Changed the lights config button to only show the inspector with the lights properties, and added a new option for the default freecam (so to be able to use the gameplay camera if you can't interact with the menu). 2024-03-10 12:15:32 -03:00
originalnicodr 180139dcd2 Apply the TimeScaleWidget default slider value before adding the listener so it doesn't try to set up the time right away, which might give an error in some games (e.g. Iron Harvest). 2024-03-09 16:12:34 -03:00
originalnicodr adbbf4eb75 Refactored campath translation point functions to make sure the order of execution is always the same. 2024-03-08 22:03:39 -03:00
originalnicodr 103e2fd40e Adjusted default camera far clip to 2000 and made the default tilt speed 10 times faster. 2024-03-08 20:59:57 -03:00
originalnicodr 7046d8b5cd Added checks to avoid interacting with some panel cells related to already deleted objects. 2024-03-08 20:38:46 -03:00
originalnicodr 4b971d8191 Fixed TimeController widget interaction with CamPaths and deleted comment. 2024-03-08 20:11:25 -03:00
originalnicodr 96efbc36d0 Refactored the follow object feature to let the user choose if they want to follow the object position only or if they also want the camera to follow its rotation. 2024-03-08 18:47:00 -03:00
originalnicodr 3e6350541b Inverted favorite buttons on the Animator and fixed the default freecam move speed input to display the correct initial speed. 2024-02-26 21:30:52 -03:00
originalnicodr bdad7d722c UI tweaks. 2024-02-25 22:16:05 -03:00
originalnicodr fd18d1b56d Refactored the TimeWidget lock button into an Override toggle to make things clearer, and minor UI tweaks on the Cam Path panel. 2024-02-25 13:05:33 -03:00
originalnicodr 56e438948b Refactored the TimeWidget to save the previous state when paused with hotkey, and improved code traces. 2024-02-25 12:17:21 -03:00
originalnicodr 07f4589204 Added missing renaming of things. 2024-02-22 18:50:40 -03:00
originalnicodr a5880a433f Updated project references to "CinematicUnityExploerer" for re-release. 2024-02-22 18:29:53 -03:00
originalnicodr 63616d8008 Fixed the screenshot UI appearing on the misc panel by scanning for the screenshot method beforehand. 2024-02-22 08:58:45 -03:00
originalnicodr e2fec2d0d4 Deleted previous tilt handling when changing the freecam rotation. Also added a comment on an implementation that changes the camera orientation relative to its tilt. 2024-02-20 23:46:53 -03:00
originalnicodr a4c8b11048 Polished Animator UI and reset freecam position and rotation if the scene is different from the one active when last used the freecam. 2024-02-20 21:55:44 -03:00
originalnicodr 9c00f112c3 Refactored the Animation system to support IL2CPP games. Also fixed a bug related to the animators cells in the animators pool. 2024-02-20 20:46:01 -03:00
originalnicodr 9d5ae8558e Refactored the animator panel to be able to play any animation, modified the pause animation feature with the recommended property, and added try/catch statements to the post-processing panel. Also deleted the "pause after an animation played" code since that doesn't work anymore with the new method. 2024-02-17 01:19:43 -03:00
originalnicodr 29c371e2c2 Fixed cam path visualizer for when following objects, and fixed the path sometimes giving errors when trying to start. 2024-02-15 20:52:07 -03:00
originalnicodr 4cd4cf00af Added a button to the Animator panel to inspect the object. Also added a slider in the inspector to scale things on three axes at the same time, and adjusted the free cam panel min-height. 2024-02-14 22:32:37 -03:00
originalnicodr 336373169a Refactored the Animator pause to use start and stop playback (since disabling the whole animator could cause problems in some games). I am still disabling the animator as a fallback if the described method doesn't work. 2024-02-13 23:38:13 -03:00
originalnicodr 147b846995 Refactored the LightsManager to use a ScrollingPoll, and made the turn-off vanilla lights more robust regarding switching scenes with turned-off lights. Also renamed the "AnimatirUI" folder to "Cells". 2024-02-13 18:51:04 -03:00
originalnicodr 467d5cf2d5 Fixed toggling NPC animators when we had too many to show at the same time. Also disabled the automatic stop of manually played animations if the user didn't have the animator disabled in the first place, or if they disabled it mid-animation. Also made the Animator panel longer and fixed the FreeCamPanel missing new line. 2024-02-13 16:44:12 -03:00
originalnicodr 9e9a5e25ab Block the camera rotation to not go further than looking directly up or down. If it doesn't work in some game we should revisit this. 2024-02-13 13:06:05 -03:00
originalnicodr 83b19f2375 Refactored the Camera Path panel to use the ScrollPoll class, reworked the UI on the panel a bit, and deleted an unused member on the AnimatorPanel. 2024-02-13 12:30:12 -03:00
originalnicodr 59ffa462cc Added support to manually play animations of entities on the scene (only for Mono builds). Also refactored the AnimatorPanel with a pool of objects. 2024-02-13 00:48:22 -03:00
originalnicodr 4f91fdfa66 Added a try-catch statement when building the ScreenCapture UI to not do so if there was a problem retrieving the necessary class and method. 2024-02-12 00:50:22 -03:00
originalnicodr 3a9cdd12d9 Unlocked the mouse on freecam even when the mod UI is hidden. Also fixed light range to a number that works and doesn't break in some games (e.g. Lost in Random). 2024-02-11 15:55:41 -03:00
originalnicodr ad426d4f83 Added "pause on finish" toggle for cam paths. 2024-02-10 16:47:59 -03:00
originalnicodr a7038ec378 Made the camera path arrows turn off every time we play or continue the path, without bringing them back if the path is paused or stopped, making its state in the UI more consistent. 2024-02-10 16:15:15 -03:00
originalnicodr bc58603398 Made the camera pause feature work more consistently. 2024-02-10 16:05:25 -03:00
originalnicodr ebf627c59d Refactored some object searches to be faster. 2024-02-10 15:41:34 -03:00
originalnicodr 8db0f7bc8d Improved compatibility using the game Aragami and clarified some variables. 2024-02-10 15:20:09 -03:00
originalnicodr 6c21446dad Added animators panel and toggle hotkey to pause NPCs animations. 2024-02-10 12:48:47 -03:00
originalnicodr 203d0dede8 Improved compatibility with IL2CPP games, and fixed the postprocessing effect to be turned back on when reloading them. 2024-02-10 10:19:18 -03:00
originalnicodr 47e6e3cda8 Improved compatibility for IL2CPP games for disabling cinemachine, finding postprocessing objects, and more. 2024-02-08 19:37:09 -03:00
originalnicodr bfdeaacf33 Added default intensity input on the LightsManager panel, as the user may use the same intensity for all new lights (and we can't assign a default value ourselves that works in every game). Also did some minor edits to the panel's size and options order on the Misc panel. 2024-02-07 23:50:16 -03:00
originalnicodr 64f9d9c7ea Increased HighLOD toggle value and introduced new shadow-related misc toggles. 2024-02-07 23:20:50 -03:00
originalnicodr b50c4ea719 Fixed IL2CPP throwing an exception on patching instead of just returning to the input patching method, and forced high-resolution shadows on newly created lights. 2024-02-07 18:03:33 -03:00
originalnicodr f34c02eeaf Refactored the game's input blocker system so we only patch the legacy input system (for now) without affecting the behavior of Unity's new input system, or where none is detected. 2024-02-07 00:45:50 -03:00
originalnicodr e732672e0a Fixed missing namespace. 2024-02-06 20:22:44 -03:00