Coder Social home page Coder Social logo

bakkesmodorg / dollycamplugin2 Goto Github PK

View Code? Open in Web Editor NEW
13.0 4.0 5.0 616 KB

Dollycam/cinematic maker for Rocket League replays

Home Page: http://bakkesmod.com

C++ 75.78% C 24.09% SWIG 0.14%
rocket-league sdk camera dollycam dolly rocket league cinematic replay replays

dollycamplugin2's People

Contributors

bakkes avatar cinderblocc avatar jsonvillanueva avatar martinii89 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dollycamplugin2's Issues

MacOS support

Is it possible to port this into Mac OS platform?

As I can understand, is it depends on bakkesmod because it haven't that support yet?

Campaths are saved in in the Win32 Directory

Hey there.

The documentation indicates that the Dollycam path files should be stored in {RL folder}/bakkesmod/data/campaths/filename.json. However, at least as of Bakkesmod 86(? Not sure how to get version, just know I'm running latest and that's the last commit to the SDK repo), the files don't seem to be going here. Instead, I'm finding the files are being saved in {RL folder}Binaries/Win32. Interestingly enough, the files are also being saved without the .json extension.

Despite this, it seems like the plugin is saving/loading paths correctly, so I wouldn't necessarily call this a bug so much as an unexpected/undocumented behaviour.

Starting on line 125 of dollycamplugin.cpp:

	if (command.compare("dolly_path_save") == 0)
	{
		if (params.size() < 2)
		{
			cvarManager->log("Usage: " + params.at(0) + " filename");
			return;
		}
		string filename = params.at(1);
		dollyCam->SaveToFile(filename);

Seems like there's not actually any logic to add the .json extension in the event that the user hasn't provided it (again, that's fine, I think we can expect that anyone who's digging around here probably knows how to open a JSON file without an extension, but for editors with syntax highlighting and other niceties, it might be nice to do it anyway).

It also seems like -- and I don't know jack about C++ so pardon me here -- the working directory context of the plugin might've changed somehow since this commit, due to changes to RL or the Bakkes SDK or whatever, and so now perhaps the subdirectory of ./bakkesmod/data/campaths should be prepended to filename? I'd submit a PR, but I'm afraid I'd just be ignorantly patching a context issue symptom that might need to be handled somewhere else in a more general way.

Rotation Interpolation Issue

As far as I can tell the minimum and maximum values on the yaw axis are -32766 and 32745.
It seems like this leap from a positive value to a negative value is causing undesirable behaviour when interpolating from a snapshot with a yaw value found on one side of this numerical boundary to a snapshot with a yaw value found on the other side of the boundary. Rather than taking the shortest route, the interpolation will spin all the way around passing through 0 to the get to the target yaw, even though the shortest and desired direction would be to spin in the opposite direction.

Ex:
Snapshot 1: Yaw=30100
Snapshot 2: Yaw=-32100

There is only a difference of ~3300 "yaw degrees" between these two Snapshots, however the interpolation causes the camera to spin ~62200 "yaw degrees" in the opposite direction passing through 0 instead of just jumping the gap from 32745 to -32766.

Camera Stuck Bug

Hey there! I'm experiencing an issue where, while dollycam is active, the camera will snap to a point (frequently below the field/play area) and flail the pitch and yaw wildly. I've looked through the Dollycam documentation as well as the open and closed issues on this repo and haven't found anything relevant, so I'm filing this issue.

I've attached a video of the phenomenon, with the BM console visible as I repeatedly spam dolly_cam_show to print the coordinates to the console.

Here's what I've tried/learned:

  • The phenomenon occurs only when the dollycam is active. If it is deactivated using dolly_deactivate, it stops on the current camera.
  • The phenomenon occurs whether the replay is paused or not, though it's noteworthy that sometimes during playback, it will snap out of it to one of the snapshot coordinates in the list and will continue playback correctly.
  • If you shift away from flycam, it will correctly adjust the camera to the player/camera mode, but will continue to fidget and squirm in an attempt to adjust the camera to these mystery coordinates. This can be used to escape from the flail-hell.
  • This may be connected to situations where there is no snapshot preceding the current frame (e.g. if the first snapshot in the list is on frame 5000 but playback is started at frame 4000).
  • The coordinates are not aligned with any of the existing snapshots.
  • The issue occurs in dolly_interpmode values 0 and 1 just the same.

Interpolation Mode Differences

The issue occurs in nearly all interpolation modes, with slight differences:

  • On linear interpolation (mode 0), the camera flails as seen in the video.
  • On nth bezier interpolation (mode 1), the camera starts by wobbling around more slowly before picking up speed over the course of a few seconds and beginning to flail as with linear.
  • On Catmull-Rom interpolation (mode 4) the coordinate itself is actually much different, tossing me far above and outside the field to (6812025.50, -3130587, 967385.94) before flailing similarly to linear interpolation mode.
  • On Spline interpolation (mode 5) the camera simply sticks me to the last snapshot in the sequence and does not move at all.

Please let me know if there's anything else I can do to help you reproduce the issue!

System Details:

VC Redist: 14.28.29325 (Newest per BM wiki)
Rocket League: 201009.61933.295428 build 5663619
Injector: v2.1.3
BakkesMod: 124
OS: Windows 10 Pro 1909

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.