Cinematics Buddy
We've learned a lot so far, but there's one more thing you should learn. We are talking about CineBuddy.
Cinematics Buddy is a very useful BakkesMod plugin made by CinderBlock. The premise of it is that it records the camera animation in game to a text file, which can be converted to a multitude of things.
This includes Blender cameras, C4D cameras, or any other 3d program, and also includes After Effects. Although finicky, this means that it produces perfect 3d tracking with little to no hassle (if you have experience).
Installation
Simply go to this link, and click Install with BakkesMod.
If that doesn't work, go to F2 -> Plugins -> Plugin Manager -> Open
, then type in 95 in the ID box, and click Install By ID.
Setup
Head to
F2 -> plugins
in-game, and then click Cinematics Buddy on the left.Enter in any name for File name and Camera name, (these can be the same name, but don't name them Camera - explained later).
To help, create a binding in your desired recording program (OBS, ShadowPlay) to start and stop recording.
Then head to
F2 -> Bindings
, and set bindings for CineBuddy.Click Add, then in the None box, click the same button as you did for starting a recording, and below it, type
cbStartRecord
.Do this again, but with your stop recording button, and
cbStopRecord
.This means that when you start recording, CineBuddy will automatically capture the movement.
3DS Conversion
If you have 3DS Max, you can follow this bit; if you do not, either buy it (or do the dirty), or send it to someone who has 3DS Max, and tell them to do these. Myself and [other people with 3DS Max] are happy to convert any files. All of these instructions are located on the plugin page, however I will also put them here.
Make a dolly path (or use pov) and record it, and find the txt output (bakkesmod\data\CinematicsBuddy\AnimationExports
), and put it in an easier place to find.
First, find the .ms file in bakkesmod\data\CinematicsBuddy\Plugins\3dsMax
, and create a shortcut to it in an easier place.
Make a shortcut to the script file. Do not move the file itself. To create a shortcut, right click the file and click "Create shortcut".
Then, open up 3DSMax, and set both its display and system units to centimeters. (Customize > Units Setup
)
Next, go to the Scripting tab, and click Run Script. Navigate to your shortcut, and click Open. Once the menu pops up, navigate to the txt file, and click it. Then click Confirm.
Once finished, close the menu, and click File -> Export -> Export, Save
. Save it as an FBX file.
On your first time, you need to set some export settings. Once you set these, you never need to do this again (unless you change them around for other projects).
Then, you can click OK, and close 3DSMax. You now have a .fbx file with the camera, ball, and player positions.
You can open up this file in any 3D program; blender, C4D, basically anything. But to get it into After Effects, follow these next instructions.
C4D/AE Conversion
After Effects comes with its own Cinema4D Lite version, so this tutorial works with both Lite and Full.
In your After Effects file, click File -> New -> MAXON CINEMA4D FILE
. If you have the full version of Cinema4D, you can simply open up Cinema4D instead.
In C4D, click File -> Merge -> your FBX file
. Click OK. A slight bug with this conversion is that the FBX is in the wrong resolution. To remedy this, go into C4D's render settings.
Then, change the resolution to 1920 × 1080, or whatever your AE comp's resolution is.
Save this, and it should work in After Effects. If you did this with the full version of Cinema4D, then save the file, close C4D, and import the .c4d file into After Effects.
Usage in After Effects
To use in After Effects, there are some other things that you need to do. First, import your footage as well as the c4d file, and put them both in a composition. When you place the C4D file in the comp, it will have an effect called CINEWARE applied by default.
In this, click the Cinema 4D Camera dropdown, and click Select Cinema 4D Camera. Under this, click Set Camera, and click OK. Now, previewing the C4D file will look like your cinematic/pov.
Next, you need to line these up. Place the C4D file above the footage, and turn the opacity to 50%. Drag them around in the timeline a bit, and you know it's lined up correctly if the ball lines up in both. Only wheels on cars will line up, not car bodies, but this is fine.
Due to the difference in frame timing between the game and OBS, it might not be possible to perfectly line it up. Just get it as close as you can
Once happy, click Extract at the bottom of the CINEWARE menu, and it will create two cameras. Delete the one labeled "Camera", which is generated visible by default, use the other one which you name yourself, generated invisible by default, and make it visible.
This is why earlier it said not to name your file or camera "Camera". You would end up with 2 cameras named "Camera". Now you have a working camera, and perfect 3d tracking at any position. To learn how to place objects, read next section.
Placing objects correctly
Previously, placing objects in CineBuddy has been just trial and error to see if it lines up properly, and maybe some C4D experiments. However, rustik has figured out a way to convert coordinates from the game into usable coordinates in After Effects.
Location
First, fly to the place you want the object to be in After Effects, and take a dolly snapshot. Open up the console and note down the location and rotation (if you want to do rotation).
It is recommended to create a Null Layer or Solid as a placeholder to see if this works. Make either, and turn the layer 3D.
To convert the coordinates, first swap the Y and Z, and make sure the Y and Z are inverted. Then, multiply by 2.54. Here is an example:
X
Y
Z
-1.91
5121.11
1042.18
Raw dollycam coordinates
-1.91
1042.18
5121.11
Swapped Y and Z
-1.91
-1042.18
-5121.11
Inverted (made negative/positive) Y and Z
-4.85
-2,647.14
-13,007.62
Multiplied by 2.54
Explanation: After Effects uses a Y-up coordinate system in inches, while Rocket League uses Z-up in centimeters (unreal units) 1in = 2.54cm. Basically the whole coordinate system is merely rotated 90 degrees around the X axis.
Rotation
Rotation is very finicky, it is much easier to simply find out rotation through trial and error, however if you are doing something like tracking a single point, then you have to do this.
Use the rotation coordinates from earlier, and swap the X and Y values. Then, divide each coordinate by 182.04444... (also known as 65536/360).
Unreal's rotations are a 16bit integer meaning that instead of 0-360 degrees, it is 0-65536. The formula 65536/360 just compresses that 65536 into the 360 degree range. To be pedantic, it's actually -180 to 180 and -32768 to 32767, which can help explain the next section a bit more
Unfortunately, the X coordinate is very ambiguous and doesn't seem to work from my testing. It is always + or - 90 degrees, so try adding/taking 90 from X. This is likely due to the aforementioned 90 degree conversion from RL to AE.
X
Y
Z
-141
-16380
0
Raw dollycam coordinates
-141
0
-16380
Swapped Y and Z
-0.77
0
-89.98
Divided by 182.04444
It is unconfirmed why the X coordinate is ambiguous, as rustik also haven't tested this much.
Useful values
Value
Rocket League
After Effects
Backboard
(0, +-5120, 0)
(0, 0, +-13004.8)
Side wall
(+-4096, 0, 0)
(+-10403.84, 0, 0)
Ceiling
(0, 0, 2044)
(0, 5191.76, 0)
90 degrees
+-16384
+-90
180 degrees
+-32768
+-180
Last updated