Camera Manipulation Rig + Effects Module

As you may know, when manipulating camera in game most people just tween the CFrame of the camera in order to animate it, this rig and its scripts allow you to use animations to manipulate a person camera! This also comes with a module script which adds easy camera shake and FOV tweening!

What makes this different to other cutscene plugins?

While other plugins use tweening between points to move the camera, this rig allows for the camera to be controlled through animations, allowing for much smoother and easier to implement cutscenes. These camera animations can also be imported from blender and other animating programs! (Blender rig is in the highlighted reply)

Setting up the rig:

At the bottom of this post I have linked the model which includes all files which come with this module, first of all you will need to place all of the scripts and whatnot into their corresponding areas:

HumanoidCameraRig - Workspace

CameraPlayer - StarterCharacterScripts

CameraEffectsModule - ReplicatedStorage

Using and animating with the rig:

Animating with the rig is pretty much the same as any other custom rig except you will have to use Moon Animator as it has a built in camera which allows you to attach it to a part while animating. If this is your first time using Moon Animator there are plenty of tutorials elsewhere and from here on out I will assume you have decent knowledge of the plugin.

What you need to do is import the camera rig, add the a camera through the topbar, click the wrench icon for the camera in the new camera you just inserted and tick AttachToPart.

image

Now finally clicking on the new AttachToPart row and pressing = will add a new keyframe. Click the keyframe, press 7 and at the top there will be a “Value” option. Click it and set the value to the CamPart and press ok, now your camera is attached to the part when you play the animation!

Once you are done animating export the animation to get the keyframe sequence which is able to be uploaded to roblox as an animation.

Now that you have your animation and the rig setup you’re ready to implement it into game! To attach the camera to the rig you will need to input this into your specified Server Script:

game.ReplicatedStorage.CameraEffectsModule.FireCamFocus:FireClient(SpecifiedPlayer,workspace.HumanoidCameraRig.Humanoid)

To set it back to normal you will do:

game.ReplicatedStorage.CameraEffectsModule.FireCamFocus:FireClient(SpecifiedPlayer,SpecifiedPlayer.Character.Humanoid)

Now the camera will be locked to the rig and you can play the animation just like any other animation.

Using the Camera Effects Module:

You can fire any part to be the focus, just note that the Camera Shake module does NOT work when the Camera Subject is not a humanoid.

This module should only be written to locally, trying to use it server side will cause errors.

Using the Camera Shake on Server:

-- All parameters are of course customisable, CamSubject Must be a Humanoid
-- If any parameters are missing or nil the parameters below are the default

local Player 

local Intensity = 10

local NumberOfMovements = 40

local CamSubject = Player.Character.Humanoid

local TimeBetweenMovement = 0.03

game.ReplicatedStorage.CameraEffectsModule.FireCameraShake:FireClient(Player,Intensity,NumberOfMovements,CamSubject,TimeBetweenMovement)

Using the Camera Shake on Client:

-- All parameters are of course customisable, CamSubject Must be a Humanoid
-- If any parameters are missing or nil the parameters below are the default

local CameraEffects = require(game.ReplicatedStorage.CameraEffectsModule)

local Player 

local Intensity = 10

local NumberOfMovements = 40

local CamSubject = Player.Character.Humanoid

local TimeBetweenMovement = 0.03

CameraEffects:CameraShake(Player,Intensity,NumberOfMovements,CamSubject,TimeBetweenMovement)

Using FOV tweening on Server:

-- All parameters are of course customisable
-- If any parameters are missing or nil the parameters below are the default

local Player 

local FOV = 60

local Time = 1

local EasingStyle = Enum.EasingStyle.Sine

local EasingDirection = Enum.EasingDirection.InOut

game.ReplicatedStorage.CameraEffectsModule.FireFOVchange:FireClient(Player,FOV,Time,EasingStyle,EasingDirection)

Using FOV tweening on Client:

-- All parameters are of course customisable
-- If any parameters are missing or nil the parameters below are the default

local CameraEffects = require(game.ReplicatedStorage.CameraEffectsModule)

local Player 

local FOV = 60

local Time = 1

local EasingStyle = Enum.EasingStyle.Sine

local EasingDirection = Enum.EasingDirection.InOut

CameraEffects:CameraShake(Player,FOV,Time,EasingStyle,EasingDirection)

How I’ve found this module most useful is by using Keyframe Markers to fire these modules at certain times in an animation!

Example use of Module script and rig:


If you have any issues with using this module I’d be glad to help out!

Get the Model here:

242 Likes

This is really cool! I’ve been trying to do this somehow for a long time. Well done :slight_smile: this is a great contribution.

10 Likes

The demo do not work correctly on mobile. After the camera shows the boss’ face it just bugs and move the camera kinda randomly.

2 Likes

that’s weird, I’ll take a look at it in a bit. thanks for telling me!

1 Like

this should now be fixed, for some reason it errored when you played the cutscene multiple times

1 Like

Camera Manipulation Rig Update 1:

  • Updated Model to fix some bugs regarding the Module script!

  • Also made a quick Blender rig for public use since Studio isn’t exactly known for being good for making smooth animation.

How to use Blender rig:

It works exactly like any Roblox rig would where you will need to use Den_S’ blender plugin to export animations to Roblox, you can see how to use that here if your unfamiliar with it:

Blender file: HumanoidCameraRigV3.blend (606.9 KB)

If you’re experienced with rigging in blender, feel free to criticise me since I don’t exactly have a whole lot of experience rigging.

2 Likes

Hi, are you able to open source the demo game? I would like to take a look at the code you implemented!

Basically my main issue is that I dont know how to use moon animator, the tutorials out there arent really helping me. Im trying to do what you are doing, aka animating the gate with the character and so

1 Like

what part are you mainly having trouble with? is it the animating with 2 rigs or actually implementing those animations in game?

1 Like

Its technically everything regarding animations, Im not very good at animating and when I did it was just simple things with the roblox animator

1 Like

ah, well as i said in the main post, you will need to know how to use moon animator rather than using the default animator since moon has a built in attach to part property for the camera, I’d say just open up moon and mess around with it for a bit to understand how everything works, thats how I got used to using it

2 Likes

Do u have any good tutorial I can refer to? Or at least explain some of it, because without the open sourced place there are some things I am wondering about, like how you animate the player pushing up the gate and stuff

1 Like

dont really have any good tutorials i can refer you since i never watched any, like i said try just messing around with things on it to get a feel for it.

the way i animated the player pushing the gate is just 2 animations synced up together playing at the same time. the player animation and the gate animation

4 Likes

I always wondered if I could export the camara movments with the whole animation so it could be played in game.

Not sure if I’m missing something or I’m bein dumb, but when i go to moon animator (specifically moon animator 2) i go to add the rig, and when i click on the rig, it only allows me to manipulate and animate the rig, and not the “AttachToPart” or the “FieldOfView”

As I said, not sure if I’m missing something :sweat_smile:.

(also i dont use animator much as i use to so i dont really know a lot of the features of moon anim.)

1 Like

the camera object in moon has the attach to part property, not the rig. to add a camera objects just look under the camera option in moons topbar

1 Like

Can the animations be added on top of the camera movement? Let’s say I wanted to make the camera move side-to-side while walking and looking around in third person would that be possible?

if you want an affect like that, you will have to use a script, the rig is intended to mostly be used for cutscenes.

I’ve pretty much got the animation part down but I dunno how to actually make the camera work after reading this tutorial. Being how to make the player camera attach to the camera rig

Even then I’m not a Programmer and I’m not sure if I’m supposed to know things before knowing this thing to know something which leads to having something else known

you just need to put this line to change the camera to the rig

game.ReplicatedStorage.CameraEffectsModule.FireCamFocus:FireClient(SpecifiedPlayer,workspace.HumanoidCameraRig.Humanoid)