Creating a Simple, Realistic Camera (With View Bobbing, Dynamic Blur, & Sprinting)

I also would like to see images or videos. This helps us to visualize while following the tutorial if we aren’t doing it in Studio, especially mobile users.

4 Likes

@ArtFoundation @Fire540Games @Conejin_Alt

I have finally made a video. If you want to see it, just scroll up to the “video” section!

3 Likes

What I like to do is just check the characters magnitude then just offset it smoothly only on the Y though. I can maybe see swaying in third person but going on the x in first person just confuses the gamer.

Yes, that’s why I emphasized that you should have a turn off setting, because not everyone will be comfortable with these effects. Plus, you don’t have to copy the tutorial, change the parts that you need so that it best suits your preferences.

1 Like

Before developers rush to implement this, make sure to include option to disable these features. The sprint camera changes FOV which may be very disorienting on ultrawide displays or multi-display setups if the strength is not left at a reasonable value, while dynamic blur is generally disliked by many. View bobbing, while nice, can easily cause motion sickness after a while even if it is kept weak.

4 Likes

Yes, thank you for the emphasis. I have said this in the notes, and if people want to use the exact kit, it has it built-in with a splendid UI!

However, if you use your own system, then make sure to add a UI. I didn’t reflect on how I did this, but one way is using a bool value object inside of the scripts that are used to turn on/off certain parts of the script via if-statements. I’ve received feedback about this being a weird method, so using module scripts would also work perfectly.

I honestly don’t like dynamic blur that much either (comparatively and absolutely) because of how intense it is in games that use it. That’s why I made it almost impossible to notice most of the time in this tutorial and encouraged readers to do so as well.

So, keep the effects subtle and allow users to toggle them.

2 Likes

I like how you make it barely visible. In real life, it gets blurry if you spin fast, so thats pretty realistic. I think that everything is set realistically and reasonable

More about the blur, I feel like when you spin in real life it is that object moving leaving a ‘trail’ causing it to blur. Here is an example: Screen Shot 2020-09-01 at 5.32.38 pm

When you turn it causes the objects to appear to be ‘whizzing’ past you that our eyes cannot catch causing it to become blurry. I think the blurriness could maybe do some work.

I hope I could help and well done on this awesome creation!

Edit: I have a very fast moving gif and I took a screen shot, you can see the feet are slightly blurring
which is what you would need: Screen Shot 2020-09-01 at 5.35.06 pm

5 Likes

Yes, I tried my best to work with the one type of blur the engine supports, and I have thought of trying o creation that trail blur. But I guess I hit a limitation there.

Thanks for letting me know!

3 Likes

Yea, it would be almost impossible to create such a realistic thing, but well done!

3 Likes

Hey I am not being lazy or anything but can you put this is a game because I am low on time and I need the game file quick :slight_smile:

Sure…

RealisticCamera.rbxl (38.3 KB)

All you had to do was click on the model in the toolbox and put the items in the correct location.

3 Likes

nice tutorial! I would like to know if you could at a stamina system to the sprint. That would be awesome!

1 Like

Yeah, it’d be quite simple to implement. You can have a separate script check if the player has run out of stamina. Then, you can add a condition to the Sprinting script’s if-statement that evaluates to true if the player has stamina, false if not. Something like this, although not the entire code:

--this is in the part where the Shift key is down
--stamina can be a module that returns true if stamina > 0, and false if = 0
--condition 1 is that old dot product one, I just shortened it to focus more on the second condition
if condition1 and stamina:CanRun() then

    isSprinting.Value = true
    --among other things

end

DM me if you have any more questions.

1 Like

For the bobbing, the camera goes in and out. How could I change it so that it goes from left to write with still the up and down bobbing style? Thanks :]

You’re most likely manipulating the Z direction of the camera and not the X and Y. The camera’s front side is the negative Z vector and the back the positive.

1 Like

Also, how would I make a specific run animation or any animation in general play while sprinting, (if player is not out of stamina, of course).

I wanna see these tutorials turn into a youtube series with a narrator! It would be very entertaining.

Great job on these! Can’t wait for more. Is there any way I can get notified when you make another tutorial?

1 Like

You can follow me but that means it won’t be just for this category but every time I post. I guess just refer back to the Carbyne Tutorials Hub every once in a while, I actually just created a UI tutorial.

1 Like

what a cool tutorial!
although I’m familiar with a bunch of these concepts I learned quite some stuff
thanks!!

math.sin(os.clock()) seems to be way simplier than… What