[SCRIPT] [RELEASED] On-Foot Cinematic Cam
@turtlevan I think once I fully have this static camera working as it should, it might be what you are thinking about. While I describe it as a static camera, it doesn't have to remain in one spot. It just doesn't orbit the player like the other cameras. It can track in any direction, move up and down, zoom in and out... Static probably wasn't the best term to use, it's just the first thing I got it to do, was to stay still... hence its description.
The camera stays for however long it is set in the ini file, default is 10 seconds. The static (I'll stick with that term for now) camera is active for three quarters of the time specified in the ini file, rounded down to the nearest integer. so 10 seconds in the ini equates to a 7 second static camera.
I have made a slight tweak to that camera view you mentioned. I do like that view, so I have just widened the radius and slightly lowered it. I have also trimmed the maximum height of the lower cameras so they don't overlap. It was actually reading something on another mod that convinced me to compromise.
I won't say who or what the mod was, but I thought the comment the author made was pretty bad (understatement to what I really thought) . The mod itself carries a lot of excess baggage that has no purpose being there. Someone commented on that fact and the response was basically "I make things for free, therefore I decide how it installs and don't complain about things you get for free".
I really don't like this "I make it for free, don't complain about free things" argument. Just because something is free, doesn't mean it doesn't have to be as good as it can be, nor does it mean that everyone else's opinion on it is irrelevant. As a developer, I made games for the people who played them, not myself. This mod, which I have spent more hours than I can count writing, isn't for me... it's for the people who use it. It was born from a request so at least some part has to be a result of what people want it to be. I obviously maintain some level of control but I don't say "It's mine, take it or leave it..." that's not who I am... and it's free.
Then again, I don't like this "Pay me so I can keep writing mods" attitude either. You either want to do it, or you don't... money has never made me want to do it more or less, I just do it. I guess some things are in your blood...
Good lord, I actually wrote all that down... sorry about that everyone.
To end on a lighter note, this camera system is amusing when you're skydiving, especially when you plummet away from the static camera.
Good post Lee. Thanks for making this Cinematic Camera Mod. I think that's great! Where your mod is now in the current state, is exactly what was requested in the original request. Thanks for your hard work; your mod is really cool.
If you plan to continue adding features, I have requests for new camera angles.
The "static" camera you created is great. The camera is stationary along the Z axis and can zoom in & out. Great. Imagine that wasnt an easy task to write... haha!
Something cool would be a focal depth offset that goes in & out from the character focal point. Like an offset that creates a slight in & out of focus once or twice during the 10 second duration. Might go good with the camera shake at great zoom distance you talked about. A quick in-n-out of focus could add to the realism of a camera.
Okay here are my camera suggestions to add to rotation
- Hood camera (when in vehicle)
- 3rd person near zoom
- 3rd person mid zoom
- 3rd person far zoom
- Static camera at a distance rising or falling on Y axis
- "Moving" camera starting behind player and passing him while maintaining focus on player
I'll try to capture a video of the moving camera and post here
@turtlevan Let me quickly answer that before I go to bed... 5:45 am here.
- That's a vehicle cam thing, I have no control over that.
- 2, 3 & 4. I don't really want to put standard views into the system because the system is designed to take you out of standard view mode.
- It does already do that.
- The orbiting cameras already do that, they just don't have a defined starting position. That exact motion will probably happen by default when I add the lateral tracking to the static camera.
The way the system works is I can pass a Vector3 to the probe that has a movement value in it. So (0,0,1) causes an upward motion and (0,0,-1) goes down... or maybe the opposite of that... same with X and Y values. But I will also be able to use the player's heading to generate a path that runs parallel to the player, whilst still tracking it.
This new probe was essential to making the camera work in straight lines, it's just taken me longer than expected to add it. So 5 & 6 will definitely be making their way into the system... 5 is already in it, it's just disabled at the moment because moving down is causing problems when it sinks into the ground. It will be there though, I guarantee it.
On another side note, I've just been reading back through this thread and spotted a couple of amusing things. I thought this "seamless cinematic mode" was a recent thought of mine... turns out that 19 days ago, I said this:
"One thing I am wondering though, is if I turn on the cinematic mode flag when I am on foot, if you climb into a vehicle, you should continue in vehicle cinematic mode and then when you exit, go straight back into on-foot cinematic mode. Or that's my theory anyway."
Sounds like a theory with some foundation in truth.
So the flag for on foot before entering vehicle worked, good thinking
Here is the moving camera
It starts and chases, but doesnt travel fast enough to pass the player, but it does move, and turns and follows... kinda neat
So the flag for on foot before entering vehicle worked, good thinking
@turtlevan Kind of, it's actually the other way round. The game has a flag that says "Cinematic mode is on" but that only applies when you're in a vehicle. So by simply forcing that flag to be permanently on, the game switches into vehicle cinematic mode automatically.
I think I see what that camera is doing... it looks like it says "Let's sit in a position and zoom to a fixed maximum value, once we hit that value, start moving the camera towards the player to keep within a fixed distance. If we are below that distance, stop moving and if we get too close, start zooming out".
I could implement that but I have three concerns:
- Wide open sky allows for a bigger freedom of dynamic motion.
- Higher speeds naturally create a more effective dynamic.
- The time spent in that camera in the air is greater because nothing blocks your view.
Now I understand what the aim is, I can break that down into processes the camera needs to do to create it, that makes it easier to implement... although not necessarily easy to implement.
To recreate that kind of dynamic at lower speeds, you have to generate higher camera speeds but you have to be careful that you don't do it in a way that induces motion sickness. I've already thrown out a couple of ideas that were even affecting me and games don't normally do that to me. It's very much a try-it-and-see kind of thing, so I'll add it to the #TODO list and see how it works out.
Just going back to another point you mentioned... focal depth. That is something completely under the game's control as far as I can see. You give it a target and based on the distance and FOV, it generates a depth of field. That being said, I do have an idea that might work.
I have discovered that I can seem to use a target point and an offset, where the DOF is determined by the target. So <+> ----------- <o>, where <x> is the target and <o> is the offset. Now if I was to gradually shift the target to where the offset is pointed at reduce the offset, that should theoretically shift the camera focal point, whilst leaving the camera pointing in the same direction. The end result should be a shift of focus, without a shift in camera view... I'll knock up a test mod that does just that so I can see if it works before adding it to this mod.
The one concern I have with that (I know... more concerns) is that when you shift the camera to point at a position offset to the player but allow the player to move under your control, it's another motion-sickness problem. I only know that because one thing I have already tried, is making the camera lead the player, so it would look slightly ahead. It causes an inconsistency between what you expect to happen and what does happen and that's where the motion problems arise.
There are a lot of things I have already dabbled with that I haven't documented in this thread. I got the impression that people might be getting tired of my constant waffling, so I decided to curb the content somewhat. A lot of ideas have been tried and canned... and no doubt many more will follow. Such is the nature of creating this kind of thing.
Great work so far, your mod is High Quality. Great stuff
Seems like still a lot of ideas, hope you keep making more progress with this mod.
Just a chatter post... I have come to the conclusion that if I liked this mod less than I do, I would get far more work done on it.
But I load up the game to test something, switch in my new favourite free-roam ped, Kerry McIntosh ( complete with a few texture tweaks, like more realistic eyes and a de-saturated appearance), set the time to late-afternoon and just walk through the desert.... an hour can go by and I will have walked through several day/night cycles just watching the world go by.
I find these kinds of world's so addictive... which is why I find the bugs in No Man's Sky so frustrating. Playing it the other night and my spaceship disappeared completely off the planet. Now that's what I call a critical bug.
I use nvidia inspector and Enb to fix the aliasing. Enb and rtss to limit frame rate and pre rendered frames and Gsync. Looks smooth like a movie at 25.97 fps. Works on gtx 970 or higher card.
I like to take the beach cruiser bike around the map. Or jump on top of a FedEx truck and use the snapmatic camera while the ruck drives me through all the neighborhoods with the onfoot radio mod and your mod of course
Try the aliasing and frame sync fixes. They're amazing for immersion
Oh god, I hate ENB... it always comes with someone's idea of "photorealistic" or "enhanced" and on my colour calibrated screens, it looks awful. The one time I did install it I got about a 20% hit on the framerate as well. My system isn't low spec by any means, I have an i7 980 cpu with a gtx 970 gpu but ENB caused a big hit.
Interesting idea pulling the frame rate down that low though, especially to a value like 25.97... that's not a typical frame rate to work with.
Aliasing doesn't bother me, I started doing computer graphics when screen resolutions were 256x192 (that was high res back in 1982 I did a game on the 8-bit Atari where each pixel was 8 pixels wide) and as a mobile artist, I've worked on screens that were just 96x64. So I don't care much about resolution and jaggies but I do care about colour, saturation levels and contrast.
The level of ambience in this game is typical of the type of game I always wanted to work on... I just never ended up at any of the studios that were doing something like this.
Today's dilemma... how to stop the annoying flicker when the on-foot camera is on and you're stood on the back of a moving vehicle, which also seems to apply to skydiving?
I've narrowed it down to the code that calculates the rotation of the camera around the player. The problem is, that code works perfectly well when the player is on solid ground... so I'm not sure what the problem is.
I think this is going to have to go on the TODO list, because I can see me getting bogged down trying to solve it with all sorts of maths that I know I will struggle with, which will just strip away my confidence in an instant.
A short and sweet post tonight... this mod is walking on thin ice, very thin ice.
@LeeC2202 Why to say that, indeed your mod is great, and It had helped me greatly to increase my gameplay to my expections.
@ashishcw Yesterday was a bad day, I have those a lot. On those days, when something goes consistently wrong, I have to decide how much damage something is causing and yesterday, this mod seemed to be the primary cause.
Sometimes I tackle parts of coding that make me remember that I am an artist by main profession and programming was a self-taught part of my role.
This is what I am more used to creating, although this was done a long while ago... about 1989 if I remember correctly... in 256 colours with a mouse.
So there are many aspects of programming, especially complex trigonometry, matrices, that kind of thing that really drag me down. All it needs is a couple of hard-to-solve bugs and it turns the situation volatile.
@LeeC2202 Whoaw, You said, programming ain't your primary profession, well, this sentence of yours my friend, had earned you a lot more respect from my end. Hats off buddy. Since, neither am I too from programming background, but still I am learning it, by watching tutorials, reading stackoverflow stuff, and I am struggling like anything. But I ain't gonna quit, since, people like you, @Eddlm , @Cyron43 , @yeahhmonkey inspires me alot by making simple basic mods.
So thank you once again.
P.S. You were programming in 1989? That's like when the Contra and Mario videogames came up right?
@yeahhmonkey Sure thing bro...
@ashishcw Contra was around 1987, at that time I was working for Binary Design in Manchester, UK on a few Namco arcade conversions but as an artist back then. At that time I was programming in assembler language purely as a hobby on the Amstrad CPC464 & 6128 and Commodore 64.
It's always been pretty much a hobby level thing until I went for a job as an artist at one place, they had no artist positions but said if I could programme in Z80, they had a programmer's role open. So that got me my first ever programmer & artist credits on a single game (Prince Naseem Boxing on the Gameboy Colour)... something I had always wanted to do. I had to relearn Z80 pretty damn fast to get it mind you... but it was good fun.
Since then I've done other projects as a programmer, plus I used to write a lot of the tools the artist's used... map editors, level designers, font grabbers, that kind of thing... anything that made the boring and mundane jobs quicker to do.
Once you start creating though, you get hooked. My advice is to start small, think of small tasks that do different things... all in their own mods/programmes. While you are learning, you need to get rewards for your efforts, so small things generate positive rewards, which keeps your motivation up.
So I'm currently on the brink of a massive changeover in the code and to say I am oozing fear into my room, would be an understatement. It's that moment in a programme's life when you know you have a better way of doing something but using it means ripping out a massive chunk of code that works.
One of the whole ideas behind the static camera type, is that it can replace the current vehicle and melee camera, which currently use their own camera system... mainly because they were first ones and I never quite anticipated the mod getting as far as it has done... as I am sure 99% of the people who have been following this didn't.
As I am sure people will know, those cameras can be problematic to say the least, especially when it comes to having the view blocked. They're a pain in combat and they just feel clunky.
But it's that desperate point where everything stops working and then hopefully, everything starts working again when the switch-over is finished. It is quite literally... terrifying. It's probably going to take me a few days to complete this but should it go well, it will get this mod a heck of a lot closer to where I really want it to be.
Fingers crossed... I'm going in...
Hey Lee i want help in something please u can help me about benny motors
@Neverfail I don't know anything about Benny Motors, sorry.
@LeeC2202 Very well said sir, and massive respect from me, though I wasnt even born in that period enjoyed all those retro titles in the late 90s and 2Ks.
I will surely keep your suggestions in my mind, and will try my hands at small projects, infact, already started with very basic scripts like, invencibility, no police, clean clothes and dentfree car always.
So first half day on the switch-over process... so far, partial success. Getting into vehicles is now using the new system but not using it very well. Exceptions and blocked views aplenty, but I'll take that as it's a step in the right direction.
Now it's time for some food, some TV, some planetary exploration, then back to it. I must confess, playing No Man's Sky has it's catastrophic failure moments (much like my mod at this point in the switch-over ) but when things are going well and you're stood there on a barren planet, you can't help but realise what a lonely place space exploration could turn out to be.
If there's one thing it does do very well, it's to convey the sheer size and emptiness of a desolate planet. And when that desolation is viewed on a 95" view-filling screen, in the middle of a suitable surround setup, it really drags you in.
Okay, so I am starting to refine the code to use this new system and things seem to be progressing fairly well. Although I have just had one of my "What did I just change?" moments, where I break something and instantly lose any memory of what I had just changed to cause it. I don't know why that happens to me, but it makes bug-finding extremely difficult at times. It probably took me 20 minutes to find the single line of code, which is ridiculous.
Of all the things that have hampered my coding over the years, that is the biggest one (well, apart from being a complete dufus with trigonometry that is). It's the coding equivalent of putting your keys down and forgetting where you put them.
Anyway, exceptions seem to have been banished, which is good but I have just started to consider one of those rare occurernces that can screw up my system and I don't know the best way to deal with it at the moment.
When you get into a vehicle, it is easy to find out which side you're getting into and position the camera accordingly. However, when you get out of a vehicle, you normally exit via the left-side... unless you are parked so close to something that the door is blocked. In that instance, you are forced to exit via the right side, which messes things up.
The only solution I can think of at this point in time, is when you exit, to create a raycast capsule on the driver's door and check if something is close enough to block the door. However, there is a massive chance that if my capsule is not in exactly the right place, it could detect an object that it thinks will block the exit, but it actually won't be blocked.
So that's something for me to mull over during this next step of the project. I really don't want to have to try casting lines based on an opening arc that will need to be custom created for each vehicle.
At this point, the afternoon's coding comes to a halt for food, Sheena (a classic old TV series) and more adventures across the galaxy. I stumbled across a spaceship in NMS last night that is great for planetary exploration. It's like the spaceship version of this:
So vehicles are now fully transferred over to the new system, which is good. Still have to deal with a couple of things as the visibility checking seems to be failing regularly... I think I know what to do to fix that though.
Encountered the warping problem again tonight and have now tied down exactly what causes it. If you park a vehicle in such a situation where you cannot open either the driver's door or the opposite passenger door, the game warps you either into, or out of a vehicle. It just means a whole new bunch of checking and flag setting so the camera system knows where you are and what you can do from that position.
It makes me realise just how easy the default cinematic system would have been to write (excluding the camera positioning that is). Are you in a vehicle or not? Turn it on... or not. No wonder they didn't add this on-foot system, you'd have to be a crazy person to do that.
I was going to add some pseudo code here but this thread probably bores people enough, so I'll save you all further punishment.
and out of nowhere, the afternoon is gone and the evening begins.
Progress made = Zero!