Hello
So, first, I am quite a noob at scripting. Only tried it a bit on Oblivion (quite a longtime ago) and got some results (never released) ; however, I think that the script I want to make requires more logic than knowledge, so I just need the basics if it is possible. I think I am good enough at programming and mathematics to handle that.
You may have noticed that there are no actual dynamic shadows in New Vegas. I had an idea to fix that, but I don't even know if it is possible, and I don't know what commands I could use for that.
Well, this is probably impossible, since it looks like the easiest way to create a shadow without altering game engine, so I can't imagine no one thought about it before. However, I still want to try as much as I can
(I know, this sounds quite ambitious for a beginner).
My idea relies on 2 things ; I don't know if they are possible :
- I must be able to set a simple visual effect to an area OR a block (3D block would actually be the best). I am talking about darkening ambient lighting on this area.
- I need to apply my script to an object and get its position/angle stats, ideally size too.
Here was my idea :
I want to create a simple function that calculates the position of a shadow depending on in-game time (using GetGameHour to get this time). This function would use the object position and angle alongside with the game time to set the position, angle and size of my shadow (for instance, when time is close to noon, size is small ; and the orientation must depend on the sun's position, which is determined by in-game time). Then I could place the shadow, which would acutally be a simple darkening effect.
Even if it works, may be quite painful for hardware (and for me) since it requires 1 script per static (I am only thinking about bigger ones though, like buildings ; for small objects, ENB shaders can handle it)...
I had another idea for this darkening effects : I thought I could create a light source that casts darkness instead of light (= "black light") and then move it over time but it seems impossible.
Thanks for reading (and I hope, answering).