Just and idea : Scripted Camera.

Post » Thu Nov 04, 2010 3:05 pm

Hey guys. I was just thinking, could you use a script in order to move the "camera" I am just thinking ahead, and somewhat to like what they did for the fallout intro movie. Could I just use the player, toggle menus obviously, then have a script disable collisions so I float freely. And have it set variables to my position, then add/subtract from those variables to move the player/angle the camera, then record it with something like FRAPS. I wanted to, for a trailer for my mod, have it fade in (with either an IMOD or using video software) , then activate a radio (obviously a timer in the script) and it starts playing a song, I have a few in mind. So could I use variables to move the player around the room, panning over several tables, a bed (all this is a personal vault shelter in a guys basemant) pan over the toilet and sink, then to the other room. Over some more tables covered in notes and "crazed person things" then slowly pan to a blood splatter on the wall, then down to the skeleton (referenced in some of my other topics as this "body") and then the gun in its fingers. Then it pans slowly back away from it out the entrance to the "mini vault" comprised of 2, 2x2 rooms (8 256unit blocks total), and into the guys basemant where it would fade out, ending the scripted camera movement. I figure with a variable like task controlling the stage of this, I could do it.

Though im not 100% sure how, and I am aware it would take like 6 days to script, and probably have like 3000 task variables and be like 20000 lines long. Unless there is a better way to do this. I cannot simply use tfc and pan using keyboard and mouse as this does not provide nearly as fine of control over the camera as I want. I want it to change speed from slow pan to fast, and smoothly turn. Thought I suppose I could use a scripted timer to change the cameras speed, but it would have to be pretty damn perfect to look good. Please provide insight as to how to do this as it would look great. I am prepared to spend alot of my spare time specifically on this, so unless it would take like 2 weeks of working 24/7 I can do it (I hope :P)

I also know this is rather demanding, and probably impossible/way to incredibly complicated. But Its just an idea, I'm simply planning ahead so humor me a little :)

Gunmaster95
User avatar
RaeAnne
 
Posts: 3427
Joined: Sat Jun 24, 2006 6:40 pm

Post » Fri Nov 05, 2010 3:32 am

Using http://geck.gamesas.com/index.php/SetAngle, http://geck.gamesas.com/index.php/SetPos, and timers, and stage variables like you mentioned, this is entirely possible. I've never tried it, but maybe using http://geck.gamesas.com/index.php/SetActorsAI on the player would disable his havok so you could move him around untouched by gravity. Not sure. :shrug: Or maybe calling setPos each frame would negate the gravity anyways...

Also, depending upon how accurate you think you can be with your mouse, it may be easier to not disable mouse looking, and use it to rotate the camera about as necessary, instead of having that much more to script.
User avatar
Joey Bel
 
Posts: 3487
Joined: Sun Jan 07, 2007 9:44 am

Post » Thu Nov 04, 2010 4:44 pm

Oh cool that is so much simpler! I thought I would have to set a variable like Xpos to something like GetXPosition then say like set Xpos to Xpos+1, and such for each freaking frame. It will still be incredibly difficult and take a while, but its a fraction of the work. Also, I think using http://geck.gamesas.com/index.php/Tcl would work all the same. As every tenth of a second moving the player would probably make gravity mostly obselete, I think it would still give the camera the look of vibrating up and down. Also I think it is probably a good idea to use the mouse to aim, and simply to camera as you said. I know using windows I can turn on Mouse Smoothing or Drag (speaking of which can anyone direct me as to how to do this in Windows 7? I knew how in xp but I'm afraid I have lost my touch :/) but I am unsure as to how that would work ingame. Maybe theres a setting somewhere in the .ini that controls mouse "drag"... Anyone?
User avatar
Max Van Morrison
 
Posts: 3503
Joined: Sat Jul 07, 2007 4:48 pm

Post » Thu Nov 04, 2010 7:44 pm

Using http://geck.gamesas.com/index.php/SetAngle, http://geck.gamesas.com/index.php/SetPos, and timers, and stage variables like you mentioned, this is entirely possible. I've never tried it, but maybe using http://geck.gamesas.com/index.php/SetActorsAI on the player would disable his havok so you could move him around untouched by gravity. Not sure. :shrug: Or maybe calling setPos each frame would negate the gravity anyways...

Also, depending upon how accurate you think you can be with your mouse, it may be easier to not disable mouse looking, and use it to rotate the camera about as necessary, instead of having that much more to script.


the camera is built into the animations. The best thing you can do is to make an animation that rotates the camera bone around a bit, this is what they did for the birth scene. if you move the camera bone it will only (from experience) translate the vertical motion of the camera though. any horizontal motion seems to be bound to bip01 scene root.

There's no command in script to turn off player collision.... it's why I was trying to use fose's tapkey to tcl the player actually.
User avatar
Frank Firefly
 
Posts: 3429
Joined: Sun Aug 19, 2007 9:34 am

Post » Thu Nov 04, 2010 3:05 pm

the camera is built into the animations. The best thing you can do is to make an animation that rotates the camera bone around a bit, this is what they did for the birth scene. if you move the camera bone it will only (from experience) translate the vertical motion of the camera though. any horizontal motion seems to be bound to bip01 scene root.

There's no command in script to turn off player collision.... it's why I was trying to use fose's tapkey to tcl the player actually.

I have no clue how to do that :/ I would need someone to explain it in greaaat detail lol... >.>

As to your second thing, could I then just type TCL in the console THEN run into the trigger/hit the switch that makes all this scripted jibberish happen? Would that work all the same?
User avatar
Euan
 
Posts: 3376
Joined: Mon May 14, 2007 3:34 pm

Post » Thu Nov 04, 2010 11:11 pm

You could also make a video ingame, and play it again later with the comand PlayBink. They do that in CUBE.
User avatar
Darren
 
Posts: 3354
Joined: Wed Jun 06, 2007 2:33 pm

Post » Thu Nov 04, 2010 10:43 pm

You could also make a video ingame, and play it again later with the comand PlayBink. They do that in CUBE.

Yes that is what I am doing. This will not be included in the actual mod. Its to make a video that will either just be part of trailer, or a bink ingame. So yea thats what I'm trying to do.
User avatar
Ernesto Salinas
 
Posts: 3399
Joined: Sat Nov 03, 2007 2:19 pm

Post » Thu Nov 04, 2010 5:12 pm

Ok I am actually starting to make this bit by bit now, so if anyone has any additional suggestions that could help feel free to say them. I am going to use SetPos and SetAngle like 10 times a second to make this thing look good. Any advice is welcome. The whole thing will be about a minute long, but a majority of it, is the camera moving only along one axis so it shouldn't be too bad. And it never moves across more than two at once, its always panning right, then either is going backward/forward or up/down. Then SetAngle I only have to do like once a second to slowly rotate the camera a little bit at a time.

A question though. When using SetPos would I have to make a separate line for X Y and Z, or could I comine them somehow into one? Like 'Player.SetPos X 500 Y 204 Z 3498' or would I have to do a separate SetPos line with each of those on it?
User avatar
Angus Poole
 
Posts: 3594
Joined: Fri Aug 03, 2007 9:04 pm

Post » Thu Nov 04, 2010 6:46 pm

If you need to set a reference's position on all 3 axes, you'll need to call http://geck.gamesas.com/index.php/SetPos 3 separate times.

Cipscis
User avatar
Talitha Kukk
 
Posts: 3477
Joined: Sun Oct 08, 2006 1:14 am

Post » Fri Nov 05, 2010 6:57 am

If you need to set a reference's position on all 3 axes, you'll need to call http://geck.gamesas.com/index.php/SetPos 3 separate times.

Cipscis

Ok, thats what I was afraid of... I guess I will just make the camera movement rather simply, just sliding along a line, then a different line. No diagnals or anything. And as long as the camera doesn't look all too swiftly (and its a slow, depressing, Fallout 3 opening style trailer) it should be fine.
User avatar
brandon frier
 
Posts: 3422
Joined: Wed Oct 17, 2007 8:47 pm

Post » Thu Nov 04, 2010 3:48 pm

It should be easy enough to move the camera smoothly along a vector by incrementing each position every frame. Make sure you remember to multiply the increment by http://geck.gamesas.com/index.php/GetSecondsPassed to make the velocity independent of frame rate.

Cipscis
User avatar
Courtney Foren
 
Posts: 3418
Joined: Sun Mar 11, 2007 6:49 am

Post » Fri Nov 05, 2010 2:51 am

It should be easy enough to move the camera smoothly along a vector by incrementing each position every frame. Make sure you remember to multiply the increment by http://geck.gamesas.com/index.php/GetSecondsPassed to make the velocity independent of frame rate.

Cipscis

What do you mean by that? I was going to used a staged timer and a variable to run it, so every time the player moves, I set the variable up one, the timer to like .1 and use SetPos/angle. And just do that a few hundred times using If MyVariable == Whaever, setpos and set timer, every time the timer hit 0. Or should I have a timer counting up, so I don't need the variable, and I just use the one timer going up constantly to control everything? Is that what you meant? Doesn't that not work because if you have If Timer == 1 and it sets it up to 1.01 at that frame, it wouldn't run that block?
User avatar
celebrity
 
Posts: 3522
Joined: Mon Jul 02, 2007 12:53 pm

Post » Fri Nov 05, 2010 2:10 am

The method I'd use for moving something along a path is very simple:
float fPosBegin GameMode	; Increment X position	set fPos to GetPos X + ([XIncrement] * GetSecondsPassed)	SetPos X fPos	; Increment Y position	set fPos to GetPos Y + ([YIncrement] * GetSecondsPassed)	SetPos Y fPos	; Increment Z position	set fPos to GetPos Z + ([ZIncrement] * GetSecondsPassed)	SetPos Z fPosEnd
Where you use a vector, possibly a vector of mathematical functions, to determine the path. For example, if you wanted to move the camera along the X axis at a rate of 5 units per second:
[XIncrement  = [5 YIncrement	  0  ZIncrement]	 0]

Cipscis
User avatar
Aman Bhattal
 
Posts: 3424
Joined: Sun Dec 17, 2006 12:01 am

Post » Thu Nov 04, 2010 5:20 pm

The method I'd use for moving something along a path is very simple:
float fPosBegin GameMode; Increment X position	set fPos to GetPos X + ([XIncrement] * GetSecondsPassed)	SetPos X fPos; Increment Y position	set fPos to GetPos Y + ([YIncrement] * GetSecondsPassed)	SetPos Y fPos; Increment Z position	set fPos to GetPos Z + ([ZIncrement] * GetSecondsPassed)	SetPos Z fPosEnd
Where you use a vector, possibly a vector of mathematical functions, to determine the path. For example, if you wanted to move the camera along the X axis at a rate of 5 units per second:
[XIncrement  = [5 YIncrement	  0  ZIncrement]	 0]

Cipscis

Ok I think I get it. Where X/Y/Z inc are just numbers right? But wouldnt that make the camera, or player, speed up as time went by? Since the amount its moving by is going up as GetSecondsPassed goes up? It wouldn't be constant, or would it >.>
User avatar
Marina Leigh
 
Posts: 3339
Joined: Wed Jun 21, 2006 7:59 pm

Post » Fri Nov 05, 2010 5:04 am

They could by numbers, or they could be more complicated mathematical expressions. It all depends on what sort of path you want the camera to follow. If you want the camera to move in a straight line, then all 3 values should be constant.

The return value of http://geck.gamesas.com/index.php/GetSecondsPassed isn't incremental - it returns the amount of time (in seconds) since the script was last processed. This is why timer scripts need to use a "float" variable in order to store the total time passed by incrementing it by http://geck.gamesas.com/index.php/GetSecondsPassed every iteration.

It can help to think of http://geck.gamesas.com/index.php/GetSecondsPassed as a function that returns the reciprocal of the frame rate (i.e. seconds per frame rather than frames per second), assuming the script is processed every frame.

Cipscis
User avatar
Blackdrak
 
Posts: 3451
Joined: Thu May 17, 2007 11:40 pm

Post » Fri Nov 05, 2010 7:38 am

oh. dhurr. I forget, it wouldn't keep counting up because your not saving it in a variable. Ok so that would work, and be pretty cool. Thanks I think I will try that, it will just be alot of guess work, testing, then fixing.
User avatar
Matt Terry
 
Posts: 3453
Joined: Sun May 13, 2007 10:58 am

Post » Thu Nov 04, 2010 8:22 pm

I should have used this with my monorail, but didn't. It could have saved me quite the headache.
User avatar
Timara White
 
Posts: 3464
Joined: Mon Aug 27, 2007 7:39 am

Post » Fri Nov 05, 2010 8:15 am

Dangit lol. I am so excited to do this cause it will look so great! But I think I just found an even better spot later in the mod to do it, one I am not done with yet, so alas it is put on hold once again... I will however try to mess around with your script and see what I can get too look good and steady. Also I will need some help (when I do it not right now, so an answer isnt 100% needed this moment) some help with http://geck.gamesas.com/index.php/SDT_Animation as I do not understand what it all means, and think it is what I am going to use at the end of the trailer, when I have a guy in outcast power armor standing there, and the camera pans past him, then he looks towards it. You know, the very cliche fallout thing they have in the FO3 intro, and the NV trailer. I figure I might as well fit in :P But I guess I will wait like another few weeks. This should be better anyway. and I will practice with the script you gave me so I can find a good speed for things to look nice. Thanks guys, I will post anything here in the next month when I get around to making this (When I finally do...) if I have any questions. -_-

Gunmaster95
User avatar
Natalie Harvey
 
Posts: 3433
Joined: Fri Aug 18, 2006 12:15 pm

Post » Fri Nov 05, 2010 5:13 am

http://geck.gamesas.com/index.php/Category:SetDebugText was disabled in the released version of Fallout 3. You could probably get some decent information in the context of animation from http://geck.gamesas.com/index.php/ShowAnim though.

Cipscis
User avatar
Jessica Lloyd
 
Posts: 3481
Joined: Fri Aug 25, 2006 2:11 pm

Post » Fri Nov 05, 2010 7:38 am

Oh crap lol. Thats why I didn't get it. I'm a genius... Nvm I don't need that function. I though that was (don't know how I missed that) a command used to run an animation, I dont need the info text. What would the line be just to force an actor to do an animation right there? Like force example, looking to the right?
User avatar
X(S.a.R.a.H)X
 
Posts: 3413
Joined: Tue Feb 20, 2007 2:38 pm

Post » Thu Nov 04, 2010 6:09 pm

You'll want to use http://geck.gamesas.com/index.php/PlayIdle for that one.

Cipscis
User avatar
[ becca ]
 
Posts: 3514
Joined: Wed Jun 21, 2006 12:59 pm

Post » Fri Nov 05, 2010 1:43 am

Ok. But would that work for the head turning thing? Since it isnt really an idle... Well I think it is once the character turns his head, then it just sticks there I think. But I don't want him to just very quickly turn his head then keep it there. It is going to look like in the end of the street scene in the FO3 Intro, just a different setting, still outside, still daytime, and the guy will be wearing outcast armor, and holding a laser rifle, instead of enclave armor.
User avatar
Lyndsey Bird
 
Posts: 3539
Joined: Sun Oct 22, 2006 2:57 am

Post » Fri Nov 05, 2010 9:00 am

If you really just want them to turn their head, then you could try using http://geck.gamesas.com/index.php/Look (possibly paired with http://geck.gamesas.com/index.php/StopLook), but I've found that head-tracking alone tends to look pretty unrealistic and mechanical.

Cipscis
User avatar
Kirsty Collins
 
Posts: 3441
Joined: Tue Sep 19, 2006 11:54 pm

Post » Fri Nov 05, 2010 2:59 am

Hmm, Ok. I will take a look at the into area in the geck, because I think there is an animation called like IntroGuyLookSide or something. I can just use that on my guy and time it properly. Thanks :)

I have an unrelated question, but figured since you would know this I might as well as here. If someone is saying lines of dialog with a power armor helmet on, will it automatically add the sound effect to their voice like they are actually wearing one? Or does it just play the raw audio file? Same thing with intercom's. Is that crackly, 'lower quality' effect done by the object in the game, or are the audio files the ones with that kind of effect put on them?
User avatar
Lizzie
 
Posts: 3476
Joined: Sun Nov 19, 2006 5:51 am

Post » Thu Nov 04, 2010 7:34 pm

There's a checkbox in the "Armor" dialogue window labelled "Modulates Voice", which is how power armour helmets do it. When the box is ticked, a filter will be applied to all dialogue from the actor wearing it. I don't know where the filter comes from though.

Talking activators have the opposite of this - a checkbox labelled "No Voice Filter", which will remove the filter if ticked.

Cipscis
User avatar
herrade
 
Posts: 3469
Joined: Thu Apr 05, 2007 1:09 pm

Next

Return to Fallout 3