About this mod
A plugin that allows scripting of free camera movements.
- Permissions and credits
- Changelogs
This mod has been uploaded by "The Care Taker" at the request of its owner. The Care Taker account is run by Nexus Mods for the purpose of hosting mods created by authors who are no longer active in the community.
If you are a mod author and would like to learn more about this service or have questions, you can find details regarding The Care Taker HERE.
Happy modding!
Compatible with Enderal
What Is This?
Based on work on my other mod Better Free Camera I realized that it was possible to automate camera actions. This mod allows you to create scripts that control camera movement, camera rotation, the field of view, and the time multiplier. It can be used both as a player tool with an MCM menu that people can record and play back scripts with or as a resource for modders who want to control specific free camera movements in their own mod.
Example Videos
The following are test videos people have made with Camera Scripter:
MCM Menu
There is a basic MCM menu with two pages on it. The first page on it is to allow configuration of hotkeys. Currently there are hotkeys for performing the following functions:
- Start/stop the currently selected script.
- Cycle to the next/previous available script.
- Start/stop recording a script.
- Save the current point to the currently recording script.
The second page displays a list of available script files that you can select from. At the moment there is a limit of 128 scripts that can be displayed here due to limitations of Papyrus in Skyrim, but I hope to eventually work around this. I don't think anyone will hit this limit anytime soon anyway.
Recording Scripts
The script file format will be described below, but the MCM menu allows the ability to record scripts to make the process of creating scripts a little easier. To start recording press the start/stop hotkey. Then move the free camera around and press the save point hotkey to record the current point. Each point saved will be a reference point of where the next movement should take place so you can be as messy as you like in moving to the next position you want the camera to be at, but when it is played back it will be a nice smooth transition.
Recorded scripts are not perfect of course. If you plan on using the scripts you record for things like videos or in a mod then you will likely need to make some edits to refine the movements. Use the following information to create or edit script files.
Script Files
The script files are what control everything and I will document them here as much as possible. Scripts are stored in a folder named CameraScripts underneath the Data folder. Inside this folder script files will use the extension *.scs to identify them uniquely from other files. Every time a script is started it is read from the file system. This means that you can ALT-TAB out of Skyrim, make changes in your favorite text editor, and then ALT-TAB back into Skyrim to see the changes you made. There is no need to quit the game and restart unlike editing of Papyrus scripts. There are a couple of example scripts included with this mod so you can try it out without needing to write your own script.
The format of script files in Skyrim is subject to change in the future but an example of what one is looks as follows:
# This is a comment line
mov,0.3,5.2,[500.1,0,0]
rot,2,2.5,{0,179.9}
fov,17,4,[-30]
tim,1,5,{-0.8}
rst,25
Scripts consist of five types of actions: Move Camera, Rotate Camera, Adjust Field Of View, Adjust Time Multiplier, and Reset. Each action is specified on a single line and the components of that action are separated by commas. The first three components consist of the following:
- A three letter action identifier.
- The time in seconds since the script started that the action should be executed.
- The duration of the action in seconds.
The last component is dependent on the type of action being executed. You should make sure that the time an action is being executed does not overlap with another action of the same type, but actions of different types can be executed concurrently. For example, you should not execute two camera moves at the same moment of time, but you can perform a camera move and a camera rotation at the same time.
Actions with square braces [] are relative changes while actions with curly braces {} are absolute changes. Relative changes are adjustments to the specific value based on the current value being executed. For example, if you specify a value of 30 for an FOV action and the current value is 60, the end result will be 90 for a wider FOV. If you specify 30 as an absolute value though, then the action will change for an FOV of 60 to 30 as the end result. Whether you choose to use relative or absolute actions depends on the situation. You may want to use relative movements when performing camera actions around an NPC that can be in different places in Skyrim, but absolute movements may be desired when performing movements around buildings that you want to make sure always move exactly the same no matter where you start the script running.
Move Camera
The move camera action is identified by a "mov" in the first field. The last field consists of how far in the X, Y, and Z direction should move during the duration of the action relative to the current camera position. The duration of the action affects the speed, so for example if the duration is smaller then the camera will move faster to reach that destination.
Coordinates are relative to the world space in Skyrim and not the direction the camera is facing. So you may be looking in one direction when you execute the script and be moving forward while if you look the opposite direction you will appear to be moving backwards. This is done so that camera moves can be scripted independently of camera rotations since complex scripts can make trying to figure out what direction you are moving rather confusing otherwise.
Be careful when using absolute coordinates as you can end up very far from where you expect to be in the world of Skyrim. You may want to use the record feature to get approximate absolute coordinates.
Rotate Camera
The rotate camera action is identified by a "rot" in the first field. The last field consists of the angle in degrees along the X and Z axis the camera should rotate relative to the current direction or the absolute direction it should face. Rotation of the camera along the X axis is like turning your head up or down while rotation along the Z axis is like turning your body left or right. Unfortunately the Skyrim engine does not support camera rotation along the Y axis which would be as if you were tilting your head left or right. Similar to camera movement, the duration of the action will affect how fast the camera rotates.
The camera is capable of rotating more than 90 degrees up and down the X axis which means you may find yourself looking at the world of Skyrim upside down. Something to keep in mind when writing scripts.
Adjust Field Of View
The adjust field of view action is identified by a "fov" in the first field and has the effect of zooming in and out the camera view. The last field consists of the number of degrees to adjust the FOV. The duration of the action will affect how fast a zoom in/out will occur.
Adjust Time Multiplier
The adjust time multiplier action is identified by a "tim" in the first field and will change how fast or slow things move in Skyrim. The last field consists of how much to adjust the multiplier relative to the current time multiplier or the absolute time multiplier. Regular game play has a time multiplier of 1.0 in Skyrim. Just like the other actions, the duration will affect how fast or slow it takes to reach the final time multiplier.
Reset
The reset action is identified by a "rst" in the first field. The second field is the point in time which the reset should take place. A reset will change everything back to the point the script started at. This is the only action that consists of two fields.
API
Installing this as is with a mod manager will provide an MCM menu with an associated ESP file, but modders can utilize the SKSE plugin without the need for the ESP or MCM menu. The actual API you would use can be found in CameraScripter.psc with examples of usage found in both CameraScripterHandler.psc and CameraScripterMCM.psc. The API should be pretty self explanatory but I can provide further documentation if people have a hard time understanding it. The only Papyrus script you should need is CameraScripter.psc with which you can create your own Papyrus scripts around to associate in your own ESP.
Permission
You can feel free to make translations, upload this to other sites, and generally share this with anyone you like without asking for permission so long as you don't try and make any money from this mod. I only ask that you make sure to give me credit for this work. You do not have permission to port this to Special Edition as this relies heavily on SKSE and I don't want to deal with complaints people may make about this not working due to the differences between the 32-bit and 64-bit versions of SKSE that someone else did not compensate for.
My Other Mods
Better Free Camera
Clonejuration
Continue Game No Crash
Delete Items
Don't Push Me While I'm Talking
Dragon Tablet
Get Over Here
Hats Off Please
Horsing Around
Inventory Stats
Let Me Pass
Long Conversations
Mark Books Unread
MCM Custom Order
Notification Log
Put On Some Clothes
Quick Deposit
Rename Items
Skypad
SkyrimSouls Slow Motion Menu
Slow Motion Death
Suit Up
Utopium's Utility Pack