DirectorsCut
DirectorsCut copied to clipboard
A community-driven filmmaking mod for the Source engine.
Director's Cut
A community-driven filmmaking mod for the Source engine.
This software is in early production as development was recently reset.
Links
- Director's Cut Github
- Director's Cut Discord
- Director's Cut YouTube
- r/DirectorsCut
- Director's Cut on X (Twitter)
- Director's Cut on Bluesky
- Director's Cut on Valve Developer Wiki
Usage
-
Prerequisites:
- Director's Cut requires Source SDK Base 2013 Multiplayer to be installed on Steam.
- Director's Cut is currently only available for Windows.
-
Installation:
- Download the latest release from the releases page.
- Extract the
directorscut
directory to yoursourcemods
directory.- For example,
C:\Program Files (x86)\Steam\steamapps\sourcemods\directorscut
.
- For example,
- Restart Steam and launch Director's Cut from your library.
-
Testing:
- When in-game, open the Director's Cut editor by pressing
Tab
. - Open sessions by clicking
File
>Open
.- SFM sessions must be converted using the following command:
dmxconvert -i session.dmx -oe keyvalues2 -o session_kv2.dmx
- Test sessions are located in the following directory:
C:\Program Files (x86)\Steam\steamapps\sourcemods\directorscut\elements\sessions
- SFM sessions must be converted using the following command:
- When in-game, open the Director's Cut editor by pressing
-
Information:
- Director's Cut is in early development and may contain bugs.
- Please report any issues you find on the GitHub issues page
- The timeline does not have any mouse controls yet, please use the keyboard controls below.
- Right clicking does not work for any context menus yet.
- The element viewer and inspector windows are unstable and may crash the game.
- Loading a map must be performed through the console using the
map
command. - Saving a session may result in SFM no longer being able to open the file.
- Keyboard controls are not locked on a per-window basis yet.
-
Team Fortress 2 Content:
- While Director's Cut is compatible with Team Fortress 2, content does not work out of the box.
- Only the 2007 retail versions of the maps are supported.
- SFM-exclusive models (such as in
tf_movies
) are not supported. - TF2 character models may have issues with their materials.
- See
gameinfo.txt
for a rundown on how support was added.
Controls
-
Director's Cut:
-
Tab
to toggle the Director's Cut editor.
-
-
Timeline:
-
Space
to play/pause the playback.-
Ctrl
+Space
to play in x2 speed. -
Shift
+Space
to play in reverse. -
Alt
+Space
to play from the start.
-
-
Left
andRight
arrow keys to move the playhead by one frame. -
Up
andDown
arrow keys to move the playhead to the start or end of the current shot. -
P
to lock the timeline view to the playhead. -
=
and-
to zoom in and out.
-
-
Primary Viewport:
-
W
,A
,S
, andD
to move the camera. -
Z
andX
to move the camera up and down. -
Shift
to move the camera faster. -
Ctrl
to move the camera slower.
-
Building
-
Prerequisites:
- Director's Cut requires Visual Studio 2022 to build.
-
Building Director's Cut:
-
Cloning the Repository:
- Open a command prompt and run the following command:
git clone https://github.com/KiwifruitDev/DirectorsCut.git
- Open a command prompt and run the following command:
-
Creating Visual Studio Solution:
- After cloning the repository, run
mp/src/creategameprojects.bat
to create the Visual Studio solution.
- After cloning the repository, run
-
Building the Solution:
- Open
mp/src/games.sln
in Visual Studio and build the solution.
- Open
-
Implementation
If you would like to implement the Director's Cut animation system into your own mod, please note the following changes and files required:
Changes
-
mp/src/vgui2/vgui_controls/PropertySheet.cpp
-
void PropertySheet::OnDragFailed(CUtlVector<KeyValues*>& msglist)
- Pages can now be dropped out to create new
ToolWindow
instances without requiring a tool factory.
- Pages can now be dropped out to create new
-
void PropertySheet::OnPanelDropped(CUtlVector<KeyValues*>& msglist)
- Pages can now be dropped onto existing
ToolWindow
instances without requiring a tool factory.
- Pages can now be dropped onto existing
-
-
mp/src/game/client/c_baseanimating.cpp
-
CStudioHdr *C_BaseAnimating::OnNewModel()
-
void C_BaseAnimating::BuildTransformations(CStudioHdr* hdr, Vector* pos, Quaternion* q, const matrix3x4_t& cameraTransform, int boneMask, CBoneBitList& boneComputed)
-
bool C_BaseAnimating::SetupBones(matrix3x4_t* pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime)
- Allow dynamic bone positions and rotations to be set.
-
-
mp/src/public/tier1/KeyValues.h
-
KeyValues::~KeyValues();
- Allow
KeyValues
type to be derived from.
- Allow
-
Files
-
mp/src/game/client/directorscut
- This folder contains all of the Director's Cut code. You must either include each file through VPC or otherwise add them to your project.
-
mp/game/directorscut/materials/vgui/directorscut
- This folder contains all of the Director's Cut VGUI materials. These files must be included in your mod's game directory.
-
mp/game/directorscut/resource/directorscut
- This folder contains all of the Director's Cut resource files. These files must be included in your mod's game directory.
Contributing
Any changes are welcome through pull requests, I would really appreciate any help with this project.
Please feel free to submit any issues you find as well.
Disclaimer
Some parts of the code in Director's Cut is AI-assisted using GitHub Copilot.
Credits
Director's Cut shares code from the following projects:
Third-Party Legal Notices
Please view thirdpartylegalnotices.txt for more information.