Source Filmmaker

Source Filmmaker

315 ratings
The SteamVR Source 2 SFM: Getting Started
By Anomi
The "Next" SFM is finally here! And by "Finally Here", I mean it's been around for a while. Come take a dive into the weird world of SteamVR, which now has a pretty functional SFM!
2
   
Award
Favorite
Favorited
Unfavorite
What is The SteamVR SFM?

SteamVR is a VR hub (previously known as Destinations) Created by Valve for using/accessing VR games and applications on steam - But did you know that SteamVR is also technically a Source 2 Game?

When you launch into SteamVR via an HMD/Headset, you can explore and view VR environments. These environments all run in Source 2!

On top of that, SteamVR has a community workshop, so that means it also has a Source 2 Workshop Toolset!

And since it's a Source 2 Game with a Workshop Tool, that means it by default comes loaded with a Source Filmmaker!
A Quick, Bumpy History of SteamVR and SFM
SteamVR, which was previously Destinations, has actually been around for a long time. Back in 2016 I did my first test render in Destinations with SFM, so this has been around for a long while

During the development of SteamVR, Valve decided to scrap destinations and merge it into SteamVR Environments - So now, SteamVR is basically Destinations, but with access to the steam GUI





Now, even though the SFM has been implemented for a while, it HASN'T been very usable for most of that time. In Destinations, Lights flat out didn't work, ever. You had to disable all lighting just to be able to see spawned models. The workshop tools were more intended for creating Custom Maps for exploring in VR, the SFM tool itself was more of a tacked-on leftover from the Dota 2 Workshop Tool

Then, at some point between Destinations and SteamVR, everything kinda broke. None of the lighting would work, the GUI was rather glitchy, and it was basically useless for the longest time.

Let me explain something about the workshop toolset - All of the Source 2 Workshop toolsets are the same. The reason that SteamVR for the longest time didn't play nice with SFM, was because Valve only really updated the Source 2 SFM for Dota 2 Purposes.

So, to answer a really common question, It's Highly Unlikely that Valve will release S2FM as a standalone.. Each individual source 2 game with a workshop tool will share the same SFM, and in the context of this guide, That means SteamVR on SFM is a specific Source 2 Game, running on the same SFM (or, S2FM, in this case).

So, why is this really important or interesting if SteamVR and SFM don't play nice? Well, that's because it's not (totally) broken anymore!

With Half-Life: Alyx coming close to Release, Source 2's workshop tools have received quite a few updates recently. A few of these updates had propagated to the SFM itself - possibly due to the fact that Valve had used the SFM to render some game footage for the Half-Life Alyx release trailer

In the red circle, you can see Motion Blur Sampling from SFM, which tells us this shot was most likely rendered in an SFM running on Half-Life Alyx






In terms of the future and beyond, these are all very good signs that Half-Life Alyx will release with a functional Source Filmmaker implementation, and that's very exciting! Half-Life Alyx is already slated to get a workshop for creating and sharing custom maps (like SteamVR) so it's definitely going to get a full set of workshop tools! And that would also mean it should be able to launch with the SFM! Nobody really knows for certain if this will be a thing, but time will tell soon enough. Either way, with or without Half-Life Alyx on SFM, The SteamVR on SFM is already in a very promising state
What You Will Need
You're going to need a few things if you really wanna jump in:

1.
You Need GCFScape for Opening/Extracting VPK's
https://developer.valvesoftware.com/wiki/GCFScape

2.
You need to download and install SteamVR. Every steam account SHOULD have it by default, just go to your library and add "tools" to the filter and you should be able to find it











If you already have SteamVR setup/You have an HMD, you should have this quick start button up here on the top of your steam window. This will also launch into SteamVR


3.
You DO NOT need a VR Headset. Yes, Steam will tell you to plug in/set up a VR headset to use SteamVR, but you DON'T NEED ONE. This guide is going to ASSUME THAT YOU DON'T HAVE A VR HEADSET, so we will use a workaround to launch into the tools

4.
You should download my starter session, which contains 4 lighting dags specific to SteamVR!
https://drive.google.com/file/d/1fG2Zqf4AxyPZ2YfWPYvB9nvG0MC84FhQ/view?usp=sharing

(these dags can't be spawned in easily, they need to be recorded via gameplay record, I just did the work for you, so here ya go!)

5. (OPTIONAL)
If you want to port assets/make custom assets, you can stick with Whatever you use to port/make assets for Standalone SFM, Source 2 supports many of the same filetypes (DMX), minus VTF textures. Blender Source Tools is also a must! Source 2 streamlines this process greatly so porting is way easier in Source 2!
Getting Started, Making your "Addon"

Source 2 does things quite differently from Source, so you should familiarize yourself with how to set up a custom addon for using the tools (and, specifically, using SFM)

So, all of your assets are going to live in your custom addon. You can make multiple addons, but you'll only really be able to use one at a time, so let's just make a single, general purpose addon for using SFM!

First, Launch up SteamVR, and get to this window (your window might look different depending on if you have VR or not. If you don't have VR, it will look different)

If you have a headset plugged in, if you unplugged it, or if you dont have it to begin with, you'll be fine, you just need this little window







Right click the window, go to Workshop, and then click on CREATE/MODIFY AN EXISTING ENVIRONMENT









And then Boom, you'll be in the SteamVR Addon Manager

From here, you'll click on CREATE AN EMPTY ADDON, and then give it a name. Let's name our addon "svrfm". Create the addon, and then you'll see it added to the list. Now, don't go launching it just yet!


Click on this button to Create a Desktop Shortcut. We're going to be using this Shortcut to launch into SVRFM - This is because we can pass through extra settings, this is important ESPECIALLY if you don't have VR!



Go to your desktop and Locate your new Shortcut! It should look something like this. Right click on it, and select PROPERTIES


Look at the text box for TARGET, this is where we're gonna be putting our custom launch options.

Right now, your TARGET should look like this

  • "...\SteamVR\tools\steamvr_environments\game\bin\win64\steamtourscfg.exe" -addon svrfm -retail

(note that the Path to the steamtourscfg.exe will be a FULL PATH to where you installed SteamVR)
(note 2: if you decided NOT to name your addon svrfm, then THAT name will be next to -addon)


We're gonna edit this Target to add some new Launch Parameters, AND we're gonna REMOVE the
-retail from the line.

  • "...\SteamVR\tools\steamvr_environments\game\bin\win64\steamtourscfg.exe" -tools -addon svrfm -novr -noassert -1080 +vr_enable_fake_vr_test

(Confused? Just delete everything after the .exe" and paste the bold options above)

Now, double click your shortcut. If you did everything right, you should eventually load into Two windows: The ASSET BROWSER and the ENGINE WINDOW Behind it. If this ISN'T WORKING, double check what you put into your shortcut!

Basic Layout of a Source 2 Addon
Ok, we got an Addon now, but it doesn't have much of anything in it! So, before we get assets, let me explain how the file structure in Source 2 works, because it's a lot different now:


If you're going to be making and obtaining Source 2 Assets, you need to know these two directories well! If you only want to grab assets, then the GAME DIRECTORY will be our main target! Refer to this map if you ever get lost, I drew it myself

If you are a seasoned user of the Dota 2 SFM/Dota 2 Workshop Tools, REJOICE, because it just works the same!
Getting SteamVR Workshop Content

This will require GCFScape!

Let's get this environment, it's an official TF2 environment by Valve!
https://steamoss.com/sharedfiles/filedetails/?id=1449138879&searchtext=tf2

So, again, you don't need VR to do this

1.
First, you need to go subscribe to the workshop addons in question! Then wait for Steam to download them to your system

2.
Navigate to "steam\steamapps\workshop\content\250820", this is where all your SteamVR workshop addons will download to. Each addon will display in a series of folders all with numbered names, each number corresponds to a WORKSHOP ID. If you double click a folder and open the publish_data.txt, you can see what a specific addon is.


3.
Find the addon you want, and open the .vpk file (or copy-paste it somewhere else if you must)


4.
Open it with GCFScape, and Extract everything in the VPK to your GAME DIRECTORY for your addon, see my ms paint tree above for where that is

5.
extract all the content. You should now be able to open the assets/maps in SteamVR Tools! If you find you're missing assets or stuff isn't showing up at all, DOUBLE CHECK THAT YOU EXTRACTED TO YOUR GAME DIRECTORY, and also, DOUBLE CHECK THAT THE ADDON YOU DOWNLOADED DOESN'T ALSO REQUIRE A TEXTURE/ASSET PACK, THOSE ARE SEPERATE WORKSHOP PACKAGES!

A particularly cool asset package to get, is the Half-Life Alyx packs. There are 3 of them, so if you wanna play with HL:A content in SteamVR, you need to do this for ALL 3 workshop items

https://steamoss.com/sharedfiles/filedetails/?id=2006661698 https://steamoss.com/sharedfiles/filedetails/?id=2006662466 https://steamoss.com/sharedfiles/filedetails/?id=2006656803
Dude, Where's my Lights? Oh, There They Are

So, A big gripe we've had with the SteamVR in SFM, is that SFM light dags DON'T WORK! If you spawn in a light right now, you'll see that it just won't render ANY LIGHT! ew, gross

Lighting plays a big role in creating SFM content, so this seems like a huge bummer, however...

Remember how I said valve fixed a lot of things? Well, one of the things they fixed, was map lighting entities not working properly in SFM! So, when you load into maps in SFM with SteamVR, you'll notice that they work, and you'll also notice that they're all "fully dynamic" as well

So, as it turns out, valve snuck in another awesome feature: They gave the SFM the ability to Record In the map lighting entities! Yeah, so, SteamVR supports the use of a Brand New Animation Set Type, the DmeGameLight Dag!


These Game light dags seem to come in 4 main Varieties:
1. The Spot Light (similar to SFM's normal light)
2. The Omni Light (basically a point Light)
3. The Ortho Light (I believe this is an orthographic spotlight that casts a direction)
4. The Sun Light (a wide, environment-sized light for casting on everything)

SO! How do you get these? Well, you have to do a stupid process of recording them in, that's how - so to save you time, I have sampled all of these dags and put them on a starter session! You can download my starter session here:
https://drive.google.com/file/d/1fG2Zqf4AxyPZ2YfWPYvB9nvG0MC84FhQ/view?usp=sharing

Inside this DMX you can find a sample of all 4 of the lights, as well as a pre-spawned camera for your convenience!

You can either Load this DMX directly into SFM to use these light dags, OR you can import this session dmx into your own session and get them that way too. Here's a helpful link on how to do that:
https://developer.valvesoftware.com/wiki/SFM/Importing_a_second_session_in_the_Element_Viewer

Finding these brand new, functioning lighting dags was a BIG DEAL, because, by utilizing these light types, you can now do full proper lighting within SFM running SteamVR!

Each of these lights come with sweet options too!


  • -spotlights and pointlights have radius options, similar to radius in SFM
  • -you can change shadow resolution on the fly, and per-light! You can also use non-square and non-power-of-two values
  • -you can enable-disable specular and diffuse rendering per-light
  • -These dags CANNOT do Volumetrics, HOWEVER, if you spawn in a DEFAULT SFM LIGHT, you can enable volumetrics on that and that for your volumetric. It will render/sample correct and everything, it just won't cast actual light

now there are some limitations to keep in mind with these dags:

-There is an engine limit to how many of these can be rendered on screen at once. Source 2 won't force you to limit how many you have in a shot, but IT WILL start culling extra lights once the limit is passed. THE LIMIT IS 16 LIGHTS RENDERED PER FRAME. UNSHADOWED LIGHTS ARE ALSO SUBJECT TO THIS

-SFM Default Lights STILL FOLLOW THE SFM BUILT-IN LIMIT, AND DO NOT AFFECT THE ENGINE GAME LIGHT LIMIT, so a volumetric won't eat into this lighting budget

-The Sun Light entity is not SUBJECT TO THIS LIMIT! The sun has it's own limit of 1: You can only have one sun at a time, Likewise, if you load a map with a sun and spawn in your own sun, your sun should take over rendering

so, TL:DR

16 Game Lights
1 Sun Light
16 shadowed SFM Lights, 48(?) in total (although only volumetrics render right now)
More Source 2 Info
Some of you might wanna know how to get your custom assets into Source 2, but unfortunately that's not gonna really be covered in this guide. It's honestly pretty simple though. The SteamVR Workshop tools give you EVERYTHING you need to create and modify your assets for Source 2 and the SFM.

Wanna know where to start? Well, ironically, you can just read up on the dota 2 tools guides. SteamVR assets work basically the same way, just with different shaders

https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools

A QUICK NOTE ON THE MODEL FORMATS, FOR YOU MODELERS OUT THERE

If you're gonna compile your meshes to DMX, MAKE SURE YOU SET BLENDER SOURCE TOOL TO COMPILE WITH RESOURCECOMPILER AND NO STUIDIOMDL! You can find SteamVR's Resourcecompiler in

...\Steam\steamapps\common\SteamVR\tools\steamvr_environments\game\bin\win64
What's Next?

So, when HL:A releases, it's going to receive workshop tools at some point! And those workshop tools are going to MOST LIKELY contain the SFM! Now, how well the SFM will play nice is, well, up for question. My guess, is that HL:A with SFM will work a lot like SteamVR with SFM.

I encourage all of you to get your hands on this and see what you can figure out. I'm really excited to see what kind of awesome things we can make with it!

I'm really excited about this, so please tell me about anything you find or discover, or just show me what you can make or port over!

If you find anything cool, let me know and I can add a section about it in this here guide.

If Valve is reading this, then I have a few requests:
  • 1. Pls Fix the rendering issue with SFM Light Dags! Pls Pls Pls!
  • 2. If you can, can you make it so the record function in SFM has an option to force the engine window to load the active map?
  • 3. AO options are here but totally broken. Pls fix? it's not really that important though

BTW, All of the renders here were done in SFM running SteamVR
120 Comments
konaloboS 26 Nov, 2024 @ 7:35am 
I hope someday I can port everything I need from the old SFM to the new one and learn how to use it properly.
DownTownDK 12 Feb, 2024 @ 12:28pm 
unnecessary difficult
TwilightTerror 30 Jan, 2024 @ 10:42am 
great doesnt work
=FadowMar= 15 Jan, 2024 @ 1:47am 
sesson with lights not work
xavvi 5 Oct, 2023 @ 11:07am 
too hard valve pls just make a sfm2
BallisticShadow 8 Sep, 2023 @ 1:24pm 
Doesn't work
scientist.mdl 15 May, 2023 @ 6:41pm 
why is everyone mad. this is a great guide.
Basti 8 May, 2023 @ 8:38pm 
tbh SteamVR S2FM is bullcrap. stupid thing never finds the Vmat for me no matter how many times I try. can't have capital letters or symbols in any file, dosen't work with crowbar. I tried to port a model from source 1 sfm to source 2 sfm and wanted to use the same path(models/.../..../), but it just showed me the middle finger. easiest solution spend money and get Half life alyx.
untitledgoosegamer10 7 May, 2023 @ 3:11pm 
what steam vr tools? you mean the file "tools" or something else.
Tarek 17 Apr, 2023 @ 11:26pm 
The guide helped me and s2fm worked perfectly fine i can even send screenshots