S2General/Importing VCDs to Source 2

From Valve Developer Community
Jump to: navigation, search
Dead End - Icon.png
This article has no Wikipedia icon links to other VDC articles. Please help improve this article by adding links Wikipedia icon that are relevant to the context within the existing text.
January 2024

Source 2 has support for Source 1 VCDs, and adding them to a Source 2 Mod is quite simple.

Creating a scenes.vrman file

For the first step, you'll need to create a scenes.vrman file. This file is a manifest that informs the asset system what "vcdlist" files exist. In your mod's content directory, create a scenes folder, and create an empty file named "scenes.vrman". Open this file in your favorite text editor, and add the following:

<!-- schema text {7e125a45-3d83-4043-b292-9e24f8ef27b4} generic {198980d8-3a93-4919-b4c6-dd1fb07a3a4b} -->
ResourceManifest_t
{
    string name = "Scenes Manifest"
    string[] resourceFileNameList =
    [
        "scenes/_root.vcdlist"
    ]
}

The file should be a list of vcdlist files, so for instance, if you add a second vcdlist file, add it to a new line under the "scenes/_root.vcdlist" line, and make sure you add a comma to the end of the first line. A comma should be on the line preceding any lines with additional vcdlist files.

Creating a vcdlist file

For the second step, you'll need to create a vcdlist file. This file is used to generate a vcdlist_c file, which is a file containing all the VCDs you with to import. Your first vcdlist file should be named _root.vcdlist (NOTE: It's not mandatory to create more vcdlist files, but it's useful for organizing them.) Create an empty file named _root.vcdlist in the same folder as your scenes.vrman file, and it should contain a list of VCD files that are present in your content/modname/scenes folder. As an example, here's a snippet of what a vcdlist for Half-Life 2 Scenes would look like:

breencast/collaboration.vcd
breencast/collaboration_plaza.vcd
breencast/disruptor.vcd
breencast/instinct.vcd
breencast/instinct_tv.vcd
breencast/overwatch.vcd
breencast/tofreeman.vcd
breencast/welcome.vcd
Note.pngNote:source1import can be used to automate this process.

Getting vcdlist files to be recognized by the tools

For the third step, you'll need to modify either game\bin\sdkassettypes.txt, or game\bin\assettypes.txt, depending on whether -nocustomermachine is in use. You'll need to add this to it after a similar entry:

{
            _class = "CResourceAssetTypeInfo"
            m_Name = "choreoscenefiledata_asset"
            m_FriendlyName = "Choreo Data List"
            m_Ext = "vcdlist"
            m_IconLg = "toolimages:assettypes/vcd_choreo_lg.png"
            m_IconSm = "toolimages:assettypes/vcd_choreo_sm.png"
            m_bHideTypeByDefault = true
            m_bContentFileIsText = true
            m_CompilerIdentifier = "CompileChoreoSceneFileData"
},

This will allow the tools to recognize and compile vcdlist files correctly. Assuming you did everything correctly, scenes should now work.