S2General/Importing VCDs to Source 2: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 47: Line 47:
This will allow the tools to recognize and compile vcdlist files correctly.
This will allow the tools to recognize and compile vcdlist files correctly.
Assuming you did everything correctly, scenes should now work.
Assuming you did everything correctly, scenes should now work.
[[Category:Source 2]]

Revision as of 18:05, 17 April 2020

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

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.