PackBSP 2.0 Beta 1 ... Needs testing.

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
In some future beta I want to move the VMT stuff from being hardcoded to being in a conf file. It doesn't make my job any easier, but it means anyone can eyeball it to see if it supports a given new VMT directive. (Information like "The value for $env_cubemap is a texture path unless it says 'envmap'")

While I hope I've caught all the important stuff, there's always something that slips the net. (Like how decals have $modelmaterial in addition to $basetexture, etc.)

My main question is: Have you fixed my ice bug where it was picking up my ice textures as cubemap ones?
AFAIK yes, that was me looking for files with the wrong extension in the wrong folder place at the wrong time ;)

The debug log is chock-full of hopefully-not-too-cryptic information if you want to search for the name of a texture, model, etc.

since it works ingame to leave out the whitespace
I'll try to work this into B3. I suspect it will be a sporadic issue moving forward where there are things I wouldn't expect to work that the game ignores. (Like having a material that specifies itself as a fallback material.)
 
Last edited:

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
I modified the grammar a bit so that it accepts those slovenly particle manifests made by you daredevil ruffians while listening to that noise you call music (gerroff my lawn!) so that'll be in the next Beta.

Edit: The VMT stuff is now out into a config file. By default, each item is "texture" rather than "material", and most of this was gleaned from the VDC.

Material Gurus: Please let me know if you notice anything missing.

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<materialRefList>
    <!--
    Default HL2Parse material reference list
    Last modified June 16 2010

    Directives ending in "2" for blending are automatic and do not need to be
    re-listed.
    -->
    <item>
        <names>$basetexture</names> <!-- The directives to look at -->
        <type>texture</type> <!-- Texture is the default type -->
    </item>
    <item>
        <names>$bumpmap</names>
    </item>
    <item>
        <names>$normalmap</names>
    </item>
    <item>
        <names>$detail</names>
    </item>
    <item>
        <names>$dudvmap</names>
    </item>
    <item>
        <names>$refracttinttexture</names>
    </item>
    <item>
        <names>$envmapmask</names>
    </item>
    <item>
        <names>$parallaxmap</names>
    </item>
    <item>
        <names>$ambientoccltexture</names>
    </item>
    <item>
        <names>$hdrcompressedtexture</names>
    </item>
    <item>
        <names>$lightwarptexture</names>
    </item>
    <item>
        <names>$refracttinttexture</names>
    </item>
    <item>
        <names>$phongexponenttexture</names>
    </item>
    <item>
        <names>$fallbackmaterial</names>
        <type>material</type> <!-- This is a material, not a texture -->
    </item>
    <item>
        <names>$bottommaterial</names>
        <type>material</type>
    </item>
    <item>
        <names>$underwateroverlay</names>
        <type>material</type>
    </item>
    <item>
        <names>$refracttexture</names>
        <ignoreValue>_rt_WaterRefraction</ignoreValue> <!-- This value is not reported -->
        <type>texture</type>
    </item>
    <item>
        <names>$envmap</names>
        <ignoreValue>env_cubemap</ignoreValue> <!-- This value are is reported -->
        <type>texture</type>
    </item>
    <item>
        <names>$reflecttexture</names>
        <ignoreValue>_rt_WaterReflection</ignoreValue> <!-- This value is not reported -->
        <type>texture</type>
    </item>
    <item>
        <names>$fallbackmaterial</names>
        <type>material</type>
    </item>

    <!-- HL2 Vortigaunt healing stuff -->

    <item>
        <names>$FleshInteriorTexture
            $FleshNormalTexture
            $FleshBorderTexture1D
            $FleshInteriorNoiseTexture
        $FleshSubsurfaceTexture</names>
    </item>

    <item>
        <names>$FleshCubeTexture</names>
        <ignoreValue>env_cubemap</ignoreValue>
        <type>material</type>
    </item>

</materialRefList>
 
Last edited:

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Beta 3 up

Beta 3 is available.
http://technofovea.com/blog/archives/538


  • Should fix most of the problems people have reported. (It just ignores the source2007 engine issue, you need to fix that on your own.)
  • The config file for VMTs (materials.xml) is there if anyone notices $crazyNewTextureDirective isn't working.
  • Now looks for NAV files in addition to AIN. If either file exists and you don't want to pack them, you have to de-select them at the appropriate screen.
  • FYI, if you want to reset your window sizes etc. Delete the files in the folder
    Code:
    %appdata%\Technofovea\PackBSP
 

lucky

¯\_(ツ)_/¯
May 25, 2009
583
145
"Should fix most of the problems people have reported. (It just ignores the source2007 engine issue, you need to fix that on your own."


Fix it on our own? D :


(It packed nicely btw, thanks!)
 
Last edited:

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Fix it on our own? D :

Well, yeah. A prerequisite is messed up in a way I can't reliably detect or fix, and it's a one-time issue too. Same as if the Source SDK wasn't installed yet. It seems a bit out-of-scope to make PackBSP take over your screen and double-click on things.

Plus I don't know for certain how to fix it, because I never had the problem on my end, and I can't test any sort of fix I might make.
 
Last edited:

lucky

¯\_(ツ)_/¯
May 25, 2009
583
145
Alright, it came up in the initial logging thing as ERROR level, but it still all worked for me... (I just sort of ignored it..)
 
Mar 23, 2010
1,872
1,696
lazy man's pakrat? sign me up.
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Alright, it came up in the initial logging thing as ERROR level, but it still all worked for me... (I just sort of ignored it..)

'Probly that Source2007 thing. Unless you had planned on picking "Source2007" from the "Engine:" dropdown it won't affect you.

lazy man's pakrat? sign me up.

Technically it's also a lazy-man's general dependency tool. You could theoretically run it on an MDL and know exactly which files and skins to zip together to upload to a site, etc.
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Now that Beta 3 is out, I can't think of much in the way of "small changes" I'd like to make to the program before the 2.0 final.

If anyone has ideas (esp. things that make the GUI easier to use) I'd be happy to take a look at them.

Things I'm thinking of for sometime after the main release (and sometimes far after):
  • A mechanism for working with Source SDK mods that have no GCFs of their own.
  • Showing a visual graph of interconnected nodes, allowing you to see what-needs-what.
  • When users add something to the packing list, don't just add the thing itself, but analyze it as well, so if you add a VMT the VTF it uses is brought in at the same time, etc.
  • L4D support.
  • Mac support
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Sooo.... nobody has any requests? Is that a good or a bad sign? ;)
 

RavenStryker

Former Alias: †Blade†/Xi.Cynx
aa
Nov 25, 2008
782
845
I just used it last night to pack 2 custom textures into my BSP and everything worked flawlessly. =) I was using Windows 7 x64 Enterprise. Glad everything got working and I like the new GUI.

Request: :O:O:OSPLASH SCREEN!:O:O:O
 

megawac

L4: Comfortable Member
Oct 2, 2009
180
29
I think the final screen should look more like GCFScapes gui, allowing us to see the folder higharchy and structure. Much easier to check and look at imo.

Also last time I tried your program (b3), worked almost perfect just missed a sound file I called through a point_clientcommand, great job!
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
missed a sound file I called through a point_clientcommand

Thanks, but I don't think I'll be able to reliably detect that particular case without a disproportionate new amount of code...

Well, maybe. Depends. Bleh.
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
Grabbed L4D2 today, it's still downloading... so L4D(2) support is on the roadmap for 2.1
 

Remnic

L2: Junior Member
Jan 24, 2009
95
16
One thing concerns me about PackBSP is how you need to have all your Steam content in a folder called "Steam" without destroying your gameinfo.txt files. Will the next version avoid the "Steam" folder issue?

Basically, this is the problem.
packbspsteamerror.jpg
 
Last edited:

nik

L12: Fabulous Member
Aug 14, 2009
987
564
looks good!

seems a bit easier to use than pakrat, because I've had to manually pakrat some things before since it didn't catch some custom models.


after reading the post below, I think it would be a good idea to easily show which were found and which were missing, like make the text green/red as suggested below
 
Last edited:

EArkham

Necromancer
aa
Aug 14, 2009
1,625
2,774
I have two requests:

1) Can you colour code the lines with MISSING or FOUND? I have dyslexia, so long lists are hard for me to sort visually without colour coding. A simple green or red dot next to the file name would suffice.

2) Speaking of sorting, is it possible to generate a plain text list of all custom content found in a map? Or a way to hide all standard content, and then cut & paste that list to add to the map's readme.txt.

The usefulness of this being to give credit to the authors of custom content you may have in a map. I have a ton of stuff I've downloaded from tfmaps.net for example, and often forget if something I used in a map is custom or not.

Kep
 

Terr

Cranky Coder
aa
Jul 31, 2009
1,590
410
pack bsp has worked for me in the past, then i reinstalled windows and now it does not.

That means the SDK config for one of the engines (a gameconfig.txt file) is blank. It'll cause you problems in the SDK launcher too, I think.

Right now the next release is set so that particular issue (for which I blame Valve) won't prevent you from working with other engines/games.


One thing concerns me about PackBSP is how you need to have all your Steam content in a folder called "Steam" without destroying your gameinfo.txt files. Will the next version avoid the "Steam" folder issue?

So you mean you installed Steam in a folder that isn't called "Steam"? Weird, but OK, I'll make it so that it doesn't care about the folder name.

I have two requests:Can you colour code the lines with MISSING or FOUND?

If there's something in the right-hand column, then it's "found". If there is nothing, then it's "missing". I believe the backgrounds are greyed-out for the "empty" lines.

Note that the display doesn't currently distinguish between "optional" items (like map descriptions) and "required" items (like a missing texture).

Speaking of sorting, is it possible to generate a plain text list of all custom content found in a map?

Hrm, yes, with a condition. If the item (say, a VTF) was already packed into the BSP and there's nothing on your hard-drive that would "overwrite" it, then it won't show up. However this should be unlikely.

For now my suggestion is to either (A) check the tickbox at the step right before it packs, and copy/paste that block of text or (B) look at the debug log near the very end. In both cases it will show a list of files that were packed as part of the process.

For 2.1 I may add something like what you described to the final step of the wizard. Would you like to see a list of relative paths (like "materials/foo/bar.vmt") or would a list of absolute disk paths be better?
 
Last edited: