User:Fiskie/AutoHLMV

From Team Fortress Wiki
< User:Fiskie
Revision as of 22:44, 18 March 2012 by Fiskie (talk | contribs)
Jump to: navigation, search

AutoHLMV is my C++ tool for automation of screenshots of painted models inside HLMV into Photoshop, where they can simply be trimmed, given alpha and exported using the Scripts -> Export Layers as Files tool.


Current Features

  • Automated Registry editing for values
  • Automated model opening - do not have to open it beforehand
  • FOV Setting

Requirements

  • Source SDK
  • Preferably Photoshop CS5. CS4 and CS3 works, but due to the nature of C++'s FindWindow it's difficult to regex with, so other versions with different window titles may not work. The current titles are supported:
    • Adobe Photoshop CS5 Extended
    • Adobe Photoshop CS5.5
    • Adobe Photoshop CS5
    • Adobe Photoshop CS4 Extended
    • Adobe Photoshop CS4
    • Adobe Photoshop CS3
  • Exported the hat material files using GCFscape to their matching directory in the team fortress 2/tf/materials folder. All these files are contained inside team fortress 2 materials.gcf under tf/materials/player/items.

Download

Download Page

Pre-Configuration

autohlmv.ini

Lines that are comments can be written using a hash (#).

If there is only one VMT for a model (for example, if it doesn't have team colors), leave targetTex2 blank or comment it with a #.

  • targetName: Name of the model (currently unused)
  • targetModel: Path to the model, starting from the player directory, for example: player\items\spy\noblehair.mdl
  • targetRegkey: Registry key to the model, for example: models.player.items.spy.noblehair.mdl
  • targetTex1: Full file path to the model's default RED texture.
  • targetTex2: Full file path to the model's default BLU texture (optional).
  • targetFov: Desired Field of View to use inside HLMV. Bigger number = smaller model, and will often be used on monitors with a wide aspect ratio if the model is obscured by the window. Default value is 65.
  • targetRot, targetTrans, targetLightrot, targetLcolor: Values used for rotating and positioning the model and its lighting. Use the Rotations List.
  • targetMode: Currently the only value for this can be Paint, so leave this alone for now.
  • speed: An amount in milliseconds the program will pause for when switching windows, in case graphical problems or strange things occur. Lower number = faster, but increase it if problems happen.

Area Variables

These variables are used for clicking the mouse button at certain events, and should be configured if it is clicking in the wrong place. This was configured under Windows 8 on a 1080p screen.

  • modelViewerX/Y: The button to the Model Viewer (HLMV) in relation to the Source SDK window.
  • fileLinkX/Y: The File button on HLMV's toolbar.
  • openLinkX/Y: The Open button on HLMV's File menu.
  • dialogInputX/Y: The text input on HLMV's file select dialog.
  • fovInputX/Y: The FoV input on HLMV's actions pane.
  • layerNameX/Y: The topmost layer's name on Photoshop, so a rename can occur. (Unused, may be deprecated for a manually assigned shortcut key instead)

paints.ini

Unwanted paints can be commented out with a hash (#).

Paints are stored here as follows, and will be used in the application's paint process:

Paint Name, Decimal Color Values, HEX Color Values

Do not insert any paints before, or replace, Stock RED and Stock BLU yet, as in the program's current state this will bork it a bit. For now, insert them after.

Basic Usage

Window States

You must:

  • Have the Source SDK window open. HLMV will be opened by the script.
  • Have Photoshop open with no images open inside of it, so the script can find the application.

Troubleshooting

If you are having issues, run AutoHLMV from the command line so the program won't close before you can check why it closed, so you can tell what the problem was.

To-do

  • Simplify things a bit, e.g. remove the need to have targetRegkey in the ini.
  • Automating layer names in Photoshop
  • Supporting team models with a different extra base texture, e.g. Vintage Tyrolean
  • 3D feature

Changelog

Version 0.2

  • Added a "speed" setting to the INI.
  • Should not be taking screenshots in the wrong places anymore.

Version 0.1

  • Initial release.

Bugs

  • 3D mode has not been implemented, don't try this.
  • If you terminate AutoHLMV before it finishes, you will have to clear the $color2 variable from the VMT as it won't remove itself.