Difference between revisions of "Team Fortress Wiki:3D Models"
m (→Requirements: The new version only needs this.) |
m (→Initial setup) |
||
Line 24: | Line 24: | ||
== Initial setup == | == Initial setup == | ||
=== Installation === | === Installation === | ||
− | + | * Install Python, Pip, and Visual C++ Compiler | |
− | + | * Install SendKeys, pypiwin32, PIL, numpy, wikitools, and poster | |
− | |||
− | |||
* Download and save the automaton scripts to an easily accessible folder. | * Download and save the automaton scripts to an easily accessible folder. | ||
− | * Extract the BlackFirePlusBlackBackground.zip file, and copy the contents to | + | * Extract the BlackFirePlusBlackBackground.zip file, and copy the contents to <code>Steam\steamapps\common\Team Fortress 2\tf\custom\</code> |
* Set up HLMV to produce the highest quality images possible by following the guide found [[Help:Model_Viewer#Setup|here]]. | * Set up HLMV to produce the highest quality images possible by following the guide found [[Help:Model_Viewer#Setup|here]]. | ||
− | * | + | * Start up TF2 so that it maps your custom folders (for material overrides) and generates gameinfo.txt. |
=== Setting up automatebeta.py === | === Setting up automatebeta.py === | ||
Line 42: | Line 40: | ||
*** You should leave a few pixels gap from the window edge. | *** You should leave a few pixels gap from the window edge. | ||
* {{code|fileButtonCoordinates}} is a tuple of the center x,y coordinates for the File menu button in HLMV. Likely, you don't have to change this. | * {{code|fileButtonCoordinates}} is a tuple of the center x,y coordinates for the File menu button in HLMV. Likely, you don't have to change this. | ||
− | * Close any programs that may pop up or take mouse control, as they | + | * Close any programs that may pop up or take mouse control, as they will interfere with the process. |
== Workflow == | == Workflow == |
Revision as of 20:56, 1 October 2016
The 3D Models project's goal is to construct pseudo-3D images of the weapons in Team Fortress 2 that can be freely rotated.
Contents
Example
https://wiki.teamfortress.com/w/images/6/6a/Detonator_RED_3D.jpg?2018072610024612838,280,233,3,0,193,111,56,152,110,115,146,109,175,194,106,266,153,106,367,147,105,472,194,84,608,155,83,762,146,80,924,194,63,1098,157,60,1295,145,57,1503,194,44,1705,161,40,1932,145,35,2173,195,29,2392,165,24,2635,147,19,2895,195,20,3123,171,14,3377,151,7,3646,196,17,3872,177,11,4122,154,4,4386,198,22,4597,182,16,4829,159,9,5073,204,37,5255,188,31,5454,164,25,5663,210,61,5803,192,56,5955,168,51,6114,214,92,6203,195,89,6298,170,86,6396,215,114,6447,196,115,6497,172,115,6545,214,98,6633,195,95,6727,170,94,6825,210,78,6965,192,71,7116,168,68,7275,204,60,7457,188,49,7656,164,45,7865,198,46,8076,182,30,8308,159,25,8552,196,35,8778,177,17,9028,154,10,9292,195,31,9520,171,11,9774,151,2,10043,194,30,10263,165,12,10506,147,0,10766,194,33,10968,161,12,11195,145,2,11436,194,42,11610,157,21,11807,145,14,12015,194,58,12151,155,42,12306,146,35,12469,194,82,12560,153,72,12661,147,69https://wiki.teamfortress.com/w/images/3/36/Detonator_BLU_3D.jpg?2018072610042612842,280,232,3,0,193,111,56,153,110,114,146,110,173,194,106,264,154,106,365,146,105,470,194,84,607,155,82,761,146,80,923,194,62,1097,158,59,1294,145,56,1502,195,43,1704,162,39,1931,145,35,2172,195,28,2392,166,23,2635,148,18,2896,195,19,3125,171,14,3379,151,7,3649,196,17,3875,177,11,4125,154,4,4389,198,22,4600,182,16,4832,159,10,5076,203,37,5258,187,32,5457,164,25,5666,209,61,5806,191,57,5957,167,52,6116,213,92,6205,194,90,6299,170,87,6397,214,114,6448,195,114,6498,171,115,6546,213,98,6635,194,95,6729,170,93,6827,209,78,6967,191,70,7118,168,68,7277,203,60,7459,187,48,7658,164,44,7867,198,45,8078,182,30,8310,159,25,8554,196,35,8780,177,17,9030,154,10,9294,195,31,9523,171,11,9777,151,1,10047,195,30,10267,166,12,10510,148,0,10771,194,33,10973,162,12,11200,145,2,11441,194,42,11615,158,22,11812,145,14,12020,194,58,12157,155,42,12311,146,36,12473,194,82,12564,154,72,12665,146,69
Note This is not for the faint of heart. It requires a bit of knowledge on how both VMTs and HLMV work, and a lot of time and patience since a lot of models will not be centered correctly by default, thus requiring plenty of tweaking to get them ready for the process.
Requirements
- Python 2.7.11
- pip Package installer
pip install pillow
- Python Imaging Library aka PILpip install SendKeys
- SendKeys for changing the backgroundpip install pypiwin32
- PyWin for mouse clicks and window manipulationpip install numpy
- NumPy for image croppingpip install wikitools
- WikiTools for uploadingpip install poster
- Poster for uploading
- The background and fire textures
- Visual C++ Compiler for Python 2.7
Initial setup
Installation
- Install Python, Pip, and Visual C++ Compiler
- Install SendKeys, pypiwin32, PIL, numpy, wikitools, and poster
- Download and save the automaton scripts to an easily accessible folder.
- Extract the BlackFirePlusBlackBackground.zip file, and copy the contents to
Steam\steamapps\common\Team Fortress 2\tf\custom\
- Set up HLMV to produce the highest quality images possible by following the guide found here.
- Start up TF2 so that it maps your custom folders (for material overrides) and generates gameinfo.txt.
Setting up automatebeta.py
- Open HLMV and maximize it.
- Take a screenshot and paste it into an image viewer such as paint.NET or Adobe Photoshop.
- Take note of the following pixel coordinates for your screen size.
imgCropBoundaries
is the boundary of the window the model in HLMV is contained within. The format is;- [pixel distance of left boundary from left of screen, pixel distance of top boundary from top of screen, pixel distance of right boundary from left of screen, pixel distance of bottom boundary from top of screen]
- You should leave a few pixels gap from the window edge.
fileButtonCoordinates
is a tuple of the center x,y coordinates for the File menu button in HLMV. Likely, you don't have to change this.- Close any programs that may pop up or take mouse control, as they will interfere with the process.
Workflow
Taking images
- Open up a weapon model in HLMV and center the model using Options → Center View.
- If the model does not face you directly when centered, it will need to be recompiled with a new rotation.
- Zoom the model out so that it is as large as possible, but will not clip outside the viewer window when rotated or tilted.
- If the light source produces a glare that interferes with the model, hold Ctrl and drag the light source around with the mouse until it is in a better position.
- Open regedit, navigate to
\HKEY_CURRENT_USER\Software\Valve\hlmv
, and locate the registry key entry for the model. This will be in the form ofmodels.weapons.c_models.c_wrench.c_wrench.mdl
. - Copy and paste this key name into automatebeta.py in the HLMVModelRegistryKey().
- Copy the
Trans
key entry for the model as theintialTranslation
argument. Don't forget to add the commas to separate the values! - Rotate the model by dragging near the center of the viewer.
- There will be three possible outcomes here.
- The model will rotate around the bottom corner of the model. If so, you will need to make use of
rotationOffset
.- Rotate the model so that it is facing left. Hold down ⇧ Shift and move the model sideways so that it is centered in the circle that appears.
- Press F5 in HLMV, and then in regedit. Note the new 'y' Trans value. The difference between the current value and the initial value is the
rotationOffset
value.
- The model will rotate around the wrong plane or the model will not rotate around the vertical or horizontal center. If so, the model will need to be recompiled.
- The model will rotate around the vertical and horizontal center of the model. If so, you are good to go.
- The model will rotate around the bottom corner of the model. If so, you will need to make use of
- Set the item name in the script for
itemName
. It is suggested you initially set this to 'User <username> <item>' so you can see the item looks fine before being moved to the correct title. - Now you can run the script, from the command line. Navigate to the folder containing the scripts and type
python automatebeta.py
. - You will be asked to enter the folder name for the generated images.
- The script will now automate taking the required images. It is best not to try and use your computer while the script is running as it will likely result in an incorrect output.
- To interrupt the image taking process, turn on Num Lock.
Team-colored models
- Extract the VMTs for the model from the
tf2_misc_dir.vpk
appropriate folder directories in the/custom/folder
. - In the automatebeta.py script, set
teamColours
toTrue
and set the paths to the VMTs withREDVMTFiles
andBLUVMTFiles
.
Models with other class arms/models blocking the view
- If you wish to remove a model from the viewer (for example the Sniper's arms holding onto the view model Sniper Rifle), click on the Model tab in HLMV and find out which VMTs are being used for the model textures.
- Extract the VMTs using GCFScape to the same path in your
/custom/folder
and open them up in a text editor. - Inside the
"VertexLitGeneric"
curly brackets add the line"$no_draw" "1"
. This will make this part of the model invisible in HLMV.
Recompiling models
- First, check here to see if a model has already been recompiled.
- Download and install Crowbar, GCFScape, and the Source SDK (Steam -> Library -> Tools)
- Extract the model with GCFScape, decompile with Crowbar.
- For the most part, adding
$autocenter
to the .qc file should do the trick. If not, try using $origin X Y Z. For more complex concerns, see Category:QC Commands on the Valve Developer Community. - Recompile the model with Crowbar. You should be good to go!
Uploading your image for submission
- Post a link to the image on the Talk page under a section titled after the weapon's name, along with your parameters for the script (weapon key name, initial rotation, initial translation, offsets, etc).
- Keep a copy of the individual frame images somewhere safe in case they are needed in the near future.
Tips and debugging
- If your HLMV is opening too slowly, adjust the time in the
mouse.sleep(time in seconds)
entry that follows opening HLMV. - If something interrupts the image taking process, you can continue where you left off by setting the
n
argument in the automateDis method.- You can also use this to check the images are coming out right by interrupting the script and checking the images. If the rotation looks okay, continue where you left off.
- You can also set the
verticalRotations
argument toTrue
to just rotate the model with no tilt to see if it looks fine. - You will find it much easier when recompiling models to find out if they're centered correctly by checking the 'Ground' checkbox in HLMV and refreshing the model every time you make a change and recompile.
Models repository
Weapons
Needed weapons
Scout Weapons:
Soldier Weapons:
- Shell Shocker Rocket Launcher
- Aqua Marine Rocket Launcher
- Sand Cannon Rocket Launcher
- Woodland Warrior Rocket Launcher
- Rocket Jumper
Pyro Weapons:
Heavy Weapons:
Demoman Weapons:
- Stickybomb Launcher: Multiple Skins
- Liquid Asset Stickybomb Launcher
- Pink Elephant Stickybomb Launcher
- Sudden Flurry Stickybomb Launcher
- Carpet Bomber Stickybomb Launcher
- Sticky Jumper
Medic Weapons:
Sniper Weapons:
- Thunderbolt Sniper Rifle
- Purple Range Sniper Rifle
- Night Owl Sniper Rifle
- Low Profile SMG
- Woodsy Widowmaker SMG
Spy Weapons:
Multiple Class Weapons:
- Lightning Rod Shotgun
- Backwoods Boomstick Shotgun
- Black Dahlia Pistol
- Sandstone Special Pistol
- Red Rock Roscoe Pistol
Finished weapons
- Air Strike
- Ali Baba's Wee Booties
- Ambassador: Multiple Skins
- Amputator
- Ap-Sap
- Apoco-Fists
- Atomizer
- AWPer Hand
- Axtinguisher: Multiple Skins
- Baby Face's Blaster
- Backburner
- Back Scatter
- Back Scratcher
- B.A.S.E. Jumper
- Bat: Multiple Skins
- Bat Outta Hell
- Batsaber
- Battalion's Backup
- Bazaar Bargain
- Beggar's Bazooka
- Big Earner
- Big Kill
- Black Box: Multiple Skins
- Black Rose
- Blutsauger: Multiple Skins
- Bonesaw
- Bonk! Atomic Punch: Multiple Skins
- Bootlegger
- Boston Basher
- Bottle
- Brass Beast
- Bread Bite
- Buffalo Steak Sandvich
- Buff Banner: Multiple Skins
- Bushwacka
- Candy Cane
- Chargin' Targe: Multiple Skins
- Claidheamh Mòr
- Classic
- Cleaner's Carbine
- Cloak and Dagger
- Concheror
- Conniver's Kunai
- Conscientious Objector
- Cow Mangler 5000
- Cozy Camper
- Crit-a-Cola
- Crossing Guard
- Crusader's Crossbow: Multiple Skins
- Darwin's Danger Shield
- Dead Ringer
- Degreaser
- Detonator
- Diamondback
- Direct Hit
- Disciplinary Action
- Disguise Kit
- Electro Sapper: Multiple Skins
- Enforcer
- Enthusiast's Timepiece
- Equalizer
- Escape Plan
- Eureka Effect
- Eviction Notice
- Eyelander: Multiple Skins
- Family Business
- Fan O'War
- Fire Axe
- Fishcake
- Fists of Steel
- Fists
- Flame Thrower: Multiple Skins
- Flare Gun: Multiple Skins
- Flying Guillotine
- Force-A-Nature: Multiple Skins
- Fortified Compound
- Freedom Staff
- Frontier Justice: Multiple Skins
- Frying Pan
- Giger Counter
- Gloves of Running Urgently: Multiple Skins
- Golden Frying Pan
- Golden Wrench
- Grenade Launcher: Multiple Skins
- Gunboats
- Gunslinger
- Half-Zatoichi
- Ham Shank
- Hitman's Heatmaker
- Holiday Punch
- Holy Mackerel: Multiple Skins
- Homewrecker
- Horseless Headless Horsemann's Headtaker
- Huntsman: Multiple Skins
- Huo-Long Heater
- Invisibility Watch
- Iron Curtain
- Jag
- Jarate: Multiple Skins
- Killing Gloves of Boxing
- Knife: Multiple Skins
- Kritzkrieg
- Kukri
- L'Etranger
- Liberty Launcher
- Loch-n-Load
- Lollichop
- Loose Cannon
- Lugermorph
- Machina
- Mad Milk
- Manmelter
- Mantreads
- Market Gardener
- Maul
- Medi Gun: Multiple Skins
- Memory Maker
- Mutated Milk
- Natascha
- Necro Smasher
- Neon Annihilator
- Nessie's Nine Iron
- Nostromo Napalmer
- Original
- Overdose
- Pain Train
- PDA Build/Demolish Tool
- Persian Persuader
- Phlogistinator
- Pistol
- Pomson 6000
- Postal Pummeler
- Powerjack
- Power Up Canteen
- Pretty Boy's Pocket Pistol
- Quackenbirdt
- Quick-Fix
- Rainblower
- Razorback
- Red-Tape Recorder
- Rescue Ranger
- Reserve Shooter
- Revolver: Multiple Skins
- Righteous Bison
- Robo-Sandvich
- Rocket Launcher: Multiple Skins
- Sandman
- Sandvich: Multiple Skins
- Sapper
- Saxxy
- Scattergun: Multiple Skins
- Scorch Shot
- Scotsman's Skullcutter
- Scottish Handshake
- Scottish Resistance
- Self-Aware Beauty Mark
- Shahanshah
- Sharp Dresser
- Sharpened Volcano Fragment
- Short Circuit
- Shortstop
- Shotgun: Multiple Skins
- Shovel
- SMG: Multiple Skins
- Snack Attack
- Sniper Rifle: Multiple Skins
- Soda Popper
- Solemn Vow
- Southern Hospitality
- Splendid Screen
- Spy-cicle
- Sun-on-a-Stick
- Sydney Sleeper
- Syringe Gun
- Third Degree
- Three-Rune Blade
- Tomislav: Multiple Skins
- Tide Turner
- Toolbox
- Tribalman's Shiv
- Übersaw: Multiple Skins
- Ullapool Caber
- Unarmed Combat
- Vaccinator
- Vita-Saw
- Wanga Prick
- Warrior's Spirit
- Widowmaker
- Winger
- Wrangler: Multiple Skins
- Wrap Assassin
- Wrench: Multiple Skins
- Your Eternal Reward