Difference between revisions of "User:Yukimono/Toolchain"

From owdev
Jump to: navigation, search
m (Information: Updated Blender addon link)
m (Version update)
Line 3: Line 3:
 
This toolchain is a series of '''unofficial''' command line tools used to work with Overwatch's formats, you need basic experience with the command prompt to fully use the tools. You can use the [[User:Yukimono/Toolchain/BAT|bat]] drag-and-drop presets to make the workflow easier.
 
This toolchain is a series of '''unofficial''' command line tools used to work with Overwatch's formats, you need basic experience with the command prompt to fully use the tools. You can use the [[User:Yukimono/Toolchain/BAT|bat]] drag-and-drop presets to make the workflow easier.
  
Latest Version: [https://ci.appveyor.com/api/buildjobs/ohxp64xykucb75dw/artifacts/dist%2Ftoolchain-release.zip v1.8.5.1] ([[User:Yukimono/Toolchain/Changelog/1.8.0.0|Changelog for 1.8.X.Y]])
+
Latest Version: [https://ci.appveyor.com/api/buildjobs/kxlsw0yxvr6kae3h/artifacts/dist%2Ftoolchain-release.zip v1.8.5.8] ([[User:Yukimono/Toolchain/Changelog/1.8.0.0|Changelog for 1.8.X.Y]])
  
 
OWMImporter for Blender: [https://ci.appveyor.com/api/buildjobs/tu4yeuoddxsj279o/artifacts/OWMImporter.zip OWMImporter for Blender, 1.0.4]
 
OWMImporter for Blender: [https://ci.appveyor.com/api/buildjobs/tu4yeuoddxsj279o/artifacts/OWMImporter.zip OWMImporter for Blender, 1.0.4]

Revision as of 00:31, 21 December 2016

Information

This toolchain is a series of unofficial command line tools used to work with Overwatch's formats, you need basic experience with the command prompt to fully use the tools. You can use the bat drag-and-drop presets to make the workflow easier.

Latest Version: v1.8.5.8 (Changelog for 1.8.X.Y)

OWMImporter for Blender: OWMImporter for Blender, 1.0.4

OWMImporter for Maya: OWMImporter for Maya

The toolchain requires .NET v4.6.0.

There is zero risk in using the tools, they do not communicate with your battle.net app in any way, no form of identity is taken or required.

The tool has a custom format, which is documented here

Setting up the Source Code for Editing

Average users can skip this section, as it only applies to programming.

You will need a copy of Visual Studio 2015 installed. If you don't have it, you can download Visual Studio Community for free, or purchase the full version for additional features.

  1. Download a copy of CASCExplorer into the src directory.
  2. Execute assemble.bat, this script will copy files from the CascLib.patch directory into the correct folders. These are modified files that the toolchain depends on.
  3. Open OverwatchToolchain.sln in Visual Studio, and begin editing.

OverTool

OverTool is a tool that works directly with the CASC filesystem to load relevant data in real time.

Usage:

 OverTool.exe [-LLang] OVERWATCH_FOLDER MODE [OPTS]

Mode t

The t option will load hero data and output a list of hero cosmetics with rarity and type.

Example:

 OverTool.exe C:\Overwatch t

Mode x

The x option will eXtract hero assets, such as skins, sprays and player icons to appropriate folders.

Usage:

 OverTool.exe overwatch_folder x output_folder [types [heroes [superoptions]]]

Examples:

Extract all sprays and icons

 OverTool.exe C:\Overwatch x C:\extract spray+icon

Extract all Tracer skins

 OverTool.exe C:\Overwatch x C:\extract skin tracer

Extract all Tracer skins without converting models

 OverTool.exe C:\Overwatch x C:\extract skin tracer +

Extract D.Va's White Rabbit and B.Va skin, Soldier 76's regular weapon, and Zenyatta's orb

 OverTool.exe C:\Overwatch x C:\extract skin "d.va=white rabbit=b.va+soldier: 76=classic|13C6+zenyatta=classic|B6C"

Superoptions

The format for this is

 ?TAMSC

Where:

  1.  ? = ModelTool format character (+ is "raw")
  2. T = Suppress Textures (capital = don't export textures, lowercase = default)
  3. A = Suppress Animations (capital = don't export animations, lowercase = default)
  4. M = Suppress Models (capital = don't export models, lowercase = default)
  5. S = Suppress Sounds (capital = don't export sounds, lowercase = default)
  6. C = Export Collision (capital = export collision models, lowercase = default, not all models have collision models)

Mode m

The m option will list map information

Usage:

 OverTool.exe overwatch_folder m

Mode s

The s option will list strings

Usage:

 OverTool.exe overwatch_folder s

Mode Z

The Z option will list keys

Usage:

 OverTool.exe overwatch_folder Z

Mode M

The M option will extract map data.

Usage:

 OverTool.exe overwatch_folder M output_folder [maps]

Examples:

Extract Hanamura

 OverTool.exe C:\Overwatch M C:\extract HANAMURA

Extract the Tutorial and Practice Range

 OverTool.exe C:\Overwatch M C:\extract TUTORIAL "PRACTICE RANGE"

Mode v

The v option will extract sounds by hero

Usage:

 OverTool.exe [-LLang] overwatch_folder v output_folder [hero names...]

Examples:

Extract All

 OverTool.exe C:\Overwatch v C:\extract

Extract Genji and Hanzo sounds

 OverTool.exe C:\Overwatch v C:\extract genji+hanzo

Extract Genji and Hanzo sounds in Japanese

 OverTool.exe -LjaJP C:\Overwatch v C:\extract genji+hanzo

APMTool

APMTool is a tool to search or list the contents of APM files. This is useful in reverse-searching Key indices.

Usage:

APMTool.exe OVERWATCH_FOLDER MODE

Mode must always start with a single character, valid modes:

Mode f

The "f" option sets the mode to "Find", it has the following sub-queries:

a[APM NAME] i[INDEX HEX] t[TYPE HEX] s[SIZE LESS THAN VALUE] S[SIZE GREATER THAN VALUE] n[INDEX WITHOUT IDENTIFIER HEX]

Example:

APMTool.exe C:\Overwatch f i30 t00C

Mode l

The "l" option sets the mode to "List" package contents, it has the followig sub-queries:

 p[PACKAGE KEY HEX] i[CONTENT KEY HEX]

Example:

APMTool.exe C:\Overwatch l pSOMEKEY

Mode c

The "c" option is a helper mode, it converts direct keys into an index + type. Example:

APMTool.exe c c 06E00000128CE602

Mode a

The "a" option is a helper mode, it displays all loaded APMs. Example:

 APMTool.exe C:\Overwatch a

Mode t

The "t" option is a helper mode, it displays all types (both in 12-bit and 16-bit) Example:

 APMTool.exe C:\Overwatch t

PackageTool

PackageTool is a tool to extract all files in a package.

Usage:

PackageTool.exe [-LLang] OVERWATCH_FOLDER EXTRACT_FOLDER LIST_OF_KEYS

Example:

PackageTool.exe C:\Overwatch C:\Extracted pSOMEKEY pANOTHERKEY
PackageTool.exe -LkoKR C:\Overwatch C:\Extracted pSOMEKEY pANOTHERKEY

ModelTool

ModelTool is a tool to convert model (00C) files into known formats.

Usage:

ModelTool.exe MODEL_FILE OUTPUT_TYPE [-t] [-c] [-L] [-l LOD] OUTPUT_FILE

Example:

ModelTool.exe 30.00C b -l 1 -l 255 30.xps
ModelTool.exe 30.00C o 30_all.obj

The "-l" flag sets which LODs to extract, you can have more than one.

The "-t" flag sets to export attachments

The "-c" flag sets to export collision models

The "-L" flag sets to export only the first LOD found

Supported output types are: OBJ (o), Binary XNALara/XPS (b), ASCII XNALara/XPS (a)

TextureTool

TextureTool is a tool to convert texture (004 and 04D) files into a DDS. Depending on the 004 file, the resulting DDS may be a DirectX10 DDS, or a Legacy DDS. The tool will try to output a Legacy DDS since it has wider support.

Usage:

TextureTool.exe OUTPUT MODE PATHS

Mode must always be a single character, valid modes:

Mode 1

The "1" option will convert single 004 files (without a known 04D file) Usage:

TextureTool.exe OUTPUT_DDS 1 004_FILE

Example:

TextureTool.exe C:\test.dds 1 000000000001.004

Mode 2

The "2" option will convert 004 files that have a 04D raw texture. Usage:

TextureTool.exe OUTPUT_DDS 2 004_FILE 04D_FILE

Example:

TextureTool.exe C:\test.dds 2 000000000001.004 000100000001.04D

Mode r

The "r" option will convert single 004 files (without a known 04D file) Usage:

TextureTool.exe OUTPUT_FOLDER r 004_PATH [04D_PATH]

04D_PATH is optional, if it's not present it will fail to convert 004 + 04D pairs. Example:

TextureTool.exe C:\test r 004 04D

Attribution

OWLib.dll is COM Visible.

Special thanks to Episoder and Id-daemon for help with the texture format and model format.

Special thanks to usernametoolo for help with OWMImporter and the map formats.

This toolchain uses CascLib from CASCExplorer with minor modifications (to prevent the library from creating "debug.log" and opening too many APM files).

This toolchain uses OpenTK.