OniSplit: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (→‎OniSplit commands: Fixed format)
(somewhat tighter now)
Line 1: Line 1:
[[Category:Modding tools]]
'''OniSplit''', written by Neo, is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It does the work of splitting and recombining Oni's data files.  But it also does much more, such as extracting and creating textures, 3D and .xml files.
'''OniSplit''', written by Neo, is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It does the work of splitting and recombining Oni's data files.  But it also does much more, such as extracting and creating textures, 3D and .xml files.


===Export/Import textures===
==Getting it==
To export a single TXMP
  onisplit -extract:png txmp_dir ..\GameDataFolder\level0_Final\TXMPBOSS1talking.oni
To export all the [[TXMP]] files:
  onisplit -extract:png txmp_dir ..\GameDataFolder\level0_Final.dat
TGA and DDS are also supported using -extract:tga and -extract:dds.
 
To import image files:
  onisplit -create:txmp ..\GameDataFolder\level0_Final [options] source_image_file
where options can be
  -nouwrap - set the "U wrapping disabled" flag
  -nowwrap - set the "V wrapping disabled" flag
  -format:bgr555 (or dxt1) for most of the stuff
  -format:bgr32 for skyboxes
  -format:bgra4444 for transparent/reflective stuff (in a couple of places bgra5551 is used but probably it's not big deal if bgra4444 is used instead)
  -genmipmaps - generate mipmaps if they are not already present in the source file and if the source file is not dxt1 compressed
 
Example:
  onisplit -create:txmp ..\GameDataFolder\level0_Final -format:bgr555 -genmipmaps tga\concrete.tga
To batch process a folder of image files:
  onisplit -create:txmp ..\GameDataFolder\level0_Final -format:bgr555 -genmipmaps tga\*.tga
source_image_file can be dds or tga. "Color indexed" and "black and white" tga files are not supported currently. Other image file formats (png, jpg, bmp, tif) may work depending on Mono/.NET support for them.
onisplit will automatically prepend TXMP to the output file name if the source file name does not start with TXMP already.
 
For TXMP files that contain envmaps:
  onisplit -create:txmp ..\GameDataFolder\level0_Final -format:bgra4444 -genmipmaps -envmap:envmapname imagefile.tga
The envmap name can have the TXMP prefix but it is added automatically if missing.
 
===Export/Import 3D models===
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can all be exported to the OBJ file format:
  onisplit -extract:obj dest_dir ..\GameDataFolder\level0_Final\M3GMnotfound.oni
  onisplit -extract:obj dest_dir ..\GameDataFolder\level0_Final\ONWCw1_tap.oni
  onisplit -extract:obj dest_dir ..\GameDataFolder\level0_Final\ONCCbarabus.oni
Or for a total export:
  onisplit -extract:obj dest_dir ..\GameDataFolder\level0_Final.dat
Importing obj files:
  onisplit -create:m3gm ..\GameDataFolder\level0_Final TCTF_Shotgun.obj
For importing obj files the obj file must only contain triangles so when exporting a model from a 3D design tool it needs to be triangulated. If the obj file uses more than one texture then only one will be taken into consideration. If the obj file does not contain a texture or someone wants to use a different one then the texture name to be used can be specified with -tex option:
  onisplit -create:m3gm ..\GameDataFolder\level0_Final -tex:TCTF_Shotgun TCTF_Shotgun.obj
Just like in -envmap option case the texture name can start with TXMP but it is not required.
Note that in both -envmap and -tex cases a .oni file is not created for the specified texture. The .oni file for that texture must be create separately.
 
'''For TRBS files'''
 
To export an ONCC or TRBS file to Collada format:
  onisplit -extract:dae dest_dir ..\GameDataFolder\level0_Final\ONCCkonoko_generic.oni
This will produce an ONCCkonoko_generic.dae collada file in the directory dest_dir plus the tga texture files used by the specified character.
 
Note: Blender's Collada importer/exporter is buggy, so you will need to add the options -noanim and -zup when extracting collada files for use with Blender:
  onisplit -extract:dae dest_dir -noanim -zup ..\GameDataFolder\level0_Final\ONCCkonoko_generic.oni
-noanim prevents the export of the default idle animation. That's needed because Blender doesn't import animated objects correctly.
-zup exports a collada file with a coordinate system where Z axis points up instead of the default (Y up). This is needed because Blender uses Z up but the importer gets it wrong and convert to something else.
 
To create a TRBS file, use the following command:
  onisplit -create:trbs ..\GameDataFolder\level0_Final ONCCkonoko_generic.dae
This will create the TRBSkonoko_generic.oni file in dest_dir. 
 
Options include
  -normals autogenerate normals.
  -cel generate a shell to give the effect of cel shading.
 
Example
  onisplit -create:trbs ..\GameDataFolder\level0_Final -normals ONCCkonoko_generic.dae
 
For more detailed information about importing characters, please this page: [[AE:Importing character models]]
 
===Export/Import xml===
Currently xml export/import is limited to files that do not have raw/sep parts.  Some files that currently work are [[ONCC]], [[TRAC]] and [[TRMA]]. The ability to modify these files in a text editor opens the door to easily changing character parameters, combat moves and textures without resorting to hex editing.
 
To export a file to .xml
  onisplit -extract:xml xml_dir ..\GameDataFolder\level0_Final\ONCCstriker_hard_3.oni
 
To import an .oni from .xml file
  onisplit -create ..\GameDataFolder\level0_Final ONCCstriker_hard_3.xml
 
===OniSplit commands===
A list of commands can be found be entering OniSplit -help
       
        -export <directory>            Export a Oni .dat file to directory
        -import <directory>            Import a Oni .dat file from directory
                                        Target file format is determined from source files (when possible)
        -import:sep <directory>        Import a Oni .dat file from directory
                                        Create a .dat file that uses .raw and .sep binary files (Mac and PC Demo)
        -import:nosep <directory>      Import a Oni .dat file from directory
                                        Create a .dat file that uses only .raw binary file (PC)
 
        -extract:dds <directory>        Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format
        -extract:tga <directory>        Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format
        -extract:png <directory>        Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format
        -extract:wav <directory>        Extracts all sounds (SNDD) from a Oni .dat/.oni file in WAV format
        -extract:aif <directory>        Extracts all sounds (SNDD) from a Oni .dat/.oni file in AIF format
        -extract:txt <directory>        Extracts all subtitles (SUBT) from a Oni .dat/.oni file in TXT format
        -extract:obj <directory>        Extracts all M3GM and ONCC instances to Wavefront OBJ files
        -extract:dae <directory>        Extracts all M3GM and ONCC instances to Collada files
        -extract:xml <directory>        Extracts all instances to XML files
 
        -create:txmp <directory> [-genmipmaps] [-nouwrap] [-novwrap] [-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1] [-envmap:texture_name] image_file
        -create:m3gm <directory> [-tex:texture_name] obj_file
        -create:trbs <directory> dae_file
        -create:subt <directory> txt_file
        -create <directory> xml_file    Creates an .oni file from an XML file
 
        -copy <directory>              Copy an exported .oni file and its dependencies to directory
        -move <directory>              Move an exported .oni file and its dependencies to directory
        -move:overwrite <directory>    Move an exported .oni file and its dependencies to directory
                                        Overwrites any existing files
        -move:delete <directory>        Move an exported .oni file and its dependencies to directory
                                        Deletes files at source when they already exist at destination
        -deps                          Get a list of exported .oni files the specified files depends on
        -version                        Print OniSplit versions
 
 
 
Note: For Mac users the command is:
 
  mono onisplit.exe (Also change every \ to /)
 
===Download links===
===Download links===
* [http://edt.oni2.net/OS/OniSplit_v0.9.14.zip Latest version of OniSplit v0.9.14]<br>
* Latest version of OniSplit: [http://edt.oni2.net/OS/OniSplit_v0.9.14.zip v0.9.14]<br>


===Requirements===
===Requirements===
OniSplit requires .NET for PC and the mono framework for Mac OS X.
OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.


* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en .NET]
* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en .NET 2.0]
* [ftp://www.go-mono.com/archive/1.2.6/macos-10-universal/6/MonoFramework-1.2.6_6.macos10.novell.universal.dmg Latest version of mono (requires OS X 10.4+)]
* [ftp://www.go-mono.com/archive/1.2.6/macos-10-universal/6/MonoFramework-1.2.6_6.macos10.novell.universal.dmg Latest version of mono (requires OS X 10.4+)]
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]


[[Category:Modding tools]]
 
----
==Using it==
The following actions are listed when calling OniSplit with the <tt>-help</tt> option (another informative option is <tt>-version</tt>)
:The command line must be preceded by either <tt>OniSplit.exe</tt> (Windows) or <tt>mono OniSplit.exe</tt> (Mac OS)
::If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.
:::On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.
====Conversion between .dat and .oni====
{|
|<tt>-export <target directory> <source file></tt>||Exports source file (.dat) to target directory
|-
|<tt>-import <source directory> <target file></tt>||Imports target file (.dat) from source directory; tries to get target file format from source SNDD
|-
|<tt>-import:sep <source directory> <target file></tt>||Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)
|-
|<tt>-import:nosep <source directory> <target file></tt>||Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)
|}
====Management of .oni files====
Unless mentioned otherwise, the filename field supports wildcards ("*").
:OniSplit consistently detects and manages "dependencies" of .oni files.
::The dependencies of a file are looked up in its folder and subfolders.
{|
|<tt>-deps <filenames></tt>||Displays a list of .oni files that the specified .oni file depends on
|-
|<tt>-copy <target directory> <filenames></tt>||Copies .oni file and its dependencies to target; skips file if it already exists at destination
|-
|<tt>-move <target directory> <filenames></tt>||Moves an .oni file and its dependencies to target; skips file if it already exists at destination
|-
|<tt>-move:overwrite <target directory> <filenames></tt>||Moves an .oni file and its dependencies to target; overwrites any existing .oni files
|-
|<tt>-move:delete <target directory> <filenames></tt>||Moves an .oni file and its dependencies to target; doesn't overwrite; deletes source files
|}
====Conversion between .oni/.dat and 3rd party formats====
=====Textures=====
Unless mentioned otherwise, source filenames support wildcards. See [[AE:ModTXMP|HERE]] for a detailed sorta tutorial.
{|
|<tt>-extract:dds <target directory> <filenames></tt>||Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format
|-
|<tt>-extract:tga <target directory> <filenames></tt>||Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format
|-
|<tt>-extract:png <target directory> <filenames></tt>||Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format
|-
|align=right|<tt>-create:txmp <targer directory> [-genmipmaps] [-nouwrap] [-novwrap]<br><nowiki>[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]</nowiki><br>[-envmap:texture_name] <filename></tt>
|valign=top|Creates .oni file in target directory from source image
|}
The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.
=====Models=====
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can be exported to the Wavefront .obj and COLLADA .dae formats. For details see [[AE:Importing character models|HERE]] and [[AE:Importing weapon models|HERE]]
{|
|<tt>-extract:obj <target directory> <filenames></tt>||Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files
|-
|<tt>-extract:dae <target directory> <filenames></tt>||Extracts all M3GM, ONWC and ONCC instances to Collada files
|-
|<tt>-create:m3gm <target directory> [-tex:texture_name] <filename></tt>||Creates a TRBS .oni in target directory from an .obj file
|-
|<tt>-create:trbs <target directory> [-cel] [-normals] <filename></tt>||Creates a TRBS .oni in target directory from a .dae file
|}
The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.
:TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see [[AE:Importing character models|HERE]] for details.
::Imported geometry must only contain triangles. See [[AE:Importing character models|HERE]] for additional options (e.g., cel-shading)
=====Misc=====
Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.
{|
|<tt>-extract:wav <target directory> <filenames></tt>||Rips all SNDD as .aif into target folder from source .dat or .oni
|-
|<tt>-extract:aif <target directory> <filenames></tt>||Rips all SNDD as .aif into target folder from source .dat or .oni
|-
|<tt>-extract:txt <target directory> <filenames></tt>||Rips all SUBT as .txt into target folder from source .dat or .oni
|-
|<tt>-create:subt <target directory> <filename></tt>||Creates a SUBT .oni file in target folder from a .txt file
|}
=====XML=====
One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.
::Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for [[ONCC]], [[TRAC]] and [[TRMA]].
:::For detailed examples and tutorials, see [[AE:XML|HERE]]
{|
|<tt>-extract:xml <target directory> <filenames></tt>||Extracts all instances to XML files
|-
|<tt>-create <target directory> <filename></tt>||Creates an .oni file in the target directory from an XML file
|}

Revision as of 18:03, 30 May 2008

OniSplit, written by Neo, is an integral part of the Anniversary Edition and an essential modding tool on its own. It does the work of splitting and recombining Oni's data files. But it also does much more, such as extracting and creating textures, 3D and .xml files.

Getting it

Download links

  • Latest version of OniSplit: v0.9.14

Requirements

OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.



Using it

The following actions are listed when calling OniSplit with the -help option (another informative option is -version)

The command line must be preceded by either OniSplit.exe (Windows) or mono OniSplit.exe (Mac OS)
If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.
On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.

Conversion between .dat and .oni

-export <target directory> <source file> Exports source file (.dat) to target directory
-import <source directory> <target file> Imports target file (.dat) from source directory; tries to get target file format from source SNDD
-import:sep <source directory> <target file> Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)
-import:nosep <source directory> <target file> Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)

Management of .oni files

Unless mentioned otherwise, the filename field supports wildcards ("*").

OniSplit consistently detects and manages "dependencies" of .oni files.
The dependencies of a file are looked up in its folder and subfolders.
-deps <filenames> Displays a list of .oni files that the specified .oni file depends on
-copy <target directory> <filenames> Copies .oni file and its dependencies to target; skips file if it already exists at destination
-move <target directory> <filenames> Moves an .oni file and its dependencies to target; skips file if it already exists at destination
-move:overwrite <target directory> <filenames> Moves an .oni file and its dependencies to target; overwrites any existing .oni files
-move:delete <target directory> <filenames> Moves an .oni file and its dependencies to target; doesn't overwrite; deletes source files

Conversion between .oni/.dat and 3rd party formats

Textures

Unless mentioned otherwise, source filenames support wildcards. See HERE for a detailed sorta tutorial.

-extract:dds <target directory> <filenames> Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format
-extract:tga <target directory> <filenames> Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format
-extract:png <target directory> <filenames> Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format
-create:txmp <targer directory> [-genmipmaps] [-nouwrap] [-novwrap]
[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]
[-envmap:texture_name] <filename>
Creates .oni file in target directory from source image

The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.

Models

M3GMs, ONWCs, ONCCs can be exported to the Wavefront .obj and COLLADA .dae formats. For details see HERE and HERE

-extract:obj <target directory> <filenames> Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files
-extract:dae <target directory> <filenames> Extracts all M3GM, ONWC and ONCC instances to Collada files
-create:m3gm <target directory> [-tex:texture_name] <filename> Creates a TRBS .oni in target directory from an .obj file
-create:trbs <target directory> [-cel] [-normals] <filename> Creates a TRBS .oni in target directory from a .dae file

The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.

TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see HERE for details.
Imported geometry must only contain triangles. See HERE for additional options (e.g., cel-shading)
Misc

Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.

-extract:wav <target directory> <filenames> Rips all SNDD as .aif into target folder from source .dat or .oni
-extract:aif <target directory> <filenames> Rips all SNDD as .aif into target folder from source .dat or .oni
-extract:txt <target directory> <filenames> Rips all SUBT as .txt into target folder from source .dat or .oni
-create:subt <target directory> <filename> Creates a SUBT .oni file in target folder from a .txt file
XML

One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.

Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for ONCC, TRAC and TRMA.
For detailed examples and tutorials, see HERE
-extract:xml <target directory> <filenames> Extracts all instances to XML files
-create <target directory> <filename> Creates an .oni file in the target directory from an XML file