Industrial Park (level editor)

From Heavy Iron Modding
Revision as of 08:20, 14 December 2018 by Battlepedia>Igorseabra4

Introduction

Industrial Park is a tool made by community member igorseabra4 in C# using SharpDX. It is an editor capable of opening a number of HIP/HOP files and display the level, with models and textures for level and objects, as well as edit some of the asset types. The program is still under development, so features are still planned; the latest release version is Preview 29 and the information on this page is up to date with it.

This tool is based off from, and shares a lot of its source code with another one of the creator's tools: Heroes Power Plant, a tool to edit levels in Sonic Heroes. Being also based on the RenderWare engine, both games share their model format. It also gave Industrial Park the convention of being named after a level in the game.

Game/Platform Compatibility

GameCube Xbox PS2 PC
Scooby-Doo: Night of 100 Frights Minimal support Minimal support Minimal support -
Spongebob Squarepants: Battle for Bikini Bottom Supported Supported Minimal support -
The Incredibles Supported Supported Minimal support Minimal support
The Spongebob Squarepants Movie Supported Supported Minimal support -
The Incredibles: Rise of the Underminer Minimal support Minimal support Minimal support Minimal support

Usage

Commands

Keyboard controls:

  • W, A, S, D: move view forward, left, backward, right
  • Shift + (W, S): move view up, down
  • Ctrl + (W, A, S, D): rotate view up, left, down, right
  • Q, E: decrease interval, increase interval (view move speed)
  • 1, 3: decrease rotation interval, increase rotation interval (view rotation speed)
  • C: toggles backface culling
  • F: toggles wireframe mode
  • G: open Asset Data Editor for selected assets
  • R: reset view
  • U: toggle UI Mode
  • V: cycle between gizmos
  • Z: toggle mouse mode
  • F1: displays the View Config box

Mouse controls:

  • Left click on an asset to select it
    • Ctrl + Left click to select multiple
  • Middle click and drag to rotate view
  • Mouse wheel to move forward/backward
  • Right click on screen to choose a template
  • Ctrl + Right click and drag to pan (move view up, left, down, right)

Mouse mode (Z): similar to a first person camera. The view rotates automatically as you move the mouse. Use the keyboard to move around.

Options

In the Options tab, you can choose a few settings.

  • Colors:
    • Reset: resets all colors to default.
    • Background: allows you to choose a new background color for the view.
    • Widget: allows you to choose a new color for unselected box widgets.
    • MVPT: allows you to choose a new color for unselected MVPT widgets.
    • TRIG: allows you to choose a new color for unselected TRIG widgets.
    • SFX: allows you to choose a new color for unselected SFX widgets.
    • Selection: allows you to choose a new color for selected widgets and objects.
  • No culling (C): toggles backface culling
  • Wireframe (F): toggles wireframe mode
  • Use Legacy Asset ID Format: this will disable using asset names in Asset ID fields and force you to use hex numbers only.
  • Name Display Mode: Choose how asset names will be displayed:
    • AssetName [AssetID] (default)
    • [AssetID] AssetName (alternate)
  • Associate HIP/HOP files: creates an association for HIP and HOP files so they'll open directly with Industrial Park.
  • About: display About box.

In the Display tab, you can choose which asset types are currently being displayed. You can also toggle Movement Preview and UI Mode (U).

View Config

The view config allows you to view and set Industrial Park's 3D view's current position, rotation, movement speed (separate for position and rotation), maximum draw distance and field of view.

View Config window

Projects

Industrial Park projects are a resource to help users with level editing. A project file is a text (JSON) which saves an open instance of the program, meaning it contains:

  • Opened HIP/HOPs and texture folders
  • View position, rotation, FOV, draw distance, speed
  • Settings sucha as wireframe, culling and custom colors
  • Which assets are currently visible

All of those are restored from the file, meaning you can quickly restore Industrial Park to a previous state.

  • New: closes the current project instance and resets Industrial Park to default.
  • Open: choose a project JSON to open.
  • Save: saves the current instance as a project JSON, overwriting the previous one. Does not save edits on HIP/HOP files on the Archive Editors.
  • Save As: saves the current instance as a new project JSON. Does not save edits on HIP/HOP files on the Archive Editors.
  • Auto-Save On Closing: automatically saves the currently open project JSON when closing Industrial Park.
  • Auto-Load On Startup: automatically loads the previously open project JSON when opening Industrial Park.

If Auto-Save On Closing is enabled and no project JSON is specified, a file called default_project.json in the same directory as Industrial Park will be created and used. Project files can be opened and edited in a text editor, where you can manually edit them if you want to, although I don't recommend doing this.

Archive Editor

The archive editor is the main way to edit HIP/HOP archives in Industrial Park. You can open any amount of Archive Editors you want to, and each can have one HIP and/or HOP file open. If you wish to edit multiple HIP/HOP files for a level, for example, you can open two Archive Editors each with one of the files. Also, opening a third one with boot.HIP will allow you to view the objects whose models are contained there (such as spatula, underwear and shiny objects). You can drag a HIP/HOP file into the program window to open it in a new Archive Editor.

Archive Editor window
  • File:
    • New: create a new empty HIP/HOP file in this Archive Editor. You'll be able to choose game and platform versions for the file, as well as choose the date which will be set in the headers (you can even type in your own text instead of the date!)
    • Open: choose a HIP/HOP file to open in this Archive Editor. If the file is from Scooby-Doo: Night of 100 Frights, a dialog will ask you to choose which platform that file corresponds to (GameCube, PS2, XBOX) as it's not possible to determine that from the file in that game.
    • Save: saves the currently open file and overwrites it.
    • Save As: allows you to pick a new destination to save the file.
    • Close: closes this Archive Editor and unloads the HIP/HOP file. This doesn't save the file.

Closing the Archive Editor through the X button will not close it, only hide it.

  • Edit:
  • Collapse Layers: This will merge all of the archive's layers in a way that there is only one layer of each type, keeping all assets. Layers will be ordered by type in the same order the game originally does.
    • Export Assets + INI: Exports the currently open archive into a folder structure and INI file, as in HipHopTool.
    • Import HIP Archive: Choose a HIP, HOP or Settings.ini file to import. All layers and assets from the selected file will be added to the current one. Layers will be ordered by type in the same order the game originally does. If an asset with the same ID is already present, you will be prompted whether to overwrite it or not, except for COLL, JAW, LODT, PIPT, SHDW and SNDI, all of which will be merged into one single asset.
    • Import Multiple Assets: Choose any amount of files to use as external data for assets and import them. This is useful for assets which are commonly from external editors, such as textures, models and sounds.
    • Export TXD Archive: Export all of the archive's RWTX assets into a single TXD file. This only works on GameCube HOPs.
    • Import TXD Archive: Choose a TXD file to import; rather than importing the entire archive, the tool will batch create one asset from each texture of the archive and import it as a RWTX asset. Existing ones with matching names/IDs will be replaced. This only works with GameCube TXDs.
  • Layer: assets in HIP/HOP archives are organized into layers. Each layer has a list of assets and if you're adding new assets you should add them to the appropriate layer (for example, models should go in a MODEL layer).
    • Layer Box: this will allow you to pick a layer and view its assets.
    • Layer Type: this will allow you to see and edit a layer's type.
    • Add: this will add a new layer to the archive.
    • Remove: this will delete the selected layer from the archive along with all its assets.
    • Move Layer Up: this will move the selected layer up in the list. This is useful as if you have Texture layers they must come before all others.
    • Move Layer Down: this will move the selected layer down in the list.
  • Assets: each asset is an individual in-game object with a type and function. You can click on an asset in the list to select it, or Ctrl + click to select multiple. Use the checkboxes next to the asset names to hide the asset from the view.
    • Show by type: this will allow you to see in the list only assets of a specific type, or all of them.
    • Find Asset: type an asset ID (preceded by 0x) or name here. If an asset with this ID or name is present, it'll be selected.
    • Template Focus: click on this to activate template placement focus for this Archive Editor.
    • Add (Ctrl + I): displays the Asset Header Editor, allowing you to create a new asset.
    • Duplicate (Ctrl + D): duplicates the selected asset(s). The new assets will be a copy with a new name and asset ID.
    • Copy (Ctrl + C): puts the selected assets on clipboard. You can paste them to a text file and save it, or paste in a different Archive Editor, for example.
    • Paste (Ctrl + V): pastes the assets from clipboard. You must have previously copied assets. If the asset already exists, it'll be given a new name and asset ID.
    • Remove (Delete): deletes the selected assets from the archive.
    • View: will move the view to the selected asset's position. For most assets, it will show the asset from a short distance, but for the CAM asset, it will place the view in the exact position it assumes ingame for that camera.
    • Export Raw: allows you to export an asset's raw data to a file. If multiple assets are selected, you'll be able to export them to a folder.
    • Edit Header (Ctrl + H): displays the Asset Header Editor, allowing you to edit the selected asset's header.
    • Edit Data (Ctrl + G): displays the Asset Data Editor, allowing you to edit the selected asset's internal data. This editor is only available for some of the assets; for the others, you must export the raw data and edit it externally in a hex editor. Pressing Ctrl + G on the Archive Editor or just G on the main form is a shortcut to this button.

Notes:

  • Right-click on the asset list box to show the context menu, which has the same functions as the buttons.
  • You can click on an asset in the view to select it in the Archive Editor, or Ctrl + click to select multiple.

Asset Header Editor

The Asset Header dialog will be shown when adding or editing an asset.

Asset Header Dialog

It allows you to edit the information of the asset's AHDR entry. Header data is the same for all asset types.

  • Asset Type: the type of the asset. If you change this, be sure to import new asset data.
  • Asset ID: the Asset ID of the asset. It'll be calculated automatically from the asset name using the BDKR hash algorithm, which is the same one used originally by the developers, but you can edit it afterwards (don't do this for RWTX assets!)
  • Flags: these are dependant on asset type. It's best if you do not change them.
  • Asset Name: the name of the asset. The name and asset ID are important for identifying your asset in the archive and referencing it from other assets.
  • Asset Filename: the path to the asset's data for external data. This was used only during development and is ignored, so there's no need to bother with this.
  • Checksum: this was used only during development and is ignored, so there's no need to bother with this.
  • Grab Template: for some assets, a template is available, allowing you to create a blank version of the asset without copying it or importing raw data. You can add your templates under Resources\Templates\<Game Name>\ if you want to (templates are unique to Scooby and BFBB but are shared between Incredibles, Movie Game and ROTU).
  • Import Raw Data: imports the asset's raw data from a file.

Asset Data Editor

The Asset Data editor will be shown when editing an asset's internal data.

Asset Data Editor for SIMPs
Asset Data Editor for TEXTs

This window has different properties for each asset, and sometimes looks completely different as it's adapted for each individual asset types's needs (such as CAM, SND, SNDS and TEXT). Not all of the asset's attributes are known, meaning you'll find a lot of fields labeled as unknown. This editor is not available for all asset types, and you can find the list for which it does work below.

The internal editor supports conversion between asset IDs and asset names. This means that, in any place you're supposed to type an asset ID, you can also type the name and the ID will be generated automatically from it; asset IDs will also be automatically replaced by names whenever possible. Type hexadecimal numbers starting with 0x to force use of an asset ID and not a name. There's also support for using the asset ID from a pasted asset; if you have an asset in your clipboard, pasting it in an asset ID field will collect the asset ID from it. This function can be turned off completely in the options: "Use Legacy Asset ID Format".

The button labeled "Find Who Targets Me" performs a backwards search of assets, finding which assets have a field or an event that target "me" (for example, if you perform this on a MODL, you'll find which MINFs, SIMPs or PLATs use it).

Event Editor

Event Editor

The Event Editor is the window that shows up when you click on the [...] box next to one of the Events field in the Asset Data Editor for Object Assets. It allows you to add, remove, copy, paste, reorder and edit events, and the arguments can be edited both as floats and as hex numbers, as there are events which read them as both.

Asset Types

The following table shows the current status of each asset type for Industrial Park. Some are editable, some can be used only for display, and some must be edited externally.

Asset Status Info
ALST Edit
ANIM Edit ANIM editor is very rudimentary as not all is known about the format.
ATBL Edit
BOUL Edit, Display from model
BSP Display BSP models will be displayed in the world. You can import new ones made in other editors/exporters, but Industrial Park doesn't have converting or editing features.
BUTN Edit, Display from model
CAM Edit, Display as widget The view button will place Industrial Park's view in the exact position the camera assumes ingame. The internal editor features functions to get the position and direction of the camera from Industrial Park's view. Be careful not to click these buttons when the view is not where you want the camera to be!
CNTR Edit
COLL Edit
COND Edit
CRDT Edit
CSNM Edit
DPAT Edit
DSCO Edit
DSTR Edit, Display from model
DYNA Edit, Display as widget Allows editing of almost all DYNA types in BFBB, but not TaskBox.
EGEN Edit, Display from model
ENV Edit
FLY Edit, Live preview
FOG Edit Allows editing of fog settings and colors. Click the [...] button next to the color value to show a color picker.
GRUP Edit Editor has feature to add all selected assets to group.
HANG Edit, Display from model
JAW Edit The SND/SNDS editor has a function to import external JAW data from a file for that sound and send it to the JAW asset.
JSP Display, Edit JSP models will be displayed in the world. You can import new ones made in other editors/exporters, but Industrial Park doesn't have converting features; the editor allows you to edit individual mesh colors and material names, but that's all.
LKIT Edit
LODT Edit
MAPR Edit
MINF Use for display, limited editing Doesn't allow you to edit all fields yet, but they will be used to find a MODL to display assets as.
MODL Display, Edit Assets with references to MINF or MODL will be displayed as that model in the world. You can import new DFFs made in other editors/exporters, but Industrial Park doesn't have converting features; the editor allows you to edit individual mesh colors and material names, but that's all.
MRKR Edit, Display as widget
MVPT Edit, Display as widget
PARE Edit
PARP Edit
PARS Edit
PEND Edit, Display from model
PICK Edit, Use for display PKUP assets will try to find their models from the references in the PICK asset, so for that, boot.hip must be opened in an Archive Editor. Otherwise, the PKUPs will be displayed as widgets.
PIPT Edit
PKUP Edit, Display from model
PLAT Edit, Display from model
PLYR Edit, Display as widget
PORT Edit
RWTX Edit You can edit the texture's filtering mode (mipmapping) and addressing mode (wrap, tile, clamp, mirror), but no other fields. Industrial Park doesn't have texture editing or previewing features (aside from being able to import and export a TXD for external editing, and a different way to display textures); it's recommended you use Magic.TXD for that. See the RWTX page for more info.
SFX Edit, Display as widget SFX assets have a minimum and a maximum radius. The maximum will be only displayed if the asset is selected.
SHDW Edit
SHRP Edit Allows editing of entries of types 3, 4, 5 and 6; hopefully, there are no other types.
SIMP Edit, Display from model
SND, SNDS Import raw When importing an SND or SNDS asset, you have two choices:
  • Trim the sound's header and send it to the SNDI asset. This will cut the header from your data and send it to the SNDI asset, which holds the headers of SND and SNDS.
  • Import the sound's data as it is. This will not mess with the SNDI asset.

The SND/SNDS editor also includes a function to import external JAW data and automatically send it to the JAW asset.

SNDI Edit
  • The SNDI asset can be edited individually, and can also be updated automatically from a SND or SNDS import.
  • If you already have your sound in its SND/SNDS but not here, you can also import the header individually by clicking the [...] button next to the 'SoundHeader' property (this will take just the header in case you select the entire sound file)
SURF Edit
TEXT Edit
TIMR Edit
TRIG Edit, Display as widget
UI Edit, Display from model/texture Texture UIs display properly, model UIs are slightly off.
UIFT Edit, Display from model/texture Texture UIs display properly, model UIs are slightly off, displaying as text is not supported yet.
VIL Edit, Display from model
VILP Edit

Gizmos

If moveable assets (all Placeable Assets, CAM, MRKR, MVPT, SFX and some types of DYNA) are selected, it's possible to transform these assets with a gizmo instead of typing coordinates in the asset data editor. There are 4 transform gizmos and you can press V to cycle between them, or right click and choose one in the context menu:

  • Position: affects the position of the object in the world. You can also move multiple assets at once.
  • Rotation: affects the yaw, pitch and roll of the object in the world. You can only rotate one asset at once.
  • Scale: affects the yaw, pitch and roll of the object in the world. You can scale multiple assets at once.
  • Position (Local): transforms the object's position locally, meaning the axes are not the world's X, Y and Z but the object's local (rotated) axes. You can only move one object at once with this gizmo.
Industrial Park's 4 gizmos

Displaying Textures

You may have noticed that, when you first open a level, it has no textures. Industrial Park cannot load textures directly from the RWTX assets contained in the HOP yet. To enable texture display, you must use Magic.TXD.

  1. In the Archive Editor in which you've opened the HOP file, click File -> Export TXD Archive. Choose a path and name to save your TXD as.
  2. Open your new TXD file in Magic.TXD and click Export -> Export All. Set the format to PNG and choose any folder to export all your textures to. Now close Magic.TXD.
  3. Now that you have all textures exported to a folder, you can use Industrial Park's Add Texture Folder button to load these textures in.

Asset Templates

Using templates is the fastest way to place new assets in the scene. You can either place new asset templates by right clicking the asset list in the Archive Editor and choosing the template you want to place, or you can right click on the view, choose one of the templates and use Shift + Right click to place the template in the scene (you must first activate template focus by clicking on "Template Focus OFF" in an Archive Editor, also make sure the correct layer for that asset type is selected). You can also make your own User Templates. Many default templates are composed of multiple assets (the Bus Stop template will place 7 different assets at once), but user templates can only have one.

Note: placing a template is not enough for the asset to function if an asset of the same class was not present in the level before (for example, placing a Fodder template in Bikini Bottom will crash the game unless you port the Fodder assets to Bikini Bottom's HOP file first).

The following template categories are currently available:

  • Stage Controllers: assets such as CNTR, COND and PORT, which you cannot see or touch and control the stage's functions.
  • Pickups and Tikis: Shiny objects, underwear, spatula, tikis. All assets are PKUP or VIL.
  • Enemies: all robots and jellyfish. All assets are VIL with MVPT and some have TRIG. Note: there are versions of Chuck, Monsoon and Slick with and without a trigger. If you add the versions without triggers, you must add the events which control them yourself, otherwise they will always be attacking the player.
  • Stage Items: buttons, teleport box, bus stop, throw fruits. The assets are of varying types.
  • Placeable: a few other assets with a position in the world (such as CAM and TRIG) and also empty/generic versions of Placeable Assets which you must set up yourself after placing.
  • Others: mostly HOP assets, such as PIPT, LODT, SNDI.

User Templates

Aside from the included templates, you can also create your own templates to place.

User Template Manager

The User Template Manager is accessed through the Options tab and the Copy and Paste buttons function the same as those in the Archive Editor: you can copy assets from the HIP/HOP and paste them here, and they'll be instantly available as templates. Double-click a template to rename it and press Delete to delete the template.

The template is identical to the asset that was copied (including all fields and events), and the only change made to it is that a new position will be assigned (only for assets with a position value; others will be simple copies).

User Templates are global and will be saved to Resources\UserTemplates and can be edited manually if you want to; however, be sure to keep the "[AssetType] TemplateName" name styling, or else the program will not be able to determine the template's asset type.

UI Mode

In the Display tab, or by pressing U, you toggle between normal view mode and UI Mode: this is intended for editing of menus through UI and UIFT assets. The view will become a 2D 640x480 screen (this aspect ratio can be forced through the UI Mode AutoSize button). Those assets can also be edited in normal mode, but it's possible to have an approximate preview of them with UI Mode.

Industrial Park in UI Mode

Movement Preview

Movement Preview mode (toggleable under Display tab) will attempt to preview the movement pattern of placeable assets (most notably, PLATs, VILs with MVPT and assets which use the Drivenby event). This function is still experimental.

Links