Jump to content

Industrial Park (level editor): Difference between revisions

no edit summary
Battlepedia>Igorseabra4
No edit summary
Battlepedia>Igorseabra4
No edit summary
Line 1:
'''Industrial Park''' is a tool made by community member [[User:igorseabra4|igorseabra4]] in C# using SharpDX. It is an editor capable of opening a number of [[HIP|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 3637 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: [https://info.sonicretro.org/Heroes_Power_Plant Heroes Power Plant], a tool to edit levels in [https://info.sonicretro.org/Sonic%20Heroes 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.
Line 78:
In the Options tab, you can choose a few settings.
 
* '''View Config''' (F1): displays the View Config box.
* '''Add Texture Folder'''...: see [[#Displaying Textures|Displaying Textures]].
* '''Clear Textures''': clear textures from program.
 
* '''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
* '''Limit Render Distance''': when active, models will only be rendered when their distance from the view is under the setting in the [[LODT]] asset, or a default value of 100 if unspecified there
* '''Movement Preview''': when active, the progarm will attempt to preview the movement pattern of placeable assets (most notably, [[PLAT]]s, [[VIL]]s with [[MVPT]] and assets which use the [[Events#Drivenby|Drivenby]] event). This function is still experimental and the preview is not accurate to the game.
 
* '''Manage User Templates''': open the [[#User Templates|User Template Manager]]
* '''Templates: Persistent Shinies''': toggles whether shiny object and manliness point templates will be set as persistent or not (see [[Asset#Object Asset|Object Asset]]).
 
* '''Name Display Mode''': Choose how asset names will be displayed:
** AssetName [AssetID] (default)
** [AssetID] AssetName (alternate)
* '''Use Legacy Asset ID Format''': this will disable using asset names in Asset ID fields and force you to use hex numbers only. This is useful if, for some reason, you're working with multiple assets that have the same name but different asset IDs.
 
* '''Associate HIP/HOP files''': creates an association for HIP and HOP files on your registry 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 [[#UI Mode|UI Mode]] (U).
Line 122:
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. The Archive Editor has many functions and operations it can perform on a HIP/HOP archive, all of which are listed below:
 
[[File:Industrial Park Screenshot3.png|626px|thumb|center|Archive Editor window]]
 
* '''File''' menu:
** '''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''' menu:
** '''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.
** '''Verify Archive''': Will create and display a report that searches the archive for any potential errors, such as invalid data, fields left blank and references to non existing assets. It's meant as an aid for custom level development, to find possible errors and help correct them. Note that this function's output is not perfect; not everything in the report is necessarily an error, and not all errors which might be present in the archive will necessarily be reported.
** Export Assets + INI: Exports the currently open archive into a folder structure and INI file, as in [[HipHopTool]].
** '''Apply Scale''': Allows you to apply a X, Y, Z scaling on all assets in the archive. All assets with a X, Y, Z position in the world will have this position multiplied by the factors you specify, and the same for all assets with a X, Y, Z scale. This function will not work well on any of the original game's levels since it does not scale the JSP models.
** 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.
** '''Export Assets + INI''': Exports the currently open archive into a folder structure and INI file, asthe same output perfomed inby [[HipHopTool]].
** 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.
** '''Import HIP Archive''': Choose a HIP, HOP or Settings.ini file (from HipHopTool-style exported archive) 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 sameCollapse order the game originallyLayers doesfunction. 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. This is useful for [[Asset porting]].
** TXD Archive:
** '''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. Imported sounds will automatically be sent to the [[SNDI]].
*** Export (RW3): Export all of the archive's [[RWTX]] assets which contain .RW3 in their names into a single TXD file. This only works on GameCube HOPs.
** '''Import Models''': This function allows you to select OBJ, DAE or DFF files to import as new [[MODL]] assets. DFFs will be imported as they are, while OBJ and DAE will be converted to DFF. Models must contain vertex positions, vertex normals and texture coordinates for the import to work. DAE files must have been exported from 3ds max's exporter; OBJs can have been exported from any 3d model editor. This does not work with rigged models and any rigging present in the files will be discarded during the conversion.
*** Import (RW3): 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. The .RW3 suffix will be appended to the texture names. Existing ones with matching names/IDs will be replaced. This only works with GameCube TXDs. Use it on custom TXDs or TXD previously exported with the previous function.
** '''TXD Archive''':
*** Export (No RW3): Export all of the archive's [[RWTX]] assets which don't contain .RW3 in their names into a single TXD file. This only works on GameCube HOPs.
*** Import'''Export (No RW3)''': ChooseExport aall TXD file to import; rather than importingof the entire archive,'s the[[RWTX]] toolassets willwhich batchcontain create.RW3 onein assettheir fromnames each texture of the archive and import it asinto a RWTXsingle assetTXD Existing ones with matching names/IDs will be replacedfile. This only works withon GameCube TXDsHOPs.
*** '''Import (RW3)''': 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. The .RW3 suffix will be appended to the texture names. Existing ones with matching names/IDs will be replaced. This only works with GameCube TXDs. Use it on custom TXDs or TXD previously exported with the previous function.
*** '''Export (No RW3)''': Export all of the archive's [[RWTX]] assets which don't contain .RW3 in their names into a single TXD file. This only works on GameCube HOPs.
*** '''Import (No RW3)''': 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 [[#Asset Templates|template]] placement focus for this Archive Editor.
** '''Import''' (Ctrl + I): displays the [[#Asset Header Editor|Asset Header Editor]], allowing you to create a new asset from an external file.
** '''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|Asset Header Editor]], allowing you to edit the selected asset's header.
** '''Edit Data''' (Ctrl + G): displays the [[#Asset Data Editor|Asset Data Editor]], allowing you to edit the selected asset's internal data. This editor is only available for [[#Asset Types|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:
Line 189 ⟶ 192:
It allows you to edit the information of the asset's [[HIP#AHDR|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.
* '''Import Raw Data''': imports the asset's raw data from a file.
 
* Import Raw Data: imports the asset's raw data from a file.
 
====Asset Data Editor====
Line 215 ⟶ 217:
The Link List Editor is the window that shows up when you click on the <nowiki>[...]</nowiki> box next to one of the Links field in the Asset Data Editor for [[Object Asset]]s. It allows you to add, remove, copy, paste, reorder and edit [[links]].
 
*'''Source Event''': the [[event]] which triggers this link when sent to this asset.
*'''Destination Event''': the [[event]] sent by this link upon being triggered.
*'''Destination Asset''': the [[object asset]] to which the event is sent.
*'''Argument Asset''': the asset ID which is sent as a parameter, formerly the fifth parameter of the link.
*'''Source Check''': the link will only be triggered if the asset which sent the source event matches this one. If null (most cases), any asset which sends the source event will trigger this link. Formerly, this was the sixth parameter.
*'''Arguments''': the 4 float parameters of the event. Some events read this as asset IDs so the hex checkbox allows that. Previous versions of Industrial Park had 6 parameters, but 5 and 6 were moved to Argument Asset and Source Check (above).
 
====Asset Types====
Line 247 ⟶ 249:
||
|-
| align=center | [[BSP]], [[JSP]]
|| <span style="color:#FF7F00">Edit</span>, <span style="color:#0000FF">Display</span>
|| BSP and JSP models will be displayed in the world. You can import new ones made in other editors/exporters, but Industrial Park doesn'ts haveBSP/JSP convertingeditor orallows editingyou features.to:
* Edit individual mesh colors and material names (JSP only);
* Use the Export function to export the model as OBJ - the exported file can be imported in any 3d model editor and contains vertex colors. If you don't care about keeping them, you can use any 3d model editor's OBJ importer, but if you want to keep them, you must use the importvcolorobj MAXScript for 3ds max (it's included in the release, check the Resources folder). The model can also be exported as a raw BSP (BSP assets) or DFF (JSP assets);
* Import function grayed out as it hasn't been implemented yet.
Editing of the JSP asset in the JSPINFO layer is not supported.
|-
| align=center | [[BUTN]]
Line 309 ⟶ 315:
| align=center | [[FOG]]
|| <span style="color:#007F00">Edit</span>
||
|| Allows editing of fog settings and colors. Click the <nowiki>[...]</nowiki> button next to the color value to show a color picker.
|-
| align=center | [[GRUP]]
Line 326 ⟶ 332:
|| <span style="color:#007F00">Edit</span>
|| 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.
|-
| align=center | [[JSP]]
|| <span style="color:#0000FF">Display</span>, <span style="color:#FF0000">Edit</span>
|| 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.
|-
| align=center | [[LITE]]
Line 352 ⟶ 354:
|-
| align=center | [[MODL]]
|| <span style="color:#0000FFFF7F00">DisplayEdit</span>, <span style="color:#FF00000000FF">EditDisplay</span>
|| 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'ts have converting features; theMODL editor allowsis yousimilar to editthe individualBSP/JSP mesh colorseditor and materialallows names,you but that's all.to:
* Edit individual mesh colors and material names;
* Use the Export function to export the model as OBJ. The exported file can be imported in any 3d model editor. This functions the same as the BSP/JSP exporter (explained above) and thus the exported OBJ will contain vertex colors, but they are usually empty on MODL assets, so importing with or without them will likely not make a difference. The model can also be exported as a raw DFF;
* Use the Import function to select an OBJ, DAE or DFF file to import. DFFs will be imported as they are, while OBJ and DAE will be converted to DFF. The model must contain vertex positions, vertex normals and texture coordinates for the import to work. DAE files must have been exported from 3ds max's exporter; OBJs can have been exported from any 3d model editor. This does not work with rigged models and any rigging present in the file will be discarded during the conversion.
|-
| align=center | [[MRKR]]
Line 487 ⟶ 492:
|| <span style="color:#007F00">Edit</span>
||
|-
|}
 
* Assets which [[links]] (but not other fields) can be edited: [[CCRV]], [[DTRK]], [[DUPC]], [[GRSM]], [[LOBM]], [[NGMS]], [[PGRS]], [[RANM]], [[SDFX]], [[SLID]], [[SPLN]], [[SSET]], [[SUBT]], [[TPIK]], [[TRWT]], [[UIM]], [[ZLIN]].
* Assets which editing internally is not supported: [[ATKT]], [[BINK]], [[CSN]], [[CSSS]], [[CTOC]], [[DEST]], [[MPHT]], [[NPCS]], [[ONEL]], [[RAW]], [[SPLP]], [[TEXS]], [[WIRE]].
||* Allows editingMany of fogthe settingsassets and(such as FOG) have values which are RGBA colors. ClickIn those asset editors, click the <nowiki>[...]</nowiki> button next to the color value to show a color picker.
* Note: this table applies only for Battle For Bikini Bottom; some asset types have different formats through the games and are not supported (for example, SHRP in Movie).
 
====Gizmos====
IfSome moveableasset assetstypes (allhave [[Placeablea Asset]]s,3D [[CAM]],transformation [[MRKR]](position, [[MVPT]]rotation, [[SFX]]scale) andto someplace typesthem ofin [[DYNA]])the areworld. selected, itIt's possible to transform thesethose assets with a gizmo instead of typing the coordinates in the asset data editor. ThereThe gizmos will affect the selected objects; there are 4 gizmosmodes and you can press V to cycle between them, or right click and choose one in the context menu:
 
{| class="wikitable sortable"
* Position: affects the position of the object in the world. Red, green and blue pyramids correspond to X, Y and Z axes. You can also move multiple assets at once.
|+
* Rotation: affects the yaw, pitch and roll of the object in the world. Red, green and blue tori (toruses) correspond to yaw, pitch and roll rotation axes. You can only rotate one asset at once.
! Gizmo Type
* Scale: affects the scale of the object in the world. Red, green and blue boxes correspond to X, Y and Z axes, and the white box in the center will scale all 3 axes at once. You can scale multiple assets at once.
! Description
* 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. Red, green and blue pyramids correspond to X, Y and Z axes. You can only move one object at once with this gizmo.
! Works On
|-
| align=center | Position
*|| Position: affectsAffects the position of the object in the world. Red, green and blue pyramids correspond to X, Y and Z axes. You can also move multiple assets at once.
|| All [[Placeable Asset|Placeable asset]]s, [[CAM]], [[LITE]], [[MRKR]], [[MVPT]], [[SFX]], [[DYNA]] types (Effect:Lightning, Pointer, Ring, Teleport, Vent and all Enemy:SB subtypes).
|-
| align=center | Rotation
*|| Rotation: affectsAffects the yaw, pitch and roll of the object in the world. Red, green and blue tori (toruses) correspond to yaw, pitch and roll rotation axes. You can only rotate one asset at once.
|| All [[Placeable Asset|Placeable asset]]s, [[DYNA]] types (Pointer, Ring, Vent and all Enemy:SB subtypes).
|-
| align=center | [[JSP]]Scale
*|| Scale: affectsAffects the scale of the object in the world. Red, green and blue boxes correspond to X, Y and Z axes, and the white box in the center will scale all 3 axes at once. You can scale multiple assets at once.
|| Affects scale on [[Placeable Asset|Placeable asset]]s except [[TRIG]], [[DYNA]] types (Ring and all Enemy:SB subtypes); for [[TRIG]], [[MVPT]] and [[SFX]] this gizmo will affect the radius property instead of the scale
|-
| align=center | Position (Local)
*|| Position (Local): transformsTransforms the object's position locally, meaning the axes are not the world's X, Y and Z but the object's local (rotated) axes. Red, green and blue pyramids correspond to X, Y and Z axes. You can only move one object at once with this gizmo. This is available for assets which have both position and rotation values.
|| Assets for which both Position and Rotation gizmos work; on others, will act like the normal Position gizmo.
|}
 
[[File:Industrial Park Screenshot10.png|460px|thumb|center|Industrial Park's 4 gizmos]]
Line 553 ⟶ 576:
* [https://github.com/igorseabra4/IndustrialPark Source code on GitHub]
* [https://www.youtube.com/playlist?list=PLuDjCkCsPEiPtXh4a57HXBZVErwd916SY Playlist of video tutorials covering various subjects, including Industrial Park]
* [https://drive.googlegithub.com/driveigorseabra4/folders/1_8GZKJ_MlkW9RRn2gUTP1VzMCN01aci7 ContainsIndustrialPark-EditorFiles Editor Files such as Enemiesenemies, Commoncommon Assetsassets, NPCs and some other things that are useful for level editing]
* [http://www.mediafire.com/file/on60366jfzdd8i6/textures.zip/file Zip file with all of the textures already extracted for Battle for Bikini Bottom]
* [https://drive.google.com/drive/folders/1_8GZKJ_MlkW9RRn2gUTP1VzMCN01aci7 Contains Editor Files such as Enemies, Common Assets, NPCs and some other things that are useful for level editing]
[[Category:Modding]] [[Category:Tools]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.