Hylian Toolbox  Version 1.7.1

Introduction

Thank you for taking the time to read this document. Hopefully it proves useful to you when you are using the tool. The new things are red.

Version History

Version 1.7.1

Version 1.7

Version 1.5

Version 1.4.1

Version 1.4

Version 1.2

Version 1.0

Initial release.

Table of Contents

  1. Controls and Modes
  2. Mesh Editing
  3. OBJ Importing
  4. OBJ Exporting
  5. Hierarchy Operations
  6. Animation Operations
  7. Map Editing
  8. Scene Editing and Map Injection

1.) Controls and Modes

Controls
Camera
Click + Drag MouseRotate Camera
Shift + Click + Drag MousePan Camera
WZoom In
SZoom Out
LLeft View
RRight View
TTop View
BBottom View
FFront View
Shift + BBack View
Shift + RReset Camera
 
Shortcut Keys / Hidden Features
0Go to first Display List
1Toggle Wireframe
U/INext/Previous Display List
TabNext Text-Box (when entering text)
MToggle Matrix Rendering
CToggle Back-face Culling (Maps only.)
HHide Selected Triangles
Shift + HUnhide Hidden Triangles

Additionally, many things will perform actions when clicked.
For example, clicking the left or right arrow
on this part of the interface will allow you to go to the previous or next
Display List in the file, respectively.


Modes
Once a model has been loaded, to the right of "View," there are three possible selections: Display Lists, Hierarchy, and Render All. Selecting Display Lists will allow you to cycle through the Display Lists of the file and edit them individually, Hierarchy will allow you to view and edit the hierarchy and animations of the file, and Render All will render all of the Display Lists at the same time.

Opening Files
To open an individual file, use File > Open Individual. This can open an individual ZOBJ file that you have saved on your computer, separate from a rom. To open a rom file, use File > Open ROM. The Browser tab lists the files and allows you to select whichever one you want to open directly from the rom. The Editor tab allows you to edit the file within the rom. It also applies to individually opened files. The only rom supported at this time is the Ocarina of Time Debug ROM. When you save, a new document by the name of the rom (ZELOOTMA.Z64_OFFSETS.txt, for example) will be generated in the same directory as the rom. It contains the new offsets of each ZOBJ file just in case you added data and it had to move the file. This is useful for editing the files within the rom via a hex editor.

2.) Mesh Editing

When a file is loaded, you will see two things listed under Mesh. They are Scale and Rotate. Select whichever one is suitable and enter whatever values will do the job. When doing so, axes will render that match the colors of the labled text areas.

If you are in Display List Mode, the one you are viewing will be edited. If you are in Hierarchy Mode, the one that is highlighted will be edited. To apply the scale or rotation to the Display List, click Apply. To cancel, click Cancel.

3.) OBJ Importing

Display List Importing
With a ZOBJ file open (either from the rom or as an individual file), go to File > Import OBJ. You will be prompted to select an OBJ file. Unless you are replacing Link's head or something, a little bit of hex editing is required, but it is simple.

Here are some things to keep in mind (new things are in red): Map Importing
With Hylian Toolbox's feature for importing OBJ files as maps, some (if not most or even all) of the work of collision editing can be done for you if you pay attention to this information and reference the following table:

Component/Group NameResult
Main Attributes (choose only one)
LadderThe collision will be a ladder.
LadderTopThe collision will be the top of the ladder for climbing down.
CrawlEnterThe collision will be the entrance to a crawlspace.
CrawlExitThe collision will be for crawling out of a crawlspace.
ClimbWallThe collision will be for a climbable vine wall.
FloorSinkLink will sink into the floor.
FloorLavaThe floor will damage Link. You can slow the damage by wearing the Goron Tunic. Footprints of fire are left wherever Link walks.
FloorDamageThe floor will damage Link. The Goron Tunic still slows the damage, but footprints of fire are not left behind.
DeathTouching the floor will reset the room. It is like falling into the lava in Death Mountain Crater.
IceLink will slide around on the floor.
Other Attributes (multiple can be used)
HookshotThe collision will be Hookshotable.
WallDamageThe collision will damage Link when he comes in contact with it. This is generally used for walls. When applied to floors, it only damages Link when he lands on them.
Sounds (choose only one)
Dirt
Dirt1
Dirt2
Dirt3
Dirt4
Sand
Stone
WetStone
ShallowWater
ShallowWater2The sound of this is lower-pitched than the above one.
Brush
LavaSound
WoodenPlank
PackedDirtWood
CeramicThis is generally used for ice.
LooseDirt

In Google SketchUp, individual objects are called "Components." It may vary from one 3D modeling program to the next. Either way, as long as you export them as OBJ Groups (this is a setting in Blender, but most programs do it by default), this is simple. When you create a component and you want it to be a climbable wall, simply name it "ClimbWall." If you have multiple different components that you want to have this attribute, you can name them "ClimbWall2" and so on.

Multiple attributes can also be set. If you want Link to be able to sink into the floor (FloorSink), you want it to sound like sand (Sand), and you want it to be Hookshotable (Hookshot), name the component FloorSink|Sand|Hookshot or include all of them back to back or separated by underscores or whatever you like.

When you import the OBJ file as the map's collision, the importer will recognize these OBJ Group Names and automatically do the work so you do not have to edit individual collision triangles.

Enabling Colors
Generally, colors darken the converted files and that is ugly, but if you use a grayscale texture for something and use OBJ settings to change the color of it, you can enable colors by creating a file in the same folder as Hylian Toolbox named Include_Colors.txt. This is more of an advanced user setting.

4.) OBJ Exporting

If a user goes to File and then Export OBJ while viewing a display list, a file named out.obj will be created in the directory of the program. If Export OBJ is chosen while viewing hierarchy, the object's default hierarchy will be exported as a single file still named out.obj.

5.) Hierarchy Operations

Cycling Through Limbs
When Hierarchy Mode is selected, you will see the object in its hierarchical state. Make sure the selected animation below "Animation" is set to "Hierarchy." This is how it looks with no rotations applied to any of the limbs. If you cycle through the animations, the hierarchy can still be edited. In a file without a hierarchy, you will be given the option of creating one. To cycle through the limbs, click the buttons next to the current limb ().

Assigning New Display Lists
The Display List of the selected limb will be highlighted if it has one. The offset to the limb's Display List will be displayed where you would normally cycle through Display Lists.

You can click the left and right arrows there to change the Display List assigned to the limb that is selected.

Repositioning Limbs
You can shift around the selected limb by either using the - and + buttons or modifying the values themselves under "Position."

Notice that the X, Y, and Z are colored. They are colored based on the axis of the selected limb so there is less confusion when shifting them, especially when modifying them during an animation.

Adding and Deleting Limbs
If you want to extrude a new limb from the currently selected limb, you click the "Add Child" button. The added limb is now the selected limb and is automatically set to have no Display List, so the first thing you may want to do is assign a Display List to it. Then, position it accordingly. You can add a child to this limb if you like, and a child to its child. If you want to add a child to a limb that already has a child, that works, too. For example, if you were creating a custom hierarchy, you would add three children to the torso: one for the left arm, one for the right arm, and one for the head. If you want to delete a limb you just added or any existing limb, click the "Delete" button to the right of the "Add Child" button. The child of that limb will taken on the position of the one you just deleted. When adding and deleting limbs, the animations are adjusted accordingly. Something important to remember is that you can only replace an object that has the same amount of limbs as the object you edit/create, so if your edited object has more or less limbs than the original, you cannot replace the original. Once we figure out how to use any number of limbs with any object in-game, this will no longer be an issue.

Matrices
In Hierarchy Mode, navigate to the limb that you will be adding matrices to. Click the "Matrix" button and it will prompt you to choose the limb to connect the currently selected limb to. The currently selected limb is the red one and the one that it is going to be connected to is green. Once you have them selected, click the "Go" button.

You will now see both Display Lists and a bunch of points. The goal is to connect the points of the Display List that corresponds to the red one to the Display List that corresponds to the green one. You can click the first point, the point to connect it to, and click the "Merge" button to do this. If you accidentally select the wrong point, click the "Clear" button to clear your selection. If you want to undo your changes and start over, you can click the "Back" button to go back to the hierarchy and the "Go" button again to go back to editing. If using the cursor to select points is not being very effective, try using the R, L, T, B, F, and Shift + B keys to set the camera to certain perspectives. If that does not help, you can navigate through the points with the "<" and ">" buttons and click the "Select" button to select the one that is highlighted in green. When you are finished, click the "Apply" button.

6.) Animation Operations

Cycling Through Animations
Much like cycling through limbs, there will be a left and right arrow followed by the offset to the current animation (unless the hierarchy is being viewed, in which case the text, "Hierarchy," will be displayed). You use the left and right arrows to go from one animation to the next. If animations are not available, you will be given the option of creating one.

Cycling Through Frames
The same way you cycle through animations, you will be able to cycle through the frames of the currently selected animation by using the left and right arrows to the right of the text that specifies the current frame out of the total frames (Frame 1/4, for example).

Rotating Limbs
In Hierarchy Mode, cycle through the limbs (as described in Hierarchy Operations) until you find the one that you want to rotate. Under Rotation, you can modify the rotation for each axis by either entering your own values or using the - and + buttons.

Like with everything else, the X, Y, and Z have been colored to match the axis of rotation.

Copying and Pasting Frames
You can click "Copy" to copy the current frame of the current animation. You can click "Paste" to paste the copied frame over any frame of any animation.

Creating and Deleting Animations and Frames
Once you have an animation selected, you can click "New Animation" to create a new animation. The program will jump to that animation. Limbs will have no rotations whatsoever, so if you do not want to start from scratch, you can copy and paste a frame from another animation. Clicking "Delete" will set the animation to be deleted. This can be undone just in case you accidentally clicked it, but once you click File > Save, the changes are applied and cannot be undone. Clicking "Add Frame" will add a new frame after the current frame. It will have the same rotation data as the current frame so you do not have to bother copying and pasting and can continue from there. You cycle to this new frame the same way you cycle through frames. To delete a frame, click "Delete." A word of warning is that, because animations are indexed in the files and indexing them the same way after editing an animation may not be the same (thus, the amount of data they take up may be more or less), the animation data will be moved to the end of the file, increasing the size of the file. This applies to both newly created animations as well as edited animations.

Link's Animations
To be able to view Link's animations, the files link_animetion.zdata and gameplay_keep.zdata must be located within the same directory as the program. All editing attributes apply to these animations the same as any other save for the exception that new animations cannot be added to these files. Likewise, old ones cannot be deleted. Be sure not to get this confused with the frames as new frames can be added to old animations.

Keyframes
When you have two animation frames and want to generate in-between frames, simply click the "Keyframe" button, specify the number of frames you want to generate, and click the "Apply" button.

Translations
Right next to "Rotation" (for the rotations of a limb), there is a "Translation" button. Click it to switch to the translation of the current animation frame. This controls the X, Y, and Z Positions of the object during the current frame of the animation.

7.) Map Editing

Editing Actors on a Map
Open a .zmap file.
Click an actor to select it.
The "-" and "+" buttons can be used to alter the location and rotation of it. You can also enter your own values.
Click and drag any arrow sticking out of an actor to move the actor along that axis.
Click the "Add Actor" button to add an actor.
Click the "Delete" button to delete the currently selected actor.
Click the "Edit Groups" button to launch Notepad and edit them. Close Notepad to continue using Hylian Toolbox.

Rotations
Multiply the degrees to rotate by 182.044444444. This is the rotation to use in the program. I will get around to making it use easier-to-read rotations later. For example, 90 Degrees * 182.044444444 = 16384.

Editing the Search Boundaries
Edit the number in ZLIMIT.txt to be lower if you want the program to run more quickly, but it seems to work well at 30000. The lower the number, the lower the search bounds when selecting an actor, so edit carefully.

8.) Scene Editing and Map Injection

Editing collision and water is easy! Editing water is straightforward, but collision could require some explaining. Here is how to edit collision and things relating to it:
Collision Effects
In "Groups" tab, click any triangle on the map to select the entire group that pertains to it. Multiple settings now arise.

Regrouping Triangles
If you want to separate certain triangles into their own group, switch to the "Triangles" tab. You will be able to select triangles (hold Shift to select multiple!). Click the Yes Button under "Put selected triangles into a new group?" in order to do so. You will automatically be switched back to the "Groups" tab and the group with the triangles you selected will already be selected for you to edit as described in the "Collision Effects" section above.

Map Injection Scene List (taken from wiki.spinout182.com)
000Deku Tree
001Dondogo's Cavern
002Jabu Jabu's Belly
003Forest Temple
004Fire Temple
005Water Temple
006Spirit Temple
007Shadow Temple
008Below the Well
009Ice Cavern
010Ganon's Tower (Second Part)
011Geruode Training Grounds
012Thieves' Hideout
013Ganon's Tower
014Ganon's Tower (Floor beneath boss chamber)
015Ganon's Tower Crumbling (Exit)
016Treasure Chest Shop
017Deku Tree Boss
018Dondogo Cavern Boss
019JabuJabu's Belly Boss
020Forest Temple Boss
021Fire Temple Boss
022Water Temple Boss
023Spirit Temple Middle Boss
024Shadow Temple Boss
025Second-To-Last Boss Ganondorf
026Ganondorf, Death Scene
027Market Entrance (Day)
028Market Entrance (Night)
029Market Entrance (Adult)
030Back Alley (Day)
031Back Alley (Night)
032Market (Day)
033Market (Night)
034Market (Adult)
035Temple of Time (Outside - Day)
036Temple of Time (Outside - Night)
037Temple of Time (Outside - Adult)
038Know-it-all Brothers
039House of Twins
040Mido's House
041Saria's House
042Kakariko Village House
043Back Alley Village House
044Kakariko Bazaar
045Kokiri Shop
046Goron Shop
047Zora Shop
048Kakariko Potion Shop
049Market Potion Shop
050Bombchu Shop
051Happy Mask Shop
052Link's House
053Puppy Woman's house in market
054Stables
055Impa's House
056Lake Hylia Labatory.
057Carpenter's Tent
058Dampe's Hut
059Great Fairy Fountain
060Small Fairy Fountain
061Magic Fairy Fountain
062Grottos
063Grave (1)
064Grave (2)
065Royal Family's Tomb
066Shooting Gallery
067Temple of Time Inside
068Chamber of Sages
069Castle Courtyard (Day)
070Castle Courtyard (Night)
071Cutscene Map
072Dampe's Grave
073Fishing Pond
074Zelda's Courtyard
075Bowling Alley
076Talon's House
077Lots'o Pots
078Granny's Potion Shop
079Final Battle against Ganon
080Skulltula House
081Hyrule Field
082Kakariko Village
083Graveyard
084Zora River
085Kokiri Forest
086Sacred Forest Meadow
087Lake Hylia
088Zora's Domain
089Zora's Fountain
090Gerudo Valley
091Lost Woods
092Desert Collusus
093Gerudo's Fortress
094Haunted Wasteland
095Hyrule Castle
096Death Mountain
097Death Mountain Crater
098Goron City
099Lon Lon Ranch
100Ganon's Tower (Outside)
101Collison Testing Arena
102Besitu
103Depth Test
104Stalfos Middle Room
105Stalfos Boss Room
106Dark Link Testing Area
107Beta Castle Courtyard
108Action Testing Room
109Item Testing Room