ice-hail

3.5.0 • Public • Published

Ice-Hail

Ice-Hail

Overview

Ice-Hail is a simple CLI tool to create valid Havok Collision data from a JSON definition file.
This format is used to define collision for objects, shrines and overworld maps.

In addition to this tool, you can also install a blender add-on to directly export collision.
It can be found here: Ice-Hail Blender Add-On

For the newest updates and other tools, check out my youtube channel: HailToDodongo

Installation

Install it globally with yarn or npm with:
npm install -g ice-hail

Note
You'll need at least NodeJS 11.6 to use this.

Usage

Ice-Hail comes with three commands: ice-hail-create, ice-hail-import and ice-hail-parse.
Each command can be called without params or with -h to get a help printed out.

If you are only interested in creating custom shrines, take a look at the Examples section of this readme.

Create

ice-hail-create is used to create Havok files from a JSON definition.
This will take a JSON as an input and creates a hkrb / hksc collision file.
With the -y flag it can also be yaz0 compressed.

A few example files can be found in the repo's integration tests at: Test-Files

Example usage:

ice-hail-create test.json
ice-hail-create -y another-test.json compressed-output.shkrb

Import

ice-hail-import is used to import 3D-Model files.
This will create a JSON file which can then be used to create a havok file.
The reason for creating a JSON is that it can be manually edited before creating a binary file.

Currently it only supports compound shapes (aka shrines and field).
An import for normal collision (e.g. actors) will be added later.

Example usage:

ice-hail-import -c testModel.obj

Note
You can add the -p flag to create a beautified JSON.

Parse [WIP]

The last command, ice-hail-parse, is used to create a JSON file from a binary havok file.
This can be used to read out any collision file in the game to some degree.
While it can be used to read, edit and then re-create the model again, the reader is still work-in-progress.
So in most cases, re-creating the model will not result in an identical file.

Example usage:

ice-hail-parse TwnObj_SomeNiceFile.hkrb

Note
Be sure that the file is not yaz0 encoded.

Examples

Shrines / Overworld

To create collision for custom shrines / overworld, you first need a 3D-Model of the collision as an .OBJ file, let's call it test.obj.

First, run the import and create command:

ice-hail-import -c test.obj
ice-hail-create -y test.json

Then rename the output test.shksc file to match the shrine file, which can be found in Physics\StaticCompound\CDungeon in the dungeon pack.

For overworld exports, you can also specify an offset parameter since the coordinates are absolute:

ice-hail-create --offset 1000,0,1000 test.json

Materials

Ice-Hail currently supports multiple materials, the material being used is set by the object name.
Since Ice-Hail supports multiple objects in one file, you can also mix them.
To use them in JSON or with the blender plugin, put the material name in the object name enclosed in square brackets.
For example, to use Material_Grass you could name one of your scene object SomeName [Grass].

A list of all, and mostly untested, Materials:

  • Material_Soil
  • Material_Stone
  • Material_Sand
  • Material_Metal
  • Material_WireNet
  • Material_Grass
  • Material_Wood
  • Material_Water
  • Material_Snow
  • Material_Ice
  • Material_Lava
  • Material_Bog
  • Material_HeavySand
  • Material_Cloth
  • Material_Glass
  • Material_Bone
  • Material_Rope
  • Material_CharControl
  • Material_Ragdoll
  • Material_Surfing
  • Material_GuardianFoot
  • Material_HeavySnow
  • Material_Unused0
  • Material_LaunchPad
  • Material_Conveyer
  • Material_Rail
  • Material_Grudge
  • Material_Meat
  • Material_Vegetable
  • Material_Bomb
  • Material_MagicBall
  • Material_Barrier
  • Material_AirWall
  • Material_Misc
  • Material_GrudgeSlow

Taken from: https://zeldamods.org/wiki/Materials

Credits

Ice-Hail code by HailToDodongo (Max Bebök).
Ported Yaz0 encoder by Shadsterwolf: BotW-Unpacker

Links and Stuff

Link to the BotW modding discord: https://discord.gg/NzHApcX

For Questions, ask me there (@HailToDodongo).


Disclaimer

This tool was created by reverse-engineering the game and does NOT contain any game files itself.
Please also respect hard working game developers and the law.
Only use ice-hail with your own games / legally created backups of your games, thank you!

Readme

Keywords

none

Package Sidebar

Install

npm i ice-hail

Weekly Downloads

1

Version

3.5.0

License

GPL-3.0

Unpacked Size

650 kB

Total Files

135

Last publish

Collaborators

  • hailtododongo