A tool to generate Navp files for Hitman: World of Assassination Scenes in the Glacier 2 Engine
You can run NavKit by opening NavKit.exe
. To use the View Navp in game and Scene Extraction features, you will need ZHMModSdk installed, and you will need to copy the included Editor.dll
to your Hitman 3\Retail\mods
folder. For the Scene Extraction feature, you will also need to have Blender installed.
Functions available are loading and saving Navp and Navp.json, loading Airg and Airg.json, loading and saving Obj, scene extraction, building Navp, and viewing navp in game.
- Open Hitman and launch a mission.
- Open NavKit and load a Navp file for that mission.
- Click the
Send Navp
button in NavKit.
- Open Hitman and start the mission you wish to extract.
- Open NavKit and click the Open Extract Menu button.
- Set your Hitman folder, Output directory, and Blender .exe file.
- Press the Extract button.
It may take anywhere from 1 minute to upwards of 30 minutes depending on the complexity of the mission being extracted, and whether the prims have already been extracted from the rpkg files.
NavKit performs the following series of steps to be able to generate Navp files.
- Run
glacier2obj.exe
to connect to the Editor server of the running Hitman game, and issue commands to: rebuild the entity tree, find the scene's brick tblu hashes, and send them back to NavKit. - Get the temp hashes for those bricks, and scan those bricks' dependencies to get the hashes for all Prim dependencies that are children of ALOCs and save them to
toFind.json
in the specified output folder. - Connect to the Editor server of the running Hitman game again, and issue a command with all of the ZGeomEntity / Prim hashes to get the transforms of all the ZGeomEntities and send them back to NavKit and save them to
prims.json
in the specified output folder. - Extract all of the needed Prim files from the rpkg files to the
prim
folder of the specified output folder. - Open the blender cli and run
glacier2obj.py
to generate an obj by importing all of the Prim files, copy them the number if times they are used in the scene, and transform each one according to what was sent by the game, and save it tooutput.obj
in the specified output folder. - Load
output.obj
from the specified output folder in NavKit. You can also save the obj file to another filename by pressing the Save obj button. - At this point, the build Navp section of the menu will be available and you can customize the parameters, then press build to call Recast to generate the Navmesh. Then you can save the Navmesh as a Navp or Navp.json file by pressing the Save Navp button.
NavKit is still a work in progress, and there may be glitches or issues with navp generation in the current version. If you encounter any problems while running NavKit please create an issue on this GitHub repo.
- Airg Generation
- Faster Scene generation
- Linux and MacOs support
You can also build NavKit yourself. To build NavKit:
- Clone this repository with the '--recurse-submodules' option
- Open in Visual Studio
- Cmake should load
- In the x64 command prompt make a build folder, cd into it, and run:
cmake -B . -S ..
- Then change back to the main directory and run
cmake --preset x64-debug
NoFate
Atampy25
Notex
Anthony Fuller
Recast team
rdil
2kpr
kercyx
Kevin Rudd
And everyone at the Glacier 2 discord!