KCL Collision Importer Switch

From GameBrew
KCL Collision Importer
Kclcollisionimporternx.png
General
AuthorKillzXGaming
TypeHack Utilities
Version1.94
LicenseMIT License
Last Updated2022/04/16
Links
Download
Website
Source

KCL is a common collision format used in various Nintendo games. This tool can export and create new .kcl files with .obj files to and from other 3D programs. The primary focus of this tool is Wii U and Switch support but older versions will work.

For those that use Switch Toolbox, it has been updated to use this library as well so it has the same support. This tool is for easier lightweight use and for those that cannot run the toolbox.

What this tool has over other existing tools is that this supports very high poly V2 KCL (which would either fall through in random spots in some tools or crash in others) along with a simple to use preset system users can define per game with different settings and materials.

The library has build options using both the net framework and net standard so cross platform net core apps can be developed using it.

Features

  • Supports all versions. GCN, WII, DS, 3DS Wii U, and Switch.
  • Supports multiple model subdivisions for V2 KCL (WiiU/Switch) allowing for high poly collision models.
  • Can go even higher than 65k polygons for V2 KCL (WiiU/Switch).
  • Can easily load and save KCL binaries, change endianness, version, etc.
  • Supports mapping material attributes by .obj files (COL_## for material name, ## is hex value).
  • KCL importer GUI which can load various game material and collision presets and export .obj files.

User guide

The project is comprised of:

  • KclImporter - A executable program used for importing and exporting collision models.
  • KclLibraryGUI - A library for gui handling importing and configuring material attributes.
  • KclRender - A 3D view displaying collision models and hit detection of octree boundings.
  • KclLibrary - The main collision library for handling the file binaries, hit detection, etc. Can be built using dot net core for cross platform.

KCL Collision Importer Tutorial.

Notes:

  • You must triangulate imported .obj files so your model is made of triangles only.
  • Wii U and Switch only support very high poly collisions Older platforms will still be limited to 16k polygons due to limitations of the file format.
  • Make sure the collision is scaled correctly. You shouldn't import a small collision and scale it in some map editor, that can cause lag.

Screenshots

kclcollisionimporternx2.pngkclcollisionimporternx3.pngkclcollisionimporternx4.png

Changelog

V1.94

  • Fix invalid format/float parse error for .obj importing.

V1.92

  • Split .obj faces by meshes from collision materials.

V1.91

  • Optimize .obj more fixing some collision issues.

V1.9

  • Fix multiple subdivisions not shifting offsets for the model octree key values. May fix falling through issues.

V1.7

  • Optimizations made to .obj to fix some division issues from dupe triangles.
  • Fix model octree loading.
  • Fix model octree order causing issues falling through the ground for advanced high poly division.

V1.4

  • Fix reading .obj with different floating separators (like commas) in certain cultures.

V1.3

  • Add little endian Mario Galaxy preset for 3D All Stars. Improve Galaxy 1 preset.

V1.2

  • Fix obj collision generation with NaN position values.

V1.1

  • Added support for Mario Galaxy and Mario 3D Land material presets (.ba files).

Credits

Library by Syroot & KillXGaming.

Thanks to MasterF0x for the first V2 KCL implimentation and exelix11 for some help with odyssey support.

Thanks to Syroot/Ray Koopa for the original library base.

External links

Advertising: