Skip to content

dangarfield/kujata

 
 

Repository files navigation

Logo

kujata

Translates Final Fantasy 7 assets to web-friendly formats like JSON and glTF

Current Features

  • Translate FF7 field character models and animations (char.lgp) to JSON and glTF

    • battle model support coming soon
    • reverse translation (glTF-to-ff7) coming soon
  • Translate FF7 field scene data (flevel.lgp) to JSON

    • translates field scripts, gateways, tiles, palettes, textures, etc., but not all sections yet (only encounters is missing)
    • renders separate layers for background images
  • Translate FF7 kernel data (kernel.bin, kernel2.bin) to JSON

    • All sections except commandData, attackData, battleAndGrowthData, initData
    • Some improvements still to be made, mainly around consistent naming and materia data
  • Translate FF7 window data (window.bin) to multiple per palette pngs

    • All window icons and colours
    • All text icons and colours
    • Every asset with it's prefered palette colors in its own separate png
  • TIM and TEX file loaders and converts into per palette pngs

Pre-requisites and setup

How to translate field char data (field/char.lgp) to glTF

  • Run "node test-ff7-to-gltf-translator.js"
    • This translates AAAA.HRC (Cloud skeleton) to aaaa.gltf and aaaa.bin
      • uses AAFE.A (Cloud standing animation) as base structure in the output
      • includes all Cloud animations (based on Ifalna DB) in the output
  • Look at ff7-gltf/viewer/viewer.html for example of how to view in html page
  • Edit the js to translate other models as desired
  • For help, reach out to the author: picklejar76@gmail.com

How to translate field flevel data (field/flevel.lgp) to JSON

How to translate kernel data (kernel/kernel.bin, kernel/kernel2.bin) to JSON

How to translate .TIM of .TEX files into PNGs

  • Look at https://github.com/picklejar76/kujata/ff7-asset-loader/test-kernel-extractor.js
  • new TimFile().loadTimFileFromBuffer(file.buffer).saveAllPalettesAsPngs(outputFilePath)
  • new TimFile().loadTimFileFromPath(file.path).saveAllPalettesAsPngs(outputFilePath)
  • new TexFile().loadTexFileFromBuffer(file.buffer).saveAsPng(outputFilePath)
  • new TexFile().loadTexFileFromPath(file.path).saveAsPng(outputFilePath)

Thanks goes to...

  • qhimm community
  • Aali, for patching FF7, graphics work, lgp/unlgp utility, etc.
  • Borde, for authoring Kimera and TexTool_0.10
  • DLPB, for authoring too many tools to list here
  • ficedula, for authoring multiple tools, including lzs decompressor and Ifalna model viewer
  • Kaldarasha, for model editing experience and design advice, etc.
  • halkun, for evangelizing glTF, FF7 file spreadsheet, etc.
  • Sega Chief, for field model friendly names, etc.
  • quantumpencil, for sister-ray
  • Jusete, for finding a good kujata logo
  • others TBD; please let me know if I left out any person or acknowledgement!

About

Translates Final Fantasy 7 assets to web-friendly formats like JSON and glTF

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 46.4%
  • HTML 41.0%
  • Python 12.3%
  • Other 0.3%