Go to file
2022-01-18 19:15:46 +00:00
.github/workflows Update node.js.yml 2022-01-16 23:02:39 +00:00
.vscode Added VSCode debugging launch options 2021-11-06 20:32:50 +00:00
resources Preview update, small fix 2022-01-16 19:58:41 +00:00
shaders Added command-line tool to create block atlas 2021-10-13 23:26:26 +01:00
src Refactor UI elements 2022-01-18 19:15:46 +00:00
tools Only shown faces drawn, UI redo, new atlas script 2022-01-15 22:39:52 +00:00
.eslintrc.json Added linting 2022-01-16 23:47:19 +00:00
.gitignore Action output message, more options to toggle 2022-01-16 02:25:28 +00:00
index.html Style updates 2022-01-16 19:52:35 +00:00
LICENSE Added LICENSE 2021-07-01 16:28:23 +01:00
package.json Last changes for 0.4 2022-01-17 19:20:30 +00:00
README.md Update README.md 2022-01-17 19:30:39 +00:00
styles.css Style updates 2022-01-16 19:52:35 +00:00
tsconfig.json Added VSCode debugging launch options 2021-11-06 20:32:50 +00:00

ObjToSchematic

A visual tool to convert .obj model files into Minecraft Schematics or Litematica.

Preview

Usage

You can either download the latest release or build it yourself by following the instructions below.

  • Download and install Node.js.
  • Run git clone https://github.com/LucasDower/ObjToSchematic.git in your command line.
  • Navigate to /ObjToSchematic-main.
  • Run npm install.
  • Run npm start.

Support for choosing the block palette is not yet supported. Instead, you can edit /tools/default-ignore-list.txt to include blocks you don't want to be used and then run npm run-script atlas. You can also place custom textures in /tools/blocks/ for more accurate block-colour matching when building with resource packs.

Progress

0.1

  • 🟢 .json model loading
  • 🟢 Model voxelisation
  • 🟢 Optimised voxelisation & rendering overhaul
  • 🟢 Basic .obj file loader UI

0.2

  • 🟠 Greedy voxel meshing (Removed)
  • 🟢 Export to schematic

0.3

  • 🟠 Voxel splitting (Removed)
  • 🟢 Ambient occlusion
  • 🟢 Quality of life
    • Model PSR, height limit warnings
  • 🟢 .mtl support for block choice
    • PNG support, JPEG support
  • 🟢 Convert to TypeScript

0.4

  • 🟢 Block choice exported
    • Export to .litematic
  • 🟢 Support for non-uniform block models (i.e. not all sides have same texture e.g. Oak Log, Crafting Table)
  • 🟢 UI Redesign
  • 🟢 Optimised ambient occlusion
  • 🟢 Transition to ray-based voxelisation
  • 🟢 Dithering

0.5

  • 🟡 Web workers (see web-workers)
    • Progress bar
  • Buffer refactor to support OES_element_index_uint WebGL extension (support for uint32 index buffers instead of uint16)
  • Node.js C++ addons
  • Alpha support
    • Alpha texture maps
    • Transparent blocks
  • Export to .nbt (structure blocks)
  • Import from .gltf

0.6

  • Block painting
  • Building guides
  • Slice viewer
  • .fbx import support
  • Support for non-block models (e.g. slabs, stairs, trapdoors, etc.)

Disclaimer

⚠️ This repo is in development and proper error handling is not currently my priority. Contributions are welcome.

This is an non-commercial unofficial tool that is neither approved, endorsed, associated, nor connected to Mojang Studios. Block textures used are from Minecraft and usage complies with the Mojang Studios Brand And Assets Guidelines.

MinecraftPreview

Debugging

To allow for your favourite debugging tools like breakpoints and call stacks, I've included launch options for debugging in VSCode. Use Ctrl+Shift+D, and run "Debug Main Process" and once the Electron window has initialised, run "Attach to Render Process".