Go to file
2021-10-30 00:52:24 +01:00
resources Merge branch 'redesign' into main 2021-10-30 00:52:24 +01:00
shaders Added command-line tool to create block atlas 2021-10-13 23:26:26 +01:00
src Merge branch 'redesign' into main 2021-10-30 00:52:24 +01:00
tools Support for non-uniform textured blocks 2021-10-22 15:52:03 +01:00
.gitignore Added command-line tool to create block atlas 2021-10-13 23:26:26 +01:00
index.html Redesign 2021-10-30 00:28:21 +01:00
LICENSE Added LICENSE 2021-07-01 16:28:23 +01:00
package.json Merge branch 'redesign' into main 2021-10-30 00:52:24 +01:00
README.md Merge branch 'main' into atlas-integration 2021-10-29 20:59:04 +01:00
styles.css Glass redesign 2021-10-05 00:32:03 +01:00
tsconfig.json Redesign 2021-10-30 00:28:21 +01:00

ObjToSchematic

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

Preview

Preview

MinecraftPreview

Progress

0.1

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

0.2

  • ✔️ Greedy voxel meshing
  • ✔️ Export to schematic

0.3

  • ✔️ Faster voxel splitting
  • ✔️ 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
    • Export to .nbt (structure blocks)
  • Alpha support
    • Alpha texture maps
    • Transparent blocks
  • ✔️ Support for non-uniform block models (i.e. not all sides have same texture e.g. Oak Log, Crafting Table)
  • UI Redesign (use an actual UI framework) (see redesign)
    • Block palette (choose blocks to export with)
    • Options for toggling fallable blocks
  • Buffer refactor to support OES_element_index_uint WebGL extension (support for uint32 index buffers instead of uint16)
  • Dithering

0.5

  • Multithreading (see web-workers)
    • Progress bar
  • Node.js C++ addons

0.6

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

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 rebuild blocks.json with npm run-script atlas using only the blocks you want to export with. This also means you can use custom texture packs to get more accurate block-colour matching.

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.

DebugPreview

MeshingPreview