ObjToSchematic/README.md

80 lines
4.1 KiB
Markdown
Raw Normal View History

2021-07-01 23:25:27 +08:00
# ObjToSchematic
2021-11-14 21:32:41 +08:00
A visual tool to convert .obj model files into Minecraft Schematics or [Litematica](https://www.curseforge.com/minecraft/mc-mods/litematica/files).
2021-07-01 23:25:27 +08:00
2021-09-11 08:04:56 +08:00
![Preview](/resources/preview3.png)
2021-07-01 23:25:27 +08:00
2021-10-30 04:09:58 +08:00
# Usage
You can either download the [latest release](https://github.com/LucasDower/ObjToSchematic/releases) or build it yourself by following the instructions below.
* Download and install [Node.js](https://nodejs.org/en/).
* Run `git clone https://github.com/LucasDower/ObjToSchematic.git` in your command line.
* Navigate to `/ObjToSchematic-main`.
* Run `npm install`.
* Run `npm start`.
2022-02-20 06:52:54 +08:00
### Advanced
2021-07-07 09:35:12 +08:00
2022-02-20 06:52:54 +08:00
**Block Palettes** You can create your own block palettes to fit the build you desire. When you select this palette, the generated structure will only use the blocks defined in your palette. To create a palette, list every block you want to use in `/tools/new-palette-blocks`. A list of every supported block can be found in `/tools/all-supported-blocks`. When your list is complete, run `npm run palette`. If everything is successful, the next time you run the program you'll be able to select your new palette in the 'Block palette' dropdown.
**Texture Atlases** If you play Minecraft with a resource pack, you will probably want to build your own texture atlas. This way the program will use the same resource pack for its visualisation and more accurate colour-to-block conversions can be made. To do this, run `npm run atlas` and follow the instructions. If everything is successful, the next time you run the program you'll be able to select your resource pack in the 'Texture atlas' dropdown.
2021-07-01 23:25:27 +08:00
# Progress
2021-07-07 09:35:12 +08:00
[0.1](https://github.com/LucasDower/ObjToSchematic/releases/tag/v0.1-alpha)
2021-11-14 21:32:41 +08:00
* 🟢 **.json model loading**
* 🟢 **Model voxelisation**
* 🟢 **Optimised voxelisation & rendering overhaul**
* 🟢 **Basic .obj file loader UI**
2021-07-04 00:41:01 +08:00
2021-07-07 09:35:12 +08:00
[0.2](https://github.com/LucasDower/ObjToSchematic/releases/tag/v0.2-alpha)
2021-11-14 21:32:41 +08:00
* 🟠 <s>**Greedy voxel meshing**</s> (Removed)
* 🟢 **Export to schematic**
2021-07-04 00:41:01 +08:00
2021-08-20 23:19:01 +08:00
[0.3](https://github.com/LucasDower/ObjToSchematic/releases/tag/v0.3-alpha)
2021-11-14 21:32:41 +08:00
* 🟠 <s>**Voxel splitting**</s> (Removed)
* 🟢 **Ambient occlusion**
* 🟢 **Quality of life**
* Model PSR, height limit warnings
* 🟢 **.mtl support for block choice**
* PNG support, JPEG support
* 🟢 **Convert to TypeScript**
2021-07-07 09:35:12 +08:00
2022-01-18 03:30:39 +08:00
[0.4](https://github.com/LucasDower/ObjToSchematic/releases/tag/v0.4-alpha)
2022-01-16 10:35:46 +08:00
* 🟢 **Block choice exported**
2021-11-14 21:32:41 +08:00
* Export to .litematic
* 🟢 **Support for non-uniform block models** (i.e. not all sides have same texture e.g. Oak Log, Crafting Table)
2022-01-18 03:30:39 +08:00
* 🟢 **UI Redesign**
2021-11-14 21:32:41 +08:00
* 🟢 **Optimised ambient occlusion**
* 🟢 **Transition to ray-based voxelisation**
2021-11-20 03:01:21 +08:00
* 🟢 **Dithering**
2021-07-04 00:41:01 +08:00
2021-07-07 09:35:12 +08:00
0.5
2022-01-19 09:08:05 +08:00
* ⚪ Support for simplifying complex meshes
2022-02-20 06:52:54 +08:00
* 🟡 Load custom block palettes and texture atlases
* 🟢 Optimise construction of voxel mesh vertex buffers
2022-01-16 10:35:46 +08:00
* 🟡 Web workers (see [web-workers](https://github.com/LucasDower/ObjToSchematic/tree/web-workers))
2021-08-20 22:55:19 +08:00
* Progress bar
2022-01-19 09:08:05 +08:00
* Prevent UI hanging
* 🟢 **Buffer refactor to support `OES_element_index_uint` WebGL extension (support for uint32 index buffers instead of uint16)**
2022-01-16 10:35:46 +08:00
* ⚪ Alpha support
* Alpha texture maps
* Transparent blocks
* ⚪ Export to .nbt (structure blocks)
* ⚪ Import from .gltf
2021-08-03 02:05:44 +08:00
0.6
* ⚪ Node.js C++ addons
2021-11-14 21:32:41 +08:00
* ⚪ Block painting
* ⚪ Building guides
* ⚪ Slice viewer
* ⚪ .fbx import support
* ⚪ Support for non-block models (e.g. slabs, stairs, trapdoors, etc.)
2021-07-23 23:24:09 +08:00
# Disclaimer
2021-09-11 08:04:56 +08:00
:warning: This repo is in development and proper error handling is not currently my priority. Contributions are welcome.
2021-07-23 23:39:29 +08:00
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](https://account.mojang.com/terms#brand).
2021-09-11 02:27:05 +08:00
2021-10-30 04:09:58 +08:00
![MinecraftPreview](/resources/minecraft.png)
2021-11-07 04:38:33 +08:00
# 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*".