Regarding the New Height Limit
The importer cannot generate worlds higher than the old height limit of 128. Updating this requires recoding the tool, which I have neither the experience nor time to do. It is still entirely possible to utilize the enclosed alpha formatted save file to generate worlds at the old max height limit. Upon loading for play, Minecraft automatically converts worlds to the current save format; There are no incompatibilities in that regard.
On the Topic of a Video Tutorial
Some time ago it was requested that I upload a video tutorial to Youtube, to show how to use this tool more clearly. I have not done so as this is a command line utility & such a video cannot provide any further illumination beyond that which is to be found in the already enclosed tutorial and troubleshooting guide.
Original Post follows:
In January 2011, Jong89 released a Python script, dependent upon Pythn 2.7, NUMPY, pyPNG and pymclevel by Codewarrior, which could read greyscale heightmaps to generate a Minecraft world. This program may also be utilized to import normal images, similar to SpriteCraft; An example of such is in Jong89's original post (quoted below)
I have assumed maintenance & troubleshooting support of Jong89's heightmapper.
I have been granted permission by Jong89 to redistribute his heightmapper and by and codewarrior to include his pymclevel in a pre-formatted directory which minimizes the complexity of getting the heightmapper up and running. I would also like to thank codewarrior for his assistance in getting Jong89's heightmapper working again.
Here is a project I have used the Heightmapper for - importing Dereth, the landmass from Asheron's Call, into Minecraft:
[thumbnails; larger images in links below]
A thumbnail of the heightmap I used
A thumbnail of my color map:
And the results - Please note that this is still a work in progress.
edit: I was informed that the image links were not working appropriately when I had linked to DropBox. They have been switched to Photobucket now.
Larger versions of these images may be now found on imgur: http://imgur.com/a/jR5sr
Do note that these "large" versions are still scaled down to about 20% of the full-size files.
The following links to a pre-assembled directory of all components needed to use Jong89's Height Map Importer. All you need to do to get the Jong89's Height Map Importer up and running is, after downloading the assembled-for-your-convenience-package here: http://www.mediafire...m0ro95hsj0hwff3
1. Install the appropriate version (32 bit or 64 bit) of Python 2.7 [both are included]
2. Install the appropriate version of NUMPY for Python 2.7 [both are included]
3. Place an alpha (chunk) formatted save file in your Minecraft save directory [included]
4. Run heightmapper.py [included]
More complete instructions on usage and some troubleshooting tips are included in the Heightmapper Readme file [in the .zip].
If you would rather not utilize the above-linked .zip, the individual components may be downloaded separately:
Please note that, in addition to the components linked to below, you will need an alpha (chunk) formatted save file. One is included in my archive above. Additionally, I -think- it is possible to generate a new alpha/chunk save using MCEdit.
The heightmapper-only package, as uploaded by Jong89, may be downloaded from his original post, linked to above.
pymclevel can be obtained via the MCEdit forum post.
Scroll down - the link is just above the Creative Commons icon.
Use the grey "Download" button near the top of the page.It's below the green "Sign up Now" button and above directory structure.
INSTRUCTIONS FOR USE (Included in HIEGHTMAPPER README.txt)
Here's a copy/paste of those instructions and usage tips; The contents of "HEIGHTMAPPER README.txt"
=====================
ACKNOWLEDGEMENTS:
-Jong89 for creating this awesome little utility, his Height Map Importer.
-Codewarrior for his permitting me to redistribute his pymclevel code in this package, and in troubleshooting heightmapper.py.
-The good folks behind Python, NUMPY and all that jazz.
=====================
To have a usable Height Map Importer follow these steps:
1. Install the appropriate version (32 bit or 64 bit) of Python 2.7
(If you don't know whether you should install 32 bit or 64 bit, you should probably use the 32; To be more precise, look at System Information or, in Windows 7, "System Properties." If you have 64 bit Windows, it will be stated. If nothing is mentioned, you have 32 bit Windows.)
2. Install the appropriate version of NUMPY for Python 2.7
(If you installed 32 bit Python, install 32 bit NUMPY! And if you installed 64 bit Python, use 64 bit NUMPY!)
3. Place an alpha (chunk) formatted save file in your Minecraft save directory
(I advise copying and pasting the supplied Alpha save; The first time you open an Alpha formatted save in a newer version of Minecraft, the save is updated to the new region based save format. YOU WILL NEED TO KEEP A COPY OF THE ALPHA SAVE TO USE HEIGHTMAPPER. ALWAYS USE A COPY OF THE ALPHA SAVE, NOT THE ORIGINAL Just in case something happens, I've included an AlphaSaveBackup as well)
4. Run heightmapper.py
See the Troubleshooting section, and Jong88's original readme for usage instructions.
=====================
Eridyn's Troubleshooting Tips:
If the script crashes, it's usually quite difficult to read the error message as it disappears so quickly.
I had to address the following problems to get it working:
1. PyPNG was not in the directory properly. You'll want to dump the contents of the "Code" folder into your heightmap.py directory.
Which should also contain all files from pymclevel! If you used the pre-assembled package, this should not be a problem.
2. Make certain your heightmap png is in greyscale! To do this using GIMP, open the image in GIMP, and navigate through the menus: Image -> Mode -> Greyscale
3. You MUST use file extensions in your image name, ex: "heightmap.png" will work but typing "heightmap" will cause the script to crash.
Also, you may find that your map comes out oriented with the "North" side pointing to the East. To solve this, simply rotate the image 90 degrees counter-clockwise prior to importing it (Have North pointing to the left side of the screen, rather than the top).
===================== Jong89's Original Readme:
=====================
Instructions for Use
=====================
Prereqs.
python 2.7 and up (NOT 3.1/3.2!! This is a completely different version of python)
numpy
pypng (placing png.py in the same directory works)
MCedit source (works as of 25/1/2011)
1. Place the files into the MCedit source directory. This is the one with the file mclevel.py
2. Place your grayscale heightmap and RGB texture map into the same directory
3. Run heightmapper.py
4. If you want to use a custom colour to terrain scheme, edit colourinfo.txt.
Notes
=====
There is a slight flaw in MCEdits chunk generation routine. Unexplored chunks show up as unlighted in Cartograph. Also, edited chunks take somewhat longer to load than usual.
If loading the png files fail, it could be a problem with the format. Try resaving it using a different program, such as GIMP. Also, don't use interlacing.
Be careful when loading large image files. This lousy script is not very thirfty with memory and will attempt to load all the pixels at once.
Options explained
==================
1. World save folder:
You need to enter the full path to the world save folder e.g. C:\Users\Admin\AppData\Roaming\.minecraft\saves\World4
2. Height scale factor:
The is a number used to multiply the height values by. So bigger numbers give more extreme height variation and vice versa. Using a negative number here will result in an inverted height field.
3. Mean height:
This is the level you want the scale factor to apply around. For example, if you set the scale factor really low and set the mean height to 0, the terrain will flatten out towards the bottom of the map, whereas if you set the mean height to 64, the terrain will be close to sea level. Integers only
4. Water level:
Sets the sea level. All terrain below this level will be submerged in water, or whatever is defined in colourinfo.txt. Integers only
5. Height offset:
Shifts the terrain. Positive numbers raise the terrain while negative numbers lower the terrain. Integers only
6. Heightmap filename:
The filename of the png file used as the heightmap. This must be a grayscale png.
7. Texturemap filename:
The filename of the png file used as the colourmap. It must not be a grayscale. Furthermore, it must be the same dimensions as the heightmap.
8. East and South Coordinates
This sets the location of the chunk that will the top left corner of the pictures. (0,0) is the location of the origin chunk while (0,1) is the chunk immediately south of the origin chunk, or 16 blocks south. Use this if you need to import the terrain to a particular location. Intergers only.
I had an itch to create a real world map in Minecraft, but sadly I couldn't find any tools available to import heightmaps. Now I'm really quite a novice at programming, but luckily I know a bit of Python. And extra lucky! MCEdit was written in Python! That means I can easily borrow code!
Well, I somehow managed to write a script that can import height maps and texture maps and turn it into a terrain.
To run this script you need Python 2.7 or up (not Python 3.1 or 3.2), numpy, pypng and MCEdit's source. The full, boring details of its usage are in the Readme. I'm not too clear about whether redistributing other people's code is allowed or not, so I won't do it here.
Allow me to demonstrate its functions.
For this demonstration, I will be using a small map of part of the central Mediterranean.
With the script, the heightmap will define the elevation and the texture map will define the terrain type.
With slightly modified basic functions (to account for the differences in colour of real world terrain and Minecraft terrain)
You can define custom colour to terrain type mapping. So you can have stuff like lava seas with snow covered diamond blocks.
But wait! It is not simply limited to that! You can define the terrain block type above and below ground without limits! Here I changed the grass type to rainbow coloured wool, and dirt type to saplings with glass several blocks overhead.
You could potentially use up to 16 million different terrain types. Of course this will make the script run even slower than normal.
The script finds the shortest distance in CIELAB colour space to determine the terrain type for each pixel. This can be easily adapted to create images in Minecraft.
For example, I can turn this random image from google
into
Oh yeah! What about that world map?
Behold!
Big versions of the flat map and the Isometric map. Still JPEG unfortunately, unless you feel like downloading an 80MB image.
Yeah I noticed that the unexplored chunks look unlit in the map. I have no idea why that happens. Edited chunks also take longer than usual to load. Sometimes trees spawn out of nowhere. I also think I forgot to add in a line for snow, so the bits that look like snow are probably bare rock.
I won't be uploading the save to that btw. It's 200MB! It's from a 5400x2700 image from NASA and it's the small one That comes up to about 58000 chunks and several hours of processing time.
I would love it if someone could offer a video tutorial on how this is done. I can't seem to sort it out.
I'll work on putting one up, but that may be a week or two away. I'm currently going into midterms and don't have a an incredible amount of time presently.
Also, please post your specific issues. :smile.gif:
I apologize for the limited support for this over the past few months. The ends of the term has been rougher than previously anticipated. Turned in a thesis draft yesterday, presented a minor project today, and have yet another project to finish over the coming week. And then it's on to finals.
I'll be addressing each concern brought up after final exams. I still am uncertain how to demonstrate this via a video, however, as the process is mostly tweaking a text file...
The importer cannot generate worlds higher than the old height limit of 128. Updating this requires recoding the tool, which I have neither the experience nor time to do. It is still entirely possible to utilize the enclosed alpha formatted save file to generate worlds at the old max height limit. Upon loading for play, Minecraft automatically converts worlds to the current save format; There are no incompatibilities in that regard.
New download link. Sometimes Dropbox doesn't allow people to directly link, but this seems to be working. https://www.dropbox.com/s/j9964lldkerckwz/Heightmapper.zip
Regarding the New Height Limit
The importer cannot generate worlds higher than the old height limit of 128. Updating this requires recoding the tool, which I have neither the experience nor time to do. It is still entirely possible to utilize the enclosed alpha formatted save file to generate worlds at the old max height limit. Upon loading for play, Minecraft automatically converts worlds to the current save format; There are no incompatibilities in that regard.
On the Topic of a Video Tutorial
Some time ago it was requested that I upload a video tutorial to Youtube, to show how to use this tool more clearly. I have not done so as this is a command line utility & such a video cannot provide any further illumination beyond that which is to be found in the already enclosed tutorial and troubleshooting guide.
Original Post follows:
In January 2011, Jong89 released a Python script, dependent upon Pythn 2.7, NUMPY, pyPNG and pymclevel by Codewarrior, which could read greyscale heightmaps to generate a Minecraft world. This program may also be utilized to import normal images, similar to SpriteCraft; An example of such is in Jong89's original post (quoted below)
I have assumed maintenance & troubleshooting support of Jong89's heightmapper.
I have been granted permission by Jong89 to redistribute his heightmapper and by and codewarrior to include his pymclevel in a pre-formatted directory which minimizes the complexity of getting the heightmapper up and running. I would also like to thank codewarrior for his assistance in getting Jong89's heightmapper working again.
Jong's Original Post: http://www.minecraft...htmap-importer/
(A quote of the first post of this thread is found below)
Here is a project I have used the Heightmapper for - importing Dereth, the landmass from Asheron's Call, into Minecraft:
[thumbnails; larger images in links below]
A thumbnail of the heightmap I used
A thumbnail of my color map:
And the results - Please note that this is still a work in progress.
edit: I was informed that the image links were not working appropriately when I had linked to DropBox. They have been switched to Photobucket now.
Larger versions of these images may be now found on imgur: http://imgur.com/a/jR5sr
Do note that these "large" versions are still scaled down to about 20% of the full-size files.
The following links to a pre-assembled directory of all components needed to use Jong89's Height Map Importer. All you need to do to get the Jong89's Height Map Importer up and running is, after downloading the assembled-for-your-convenience-package here:
http://www.mediafire...m0ro95hsj0hwff3
1. Install the appropriate version (32 bit or 64 bit) of Python 2.7 [both are included]
2. Install the appropriate version of NUMPY for Python 2.7 [both are included]
3. Place an alpha (chunk) formatted save file in your Minecraft save directory [included]
4. Run heightmapper.py [included]
More complete instructions on usage and some troubleshooting tips are included in the Heightmapper Readme file [in the .zip].
If you would rather not utilize the above-linked .zip, the individual components may be downloaded separately:
Please note that, in addition to the components linked to below, you will need an alpha (chunk) formatted save file. One is included in my archive above. Additionally, I -think- it is possible to generate a new alpha/chunk save using MCEdit.
The heightmapper-only package, as uploaded by Jong89, may be downloaded from his original post, linked to above.
Python 2.72: http://www.python.or...t/releases/2.7/
NUMPY for Python 2.7 from here:http://www.lfd.uci.e...lke/pythonlibs/
PyPNG 0.0.12 from this link: http://code.google.c.../downloads/list
--> If you install the 64 bit version of Python, make certain you also install the 64 bit version of NUMPY.
pymclevel can be obtained via the MCEdit forum post.
Scroll down - the link is just above the Creative Commons icon.
Use the grey "Download" button near the top of the page.It's below the green "Sign up Now" button and above directory structure.
INSTRUCTIONS FOR USE (Included in HIEGHTMAPPER README.txt)
Here's a copy/paste of those instructions and usage tips; The contents of "HEIGHTMAPPER README.txt"
=====================
ACKNOWLEDGEMENTS:
-Jong89 for creating this awesome little utility, his Height Map Importer.
-Codewarrior for his permitting me to redistribute his pymclevel code in this package, and in troubleshooting heightmapper.py.
-The good folks behind Python, NUMPY and all that jazz.
=====================
To have a usable Height Map Importer follow these steps:
1. Install the appropriate version (32 bit or 64 bit) of Python 2.7
(If you don't know whether you should install 32 bit or 64 bit, you should probably use the 32; To be more precise, look at System Information or, in Windows 7, "System Properties." If you have 64 bit Windows, it will be stated. If nothing is mentioned, you have 32 bit Windows.)
2. Install the appropriate version of NUMPY for Python 2.7
(If you installed 32 bit Python, install 32 bit NUMPY! And if you installed 64 bit Python, use 64 bit NUMPY!)
3. Place an alpha (chunk) formatted save file in your Minecraft save directory
(I advise copying and pasting the supplied Alpha save; The first time you open an Alpha formatted save in a newer version of Minecraft, the save is updated to the new region based save format. YOU WILL NEED TO KEEP A COPY OF THE ALPHA SAVE TO USE HEIGHTMAPPER. ALWAYS USE A COPY OF THE ALPHA SAVE, NOT THE ORIGINAL Just in case something happens, I've included an AlphaSaveBackup as well)
4. Run heightmapper.py
See the Troubleshooting section, and Jong88's original readme for usage instructions.
=====================
Eridyn's Troubleshooting Tips:
If the script crashes, it's usually quite difficult to read the error message as it disappears so quickly.
I had to address the following problems to get it working:
1. PyPNG was not in the directory properly. You'll want to dump the contents of the "Code" folder into your heightmap.py directory.
Which should also contain all files from pymclevel! If you used the pre-assembled package, this should not be a problem.
2. Make certain your heightmap png is in greyscale! To do this using GIMP, open the image in GIMP, and navigate through the menus: Image -> Mode -> Greyscale
3. You MUST use file extensions in your image name, ex: "heightmap.png" will work but typing "heightmap" will cause the script to crash.
Also, you may find that your map comes out oriented with the "North" side pointing to the East. To solve this, simply rotate the image 90 degrees counter-clockwise prior to importing it (Have North pointing to the left side of the screen, rather than the top).
=====================
Jong89's Original Readme:
=====================
Instructions for Use
=====================
Prereqs.
python 2.7 and up (NOT 3.1/3.2!! This is a completely different version of python)
numpy
pypng (placing png.py in the same directory works)
MCedit source (works as of 25/1/2011)
1. Place the files into the MCedit source directory. This is the one with the file mclevel.py
2. Place your grayscale heightmap and RGB texture map into the same directory
3. Run heightmapper.py
4. If you want to use a custom colour to terrain scheme, edit colourinfo.txt.
Notes
=====
There is a slight flaw in MCEdits chunk generation routine. Unexplored chunks show up as unlighted in Cartograph. Also, edited chunks take somewhat longer to load than usual.
If loading the png files fail, it could be a problem with the format. Try resaving it using a different program, such as GIMP. Also, don't use interlacing.
Be careful when loading large image files. This lousy script is not very thirfty with memory and will attempt to load all the pixels at once.
Options explained
==================
1. World save folder:
You need to enter the full path to the world save folder e.g. C:\Users\Admin\AppData\Roaming\.minecraft\saves\World4
2. Height scale factor:
The is a number used to multiply the height values by. So bigger numbers give more extreme height variation and vice versa. Using a negative number here will result in an inverted height field.
3. Mean height:
This is the level you want the scale factor to apply around. For example, if you set the scale factor really low and set the mean height to 0, the terrain will flatten out towards the bottom of the map, whereas if you set the mean height to 64, the terrain will be close to sea level. Integers only
4. Water level:
Sets the sea level. All terrain below this level will be submerged in water, or whatever is defined in colourinfo.txt. Integers only
5. Height offset:
Shifts the terrain. Positive numbers raise the terrain while negative numbers lower the terrain. Integers only
6. Heightmap filename:
The filename of the png file used as the heightmap. This must be a grayscale png.
7. Texturemap filename:
The filename of the png file used as the colourmap. It must not be a grayscale. Furthermore, it must be the same dimensions as the heightmap.
8. East and South Coordinates
This sets the location of the chunk that will the top left corner of the pictures. (0,0) is the location of the origin chunk while (0,1) is the chunk immediately south of the origin chunk, or 16 blocks south. Use this if you need to import the terrain to a particular location. Intergers only.
Jong89's post introducing the Height Map Importer:http://www.minecraft...beta-173-18pre/
(╮°-°)╮┳━━┳ Взял стол. ( ╯°□°)╯ ┻━━┻ и поднял его силой мысли!
I'll work on putting one up, but that may be a week or two away. I'm currently going into midterms and don't have a an incredible amount of time presently.
Also, please post your specific issues. :smile.gif:
I'll be addressing each concern brought up after final exams. I still am uncertain how to demonstrate this via a video, however, as the process is mostly tweaking a text file...
Usage instructions from the readme have now been copied into the original post.
D_B
To tell them how to live is to prevent them living.
I know this is an extremely old post, but did you ever get this project completed? I would love to host Dereth on my MC server.
Rocky B.
Owner of Flank Gaming Network, LLC
Flanknet.com | ArwicStudios.com | FGNLeague.com