Character conversion: rm2k to other engines

brocoio123

Villager
Member
Joined
Mar 11, 2019
Messages
12
Reaction score
8
First Language
Portuguese
Primarily Uses
Other
Hello everyone,
I used to play around with the old rm2k3 back in the day and i wanted to create something with the same graphics using a modern maker, however the process is quite long and tedious to adapt all characters and tilesets to lets say rpg maker mv.

It convert rm2k/2k3 charsets to vx, mv and other engines, 70% of it is basically just a glorified resizer, but maybe it could save some time to some people wanting to import those old nostalgic graphics to a modern engine.

I have a lot of irl stuff to do so i could only work on it for a week.

https://github.com/Brocoio123/2k-char-processor

This project is still pretty barebones, had only about a week to work on it, if i actually continue i'll add more features, i'll update this thread.





MV:

VX ACE:
By the way, it says on the header "put your character sprites on the root folder", but actually its the 'Characters' folder.

Thats the idea, should i continue working on it?
Is this something that would be useful for other people today?
 
Last edited:

Sharm

Pixel Tile Artist
Veteran
Joined
Nov 15, 2012
Messages
12,619
Reaction score
10,354
First Language
English
Primarily Uses
N/A
It's interesting to me, but my case is a little unusual. It's a secret project, so I'm not going to go into details, but something like this could same me some work later. I'm not sure how useful it would be to most people, and I can do this by hand easily enough. I would like you to continue, but I don't think you should base your decision on me in any way.
 

Versus

Villager
Member
Joined
Apr 21, 2017
Messages
20
Reaction score
3
First Language
Polish
Primarily Uses
N/A
I love the 2k3 resources I've got and I'd like to switch to MV soon. Don't want to spend time on converting stuff by hand. I hope you will keep working on that :kaoblush:
 

brocoio123

Villager
Member
Joined
Mar 11, 2019
Messages
12
Reaction score
8
First Language
Portuguese
Primarily Uses
Other
Sharm said:
I'm not sure how useful it would be to most people, and I can do this by hand easily enough.
Yeah i managed to do it easily on gimp when i wanted to get the resources to unity, but doing it every time i wanted to port resources is kind of a pain.
The idea is to do create something that could convert a whole batch of resources at once to any engine you would want, there are literaly thousands of free rm2k3 resources available out there, it would be a shame to think that they will just sit there being unused awaiting their deletion from their hosts.

I think it's a good idea! But your github page is not working :(
Fixed it!
 
Last edited by a moderator:

Sharm

Pixel Tile Artist
Veteran
Joined
Nov 15, 2012
Messages
12,619
Reaction score
10,354
First Language
English
Primarily Uses
N/A
Oh! It converts for multiple engines? That's way more interesting than I was expecting! I am now very interested in this. I don't fully understand the layout for 2k3 yet, but if I could do it once and have it work on many, then I'd put more effort into learning the resource standards.
 

brocoio123

Villager
Member
Joined
Mar 11, 2019
Messages
12
Reaction score
8
First Language
Portuguese
Primarily Uses
Other
So, after six months with the project just sitting on my pc i finally got time to work on it, it is functional now, but quite barebones as i just had a couple of days to work on it.
There it is:
-It convert rm2k/2k3 charsets to vx, mv and other engines, 70% of it is basically just a glorified resizer, but maybe it could save some time to some people wanting to import those old nostalgic graphics to a modern engine.

Just clone or download the repo and click on Start.bat, information on the README.
https://github.com/Brocoio123/2k-char-processor

If anyone has the time to use it, please report bugs and make suggestions, i'll include those on the next version.

I'll update the thread or create another later
 

Attachments

Last edited:

bonusminutes

Warper
Member
Joined
Aug 12, 2019
Messages
2
Reaction score
0
First Language
English
Primarily Uses
Other
If I click start.bat it just briefly flashes the command prompt at me. So I went and edited start.bat and added a "pause" line at the end so I could see what it was doing. Got this.


Downloaded python, still the same. Any idea whats wrong?
 
Last edited:

Restart

Veteran
Veteran
Joined
Mar 15, 2019
Messages
326
Reaction score
207
First Language
English
Primarily Uses
RMMV
If you're taking suggestions, having the program batch them through rotsprite to resize would be pretty useful. It's not as good as a real pixel artist for upscaling stuff, but it's pretty good and respects color counts.

for example, it upsizes


to this
 

brocoio123

Villager
Member
Joined
Mar 11, 2019
Messages
12
Reaction score
8
First Language
Portuguese
Primarily Uses
Other
If I click start.bat it just briefly flashes the command prompt at me. So I went and edited start.bat and added a "pause" line at the end so I could see what it was doing. Got this.


Downloaded python, still the same. Any idea whats wrong?
You get this even after downloading Python? Thats strange, i'm on vacation right now, when i get home i'll try to make an executable version.
Can you try to run the command python -V on cmd and see if it works?
Also, can you try to install both python 2 and 3?
If you're taking suggestions, having the program batch them through rotsprite to resize would be pretty useful. It's not as good as a real pixel artist for upscaling stuff, but it's pretty good and respects color counts.

for example, it upsizes


to this
Pillow already has nearest neighbour, bilinear, bicubic and anti-aliasing resising, it would be interesting to add another option, do you know a library that works with this algorithm?
Also, your resized image has some artifacts such as thicker contours and the eyes of the characters seem to be severely deformed, is this normal with this method?
 
Last edited:

Restart

Veteran
Veteran
Joined
Mar 15, 2019
Messages
326
Reaction score
207
First Language
English
Primarily Uses
RMMV
You end up with some weirdness when resizing to a fractional multiplier - that's sort of inevitable no matter what algorithm you use, since obviously going from 2-pixels of eyes to 3 pixels of eyes is either gonna be wider somewhere, or end up smearing the colors. I personally think it's easier to touch-up a sprite with a few misplaced pixels of the right color than try to touch up something that's blurred the pixels together, but obviously people have different workflows and art preferences

Look like there's already free-use python code for an implementation of the algorithm without the cleanup.

https://github.com/pinobatch/hello-world/blob/master/rotpixels.py

Which is based on this forum post from Xenowhirl describing the algorithm

the algorithm is dead simple, so I'll just describe it and you can decide: First it scales the image to 8x size, using a "pixel guessing" algorithm to add detail. Then it scales the image to 1/8 size and also rotates it using standard aliased rotation and scaling. That's basically it. To get a big speed increase for a small penalty in quality, you could use 4x instead of 8x and skip some other optional steps I did, but I wanted high quality above all else.

Here's the more detailed version: First it scales the image to double size using something similar to Scale2x, but checking if pixels are more similar to each other instead of if they're equal, which makes the result less blocky and ultimately leads to smoother output. The important thing is that the scaling algorithm works by choosing a pixel instead of by blending pixels. It does that 3 times to achieve an 8x scale, determined empirically to be a good place to stop. Then (optional step) it tries to find the best rotation offsets by looping through a small grid of offsets between 0 and 7 pixels in x and y, and for each one looping through the 8x image at the rotation angle with step size 8 pixels, and adding the squared distance of the difference in color components between each point and its immediate (1 pixel) neighbors in the 8x image, which will be 0 except on the boundaries between 8x pixels. Then it simply performs standard nearest-neighbor scaling+rotation, starting at the offsets that gave minimal sum of squared differences, and using 1/8 scale to return the image to normal size while rotating it. Finally (optional step), it tries to fix any overlooked single-pixel details by checking for any pixels in the output image that have 3 or 4 identical neighbors equal to them and unequal to the color at the corresponding place in the source image, and replacing those pixels with the one from the source image.

You might say I'm cheating by not vectorizing the graphics into lines and curves and rotating those, but I say this method is an approximation of that and works better in practice. When the original image has little detail at the angle it's being sampled, aliased rotation makes too many arbitrary decisions, but the smoothing of a pixel-choosing enlargement algorithm is sufficient to resolve most of the ambiguity.
 

bonusminutes

Warper
Member
Joined
Aug 12, 2019
Messages
2
Reaction score
0
First Language
English
Primarily Uses
Other
You get this even after downloading Python? Thats strange, i'm on vacation right now, when i get home i'll try to make an executable version.
Can you try to run the command python -V on cmd and see if it works?
Also, can you try to install both python 2 and 3?
Yeah, still nothing. An executable would be much appreciated if its not a lot of trouble.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

reading what makes plugins tick, so you can use other plugins to trigger said plugin... setup up Luna MV to have my own custom ATB Gauges from Yanfly's ATB. cool
It's Easter on Monday. Anybody got any Easter quarantine eggs? It'll also be my birthday, I'll be 31.
Sometimes I feel like I'm using plugins feature the wrong way. But as long as it works tho.
Dusting off RPG Maker MV and seriously working with it since COVID-19 has me with a lot of free time. Have a game project that is coming along steadily and I hope it proceeds past the alpha stage into something good now that I figured MV out.
I've had an account here for four years, but only started posting and working in 2018. I guess I always had the want. Crazy. Guess I'll be seein' y'all.

Forum statistics

Threads
95,791
Messages
931,970
Members
126,214
Latest member
PhilipeDante
Top