-
Notifications
You must be signed in to change notification settings - Fork 10
Characters via Atlas
TO be simple and blunt, MO is a fancy IRC chat room which uses characters sprites (the VN kind) to represent the user. Because MO is open source and all, the idea is, to have members create their own characters and share them with the community. This however can't be done without knowing the procedure how characters are made. This page will cover the method used to create the necessary files that are used in the MO's engine.
So you want to get that slutty waifu from [Insert H-VN title] and put it in MO? Only problem is that you don't have the sprites. Then google is your friend, abuse the search algorithms to your advantage by finding the right tools to extract that one VN. How you do this is entirely up to you and you alone are accountable for it.
For sprite processing, the following things should be in possession of the user:
- Image processing program (like GIMP or Photoshop)
- Python 3.6 or 3.7, Pillow and Kivy wheel
- Geroge sprite
- Character sprites
After acquiring the wanted sprites of the desired character, some processing will be required. This can either be, applying faces to poses, changing pixel dimensions, cutting and altering presented sprites etc. This all can be attained by using image processing software such as GIMP and photoshop.
MO displays sprites as an .png with a maximum height of 600, this means that the width can vary depending on the sprite. PNG's with a height lower or higher than 600 will not display the sprite as the creator intended it to. Another thing to note is that PNG's are used because of their transparency, JPEG's won't do.
That VN sprites differ from each other is a common fact, styles differ from artist to artist. This however doesn't mean that two sprites from different series on the same screen can't be an eyesore. The characters displayed in VNs will differ in height, as in they are displayed from the knee up or waist. Mixing two different characters like on screen can make it look like there's a midget standing on a barrel or a giant who's knee deep in a hole. This is where image processing comes in handy, so that displaying multiple characters from multiple series doesn't make you doubt the existence of giants and dwarves. This is a process called standardizing.
To do this Geroge (George) from the VN Umineko is used. It's known from the VN itself that this character is 1,70 meters high. Using this as a measuring stick characters can be created knowing it'll fit in nicely with the rest. While calculations can be done, it's suggested to do this using feels, such as adjusting the head sizes. Whatever feels most natural should be used.
The naming of sprites follows the following nomenclature:
- 01, 02, 03, 04, etc.
- 001, 002, 003, 004, etc. if the amount of sprites > 100
Simple, no??
After all the sprites have been made, a folder containing the icons for each sprite should be created. These icons show the various faces and are 40x40. The names should correspond with the sprites, if not the icons will represent the wrong sprites. An avatar should be created alongside these icons, but only one being 60x60. This serves as a placeholder for the selection of the character in the character select menu.
Before the sprites or icons can be turned into a .atlas file, they will need to be named and put into individual folders. The name of the sprites and icons should be as following:
Note how the numbers correspond with the used sprite and icons. If this were not the case, then MO will use another icon (example. x-1) for sprite x.
Two digit numbering only works if the sprite count is equal or under 99, with the use of more than 99 sprites numbering should contain triple digits. This also applies the other way around, if the sprite count is equal or under 9, single digits can be used.
With everything placed in its own folder, the magic can finally begin. After opening cmd, cd to the directory that has the sprites (exclusively):
cd C:\Whatever\Characters\Sprites
Before you Atlas the sprites however, it should be known that atlas creates one big image file containing all the sprites (or icons). You should set the resolution so it holds 10 sprites per Atlas.
python -m kivy.atlas sprites {dimension_x}x{dimension_y} *.png
E.g.
python -m kivy.atlas sprites 800x600 *.png
Note how you don't include the brackets in the command.
Now in the map you will see two new files:
- sprites.atlas
- sprites-0 (1, 2, 3, etc if the dimensions don't cover enough space for all the sprites)
The same will be done within the folder that holds all the icons (usually 500x500)
cd C:\Whatever\Characters\Icons
python -m kivy.atlas icons {dimension_x}x{dimension_y} *.png
This in turn will create the following in your folder:
- icons.atlas
- icons-0 (1, 2, 3 etc will appear if the dimensions do not cover the total amount)
Next up, the 2 newly created files, of both icons and sprites, will be placed in a folder that is /YourCharacter/.
In this folder a text document has to be created called "settings.txt". The contents of the text document should contain the following:
[character]
name = [Your Character]
series = [Your Character's Series], [Your Character's Series 2], [Your Character's Series 3]
sprites = sprites.atlas
icons = icons.atlas
download = [Your Character's ZIP file Download Link]
version = [Number]
[spoiler]
sprites: 01,02,03
sprites2: 04,05
sprites3: 06,14,15,16
[nsfw]
sprites: 04,05,06,07,08
[CG]
sprites: 14,15,16
Now you're probably wondering, what the heck is this? Basically you have to input information regarding the files you just created. First, the character's series is the category under which your character will be displayed. Then, separated by a comma, you can add a subseries, or a second series. For instance Steins;Gate would be Series 1, and Steins;Gate 0 would be Series 2. Of course it's useless to add subseries if you don't have sprites and CGs in relation with those subseries. This will allow you to flag your characters in spoilers for specific series, and will allow people to be able to use some spoiler sprite of the first game even if they didn't complete the second game (yet) for instance. As you can see, we have a space called [spoiler]. This is the place where you flag the sprites and CGs as spoiler. "sprites:" will take care of the first series' sprites, "sprites2:" of the second series, etc. Just need to input the name of the file, easy peasy. In the same way, you can flag sprites as nsfw, and CGs as CGs (in which case they'll be resized to 800x600 automatically so make your CGs 800x600 from the start). In fact, it is required of you to flag sprites as spoiler and nsfw to avoid, well, situations.
After the text document has been saved, the only thing left is to include the 60x60 placeholder icon for selection called "avatar".
After that, you can see there is a "download =" line, which means you can put a download link to it. This enables the DLC function, a neat function that allows people to download a character from the client itself! You just need to make a ZIP, and I mean it, it only works if it's a ZIP where you put the folder of your character. Then upload it to our Drive and add the link to the ini, and voila! Save and you're basically done, though there is one more step if you will. If you want to update a char previously made, you can unatlas it with this tool, after that you will get a folder where you can re-atlas later after you updated whatever you wanted to update. However, since people already have a folder named after your character (unless you never shared it), you have to add a new line called "version". After reuploading it on the drive and adding the link, add the line "version = 2" (it doesn't have to be 2 but you get the idea)
With all this you have created your very own character to be used on MO. All that rests now is to see if it works. If it does, you fucked up... or my guide is shit... It works? Haza!! You did it. Now you can enjoy that slutty character you always wanted to be from that one ambiguous VN, or that one villain that never got the attention he deserved! You may consider adding it to a ZIP (make sure this second ZIP has the DLC link) so people can download it out of the client (though, in that case it is prefered that you make a pack of characters, if it's only one character, try asking someone who is making a pack to include your creation).
ZIP and share the download link.
- For icons, make sure the expression of the character is visible over it showing the body, after all people can visualize the different poses thanks to the tooltip preview.
- For avatars however, you can take a step back, it's not bad if it's further than the icon, in fact, as long as the character is recognizable it's good.
- Please, no blurry avatar, also not NSFW or spoilerish if you can.
- Don't crop them up too much to fit, it won't look good.
- Folders are annoying to change later on, if you want to give your character a funny nickname, do it in the .ini file where you can easily change it later, since changing the folder for you won't make the previous one disappear for other users.
- Avoid having more than 10 sprites/CG in the same sheet for atlas, for performance reasons.
- Icons don't need to match the number of sprites you have on each sheets, in fact, my advice is to make your icons 422x422 since it'll fit 100 icons per sheets perfectly!
- Honestly, if the hair is cut at the top you might want to forget it, it won't look good, and hiding it by using the upper part of the screen won't work because you need to normalize the sprites so in any case it'll look bad.
- If one or many sprites are off-center, you might want to do something about it.
- If a sprite is very big horizontally, you can exceptionally center it to the point of going over the screen resolution (800x600), as long as it's not cut on the sides when you place the character on the right or the left, and it's always in the center of each position then it's good to god, though don't do that too much pls.
- When naming a folder please put the first name and last name if you have one!
- I advise when you have members of the same family to put the last name first for the name of the character folders so they'll be together in the category. It's not much really, you don't have to, I just personally like it.
- When you have multiple outfits with the same face, separate them in blocks: for instance if you have uniform and casual outfits, make a batch of sprites in casual, then a batch in uniform, don't mix the both up or it'll be a mess.