Epidermis
The only ~~outer skin~~ epidermis mod you'll ever need.the surface epithelium of the skin, overlying the dermis
About
epidermis is a feature-fledged Minetest skin mod, featuring 3d skin painting and excellent SkinDB support.
Requirements
epidermis requires at least Minetest 5.4 for the server and at least 5.3 (dynamic media support) for the client.
Dependencies
Licensing
All code written by appgurueu and licensed under the MIT license.
The textures have been created by Dragoni and appgurueu and are all licensed under CC BY-SA 3.0. Attribution is given below.
The following tool textures (within the textures/tools folder) have been created by Dragoni:
- epidermis_book.png
- epidermis_eraser.png
- epidermis_filling_bucket.png
- epidermis_filling_paint.png
- epidermis_palette.png
- epidermis_pen_handle.png
- epidermis_pen_tip.png
- epidermis_undo_redo.png
Links
- GitHub - sources, issue tracking, contributing
- Discord - discussion, chatting
- Minetest Forum - (more organized) discussion
- ContentDB - releases (downloading from GitHub is recommended)
- Per-player skins
- Just drop them in <worldpath>/data/epidermis/textures/players/epidermis_player_<playername>.png
- 3D Epidermis painting
- Model- and texture-agnostic. Full B3D and PNG support.
- HSV & RGB colorpickers, named color support
- Arbitrary rotation & backface culling support
- SkinDB support
- Real-time syncing with SkinDB (uploaded textures immediately become usable without a restart); no external scripts required
- Picking SkinDB skins for yourself or as Epidermis base textures
- Upload to SkinDB
2D Texture Painting Mods
- Painted 3D armor: A mod supporting paintings on armor. Painting still happens in 2D space and is rather limited through the use of texture modifiers; a rather old mod.
- skinmaker, a well-done mod limited to the scope of 2-dimensional creation of skins in-game using only texture modifiers. Good support for older MT versions without dynamic media, not entirely texture- and model-agnostic. Experimental.
- Clothing 2: Adds wearable clothing items
- Wardrobe and Wardrobe Outfits: A few "selected" skins; the former provides an API for other mods to register more
- Simple Skins: A different set of available skins, excellent support for ancient MT versions
- SkinsDB and SkinsDB for Hades Revisited: Proper SkinDB support using an update command which shuts down the server, support for user-added skins, decent skin selection dialog including a search feature
Engine Limitations
Memory Usage
You can expect each active entity to consume memory proportional to the texture pixel count. Skins sized 64x32 should stay in the kilobyte range. There is however a clientside memory leak which causes textures to not be dropped from texture cache. This means that every time the texture is changed, the client will store it in memory until the session ends. For 64x32, roughly 8 KB will be stored per update/action. That means a thousand actions will roughly take 8 MB; a million actions would take 8 GB. Therefore, it is not recommended to try using higher resolution textures, even though they are perfectly supported by the mod.
Disk Usage
The dynamic media API allows marking media as ephemeral, which means it isn't cached clientside and not sent to new clients. Unfortunately this means that joining players don't receive the media, which would result in undefined behavior. Therefore, this fills up client & server disk space in it's current form. Server disk space is automatically cleared on startup; client cache must be cleared manually.
Mod Limitations
wield3d
Does not display the colors of wielded items.
Hints
If you want to be able to accurately paint, don't use cinematic camera smoothing or view bobbing. Both will make your look direction inaccurate in certain cases. Alternatively to disabling view bobbing, rest while painting (and use the newest Minetest version).
As you might have noticed, there is no kind of palette. That is no issue however: Simply abuse a second entity (or a portion of the epidermis) as palette.
Instructions
The in-game guide item contains these instructions as well.
Tools
Guide
The in-game guide provides instructions for these tools.
Spawners
Paintable spawner
Spawns a paintable epidermis with your current texture.
HSV colorpicker spawner
Spawns a "wallmounted" HSV colorpicker.
Painting Tools
Tools which work much like those found in common painting programs.
Pen, line, rectangle and filling bucket all require a color. There are three ways to pick a color:
- You can pick a color from the paintable epidermis by right-clicking it.
- You can open a RGB color picker dialog by right clicking while pointing at nothing.
- You can spawn a HSV color picker in-world by placing it against a node. Right-click to pick a color, punch the hue to change the hue of the saturation & value field.
The pen is the most basic tool. It is used to place single pixels (left-click).
Line
The line tool draws, duh, a line. Use it by "dragging": keep the left mouse button down. You will be shown a preview. Dragging stops when you change your wield item or point at a different entity.
Rectangle
Works like the line tool but draws a filled rectangle.
Filling Bucket
Floodfills adjacent pixels of exactly the same color, swapping out their color for the color of the filling bucket.
Undo-redo
Left-click to undo, right-click to redo. Undo-redo log size is limited due to [Memory Usage] constraints.
Configuration
Code: Select all
<!--modlib:conf:2-->
autosync
Automatically sync with SkinDB at startup, continue syncing during game
- Type: boolean
- Default: true
Code: Select all
<!--modlib:conf-->
- [ ] NodeCore support
- [ ] 3D armor support
- [ ] Restart server if a certain amount of dynamic texture data has been reached (100 MB?)
- [ ] Paintable transportability (as items?) & trashability
- [ ] Better icons (play button for animation?)
- [ ] Skinmaker support to add 2-dimensional texture painting
- [ ] Semi-transparency painting support
- Pointless as long as Minetest doesn't properly support semitransparency for CAOs
- [ ] Survival mode
- [ ] Obtaining paintable epidermi through skinning
- [ ] Dye rewrite with color mixing and limited color supply
- [ ] SkinDB replacement server