Crear skins para Jumpfall sin romper el formato actual
Esta guia reemplaza el metodo viejo de comprimir carpetas a mano. El flujo recomendado ahora usa tres partes: la herramienta de skins, el empaquetador JVSK y el juego.
jumpfall_skin_tools, empaqueta la carpeta con
jumpfall-skin-jvsk, y copia el .jvsk final a
Documents/jumpfall/skin/local.
.jvsk, el archivo skin.json debe quedar en la raiz.
No debe quedar dentro de una carpeta extra como miSkin/skin.json.
Indice rapido
1. Flujo actual de trabajo
Usa jumpfall_skin_tools. Esta herramienta sirve para ver la skin en caliente
mientras editas los PNG y el JSON.
Usa jumpfall-skin-jvsk. Esta aplicacion convierte la carpeta de la skin
en un archivo .jvsk valido.
Copia el .jvsk a Documents/jumpfall/skin/local y activalo desde
el menu de skins del juego.
El mismo .jvsk se puede subir a Steam Workshop con el publisher cuando
la skin este lista.
2. Rutas importantes
Carpeta donde la herramienta de skins lee y prueba tu trabajo:
Carpeta donde Jumpfall lee skins locales ya empaquetadas:
Carpeta donde Jumpfall descomprime temporalmente los .jvsk:
Carpeta usada por las skins descargadas desde Workshop:
3. Estructura recomendada de una skin
La carpeta que vas a empaquetar debe tener skin.json en la raiz.
Puedes nombrar las carpetas como quieras, pero se recomienda usar nombres claros con
_frames.
skin/
skin.json
meta.json opcional, recomendado para Workshop
preview.png opcional, recomendado para Workshop
idle_frames/
0.png
1.png
walk_frames/
0.png
1.png
run_frames/
jump_frames/
fly_frames/
punch_frames/
landing_frames/
death_frames/
dash_ground_frames/
dash_air_frames/
climbing_wall_frames/
climbing_wall_jump_frames/
4. Animaciones soportadas actualmente
Estos son los nombres que van dentro de files en skin.json:
| Clave JSON | Uso en el juego | Loop recomendado |
|---|---|---|
idle | Jugador quieto | true |
walk | Caminando | true |
run | Corriendo | true |
jump | Salto | false |
fly | Caida o aire prolongado | true |
punch | Ataque/golpe | false |
landing | Aterrizaje | false |
death | Muerte | false |
dashground | Dash en suelo | true |
dashair | Dash en aire | true |
climbing_wall | Agarrado/deslizandose en pared | true |
climbing_wall_jump | Salto desde pared | false |
El juego tambien acepta climbingwall y climbingwalljump, pero para
nuevas skins usa climbing_wall y climbing_wall_jump.
5. Plantilla actual de skin.json
Esta plantilla usa el formato que Jumpfall y jumpfall_skin_tools entienden.
Puedes borrar las animaciones que aun no tengas, pero deja al menos idle.
{
"active": true,
"fps": 12,
"visual": {
"scale": 1,
"widthScale": 1,
"heightScale": 1,
"mirror": true,
"colorOverlay": [255, 255, 255, 255]
},
"files": {
"idle": {
"path": "idle_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"walk": {
"path": "walk_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"run": {
"path": "run_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"jump": {
"path": "jump_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": false
},
"fly": {
"path": "fly_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"punch": {
"path": "punch_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": false
},
"landing": {
"path": "landing_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": false
},
"death": {
"path": "death_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": false
},
"dashground": {
"path": "dash_ground_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"dashair": {
"path": "dash_air_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"climbing_wall": {
"path": "climbing_wall_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": true
},
"climbing_wall_jump": {
"path": "climbing_wall_jump_frames",
"fps": 12,
"pivotX": 0.5,
"pivotY": 0,
"xOffset": 0,
"yOffset": 0,
"loop": false
}
}
}
Que significa cada parametro
fps: velocidad de la animacion. Si una animacion no define FPS, usa el FPS general.scale: escala general de la skin.widthScaleyheightScale: ajustan ancho y alto por separado.mirror: permite que la skin mire a izquierda/derecha con el jugador.colorOverlay: color RGBA. Usa[255,255,255,255]para no alterar colores.path: carpeta donde estan los PNG de esa animacion.pivotXypivotY: punto de apoyo del sprite entre 0 y 1.xOffsetyyOffset: ajuste visual fino. El juego divide estos valores por 100.loop: si la animacion se repite o se queda en el ultimo frame.
6. meta.json para publisher y Workshop
El archivo meta.json no controla la animacion. Sirve para el empaquetador
y para la informacion del Workshop.
{
"mod_name": "Mi Skin",
"description": "Descripcion corta de la skin.",
"author": "Tu nombre",
"version": "1.0.0",
"preview": "preview.png"
}
Cuando actualizas una skin ya publicada, el publisher puede agregar
workshop_id automaticamente para saber que item debe actualizar.
7. Crear el .jvsk correctamente
Metodo recomendado: jumpfall-skin-jvsk
- Abre
jumpfall-skin-jvsk. - En Folder or file (.jvsk), selecciona la carpeta que contiene
skin.json. - Completa titulo, descripcion, autor, version y preview si corresponde.
- Elige donde guardar el archivo final, por ejemplo
mi_skin.jvsk. - Presiona Package (.jvsk).
skin.json inmediatamente al descomprimir.
Metodo manual, solo si sabes lo que haces
- Entra dentro de la carpeta de la skin.
- Selecciona
skin.json,meta.json,preview.pngy las carpetas de frames. - Crea un ZIP con esos archivos seleccionados.
- Renombra el ZIP de
.zipa.jvsk.
mi_skin.jvsk
skin.json
meta.json
preview.png
idle_frames/
walk_frames/
mi_skin.jvsk
mi_skin/
skin.json
idle_frames/
walk_frames/
8. Probar la skin en Jumpfall
- Copia el archivo
.jvskfinal a:
- Abre Jumpfall en PC.
- Entra al menu de skins locales.
- Selecciona tu skin.
- Pruebala en un mapa con caminar, correr, saltar, pared, dash y muerte.
temp_extract, puede convenir cerrar
y abrir el juego para que vuelva a descomprimir la version nueva del .jvsk.
9. Problemas comunes
La skin no aparece en el juego
- Confirma que el archivo termine en
.jvsk. - Confirma que este en
Documents/jumpfall/skin/local. - Abre el
.jvskcomo ZIP y revisa queskin.jsoneste en la raiz.
Una animacion muestra idle o se ve como la base
- Revisa que esa clave exista dentro de
files. - Revisa que el
pathcoincida exactamente con la carpeta real. - Revisa que la carpeta tenga al menos un PNG.
La skin se ve gigante, chica o desplazada
- Ajusta
visual.scale,widthScaleyheightScale. - Ajusta
xOffsetyyOffseten la animacion que falla. - Usa PNG con lienzo consistente entre frames.
Climbing wall no se ve bien
- Agrega
climbing_wallyclimbing_wall_jumpalskin.json. - Usa
loop: trueparaclimbing_wall. - Usa
loop: falseparaclimbing_wall_jump.