>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
JavaScript

Universele LPC Pixel Character Generator — Zo stel je in een paar minuten een spritesheet samen voor een 2D-game

Sprites tekenen voor een pixel-RPG is een vervelende en tijdrovende taak. Wanneer je tientallen verschillende personages nodig hebt met loopcycli, zwaardslagen, boogschoten en doodse animaties, vermenigvuldigt de werklast zich direct. Het is nog moeilijker om ervoor te zorgen dat alle kleding, kapsels en harnas correct op elkaar worden gelegd over elk frame.

In 2012 lanceerden de OpenGameArt-community, samen met Creative Commons en Mozilla, de Liberated Pixel Cup-wedstrijd. Het doel was eenvoudig: een uniforme open grafische standaard voor 2D-games vaststellen. Deze wedstrijd evolueerde naar het Universal LPC Spritesheet Character Generator-project. Het is een webapplicatie en een set onderling compatibele sprites waarmee je kant-en-klare helden kunt samenstellen.

Hoe de generator werkt

De tool draait rechtstreeks in de browser. Je selecteert een basisbodymodel, voegt kleding toe, harnas, kiest een kapsel en wapen. De applicatie legt alles in de juiste volgorde en genereert een enkele spritesheet-afbeelding.

Voorbeeld van gegenereerde sprites

Deze aanpak heeft twee belangrijke voordelen:

  • Elk detail is vooraf geanimeerd voor een standaardset bewegingen (lopen, zwaardaanval, rennen, zwaai, schade oplopen).
  • Verschillende LPC-stijlelementen komen overeen in verhoudingen en pixelgrid.

Als je een gardist in volledig plaatwerk met een hellebaard of een boer in een jutehemd nodig hebt, stel je ze samen uit kant-en-klare stukken in drie klikken.

Licenties en juridische nuances

Verschillende auteurs hebben assets voor het project gemaakt onder verschillende licenties. Een enkele spritesheet kan elementen bevatten met overlappende CC0-, CC-By-, CC-By-SA-, OGA-By- en GPL-licenties.

De belangrijkste uitdaging van open graphics is de noodzaak om alle auteurs te vermelden. Als je een aangepaste baard van de ene kunstenaar en een schild van een andere hebt genomen, moet je ze vermelden in de credits.

De auteurs van de generator hebben dit gemakkelijker gemaakt. Samen met de definitieve afbeelding levert de service een tekstbestand of CSV met een lijst van auteurs voor alle gebruikte lagen.

Schermafbeelding van licentie-export

Je hoeft alleen CREDITS.csv bij je game te voegen of de namen weer te geven in een in-game creditsmenu. Als je een release plant op platforms met DRM (zoals Steam of App Store), raden de ontwikkelaars aan voorzichtiger te zijn met assets onder CC-By-SA en varianten met CC0 of OGA-By te kiezen.

Onder de motorkap

De frontend van het project is gebouwd met Vite en TypeScript. Een interessant detail is het systeem voor het veranderen van elementkleuren.

Voorheen werd herkleuren van haar of harnas gedaan op de CPU via pixel-voor-pixel kleurvervanging in de Canvas API. Op grote spritesheets veroorzaakte dit vertragingen bij het schakelen van sliders in de interface. De ontwikkelaars hebben dit kritische mechanisme herschreven met WebGL-shaders.

Nu wordt de palette als textuur aan de fragment shader doorgegeven, en vindt het herkleuren plaats op de GPU. De preview-generatietijd daalde van 200 milliseconden naar 90. Als de browser of grafische kaart geen WebGL ondersteunt, schakelt de applicatie automatisch terug naar de oude CPU-render.

Je kunt de rendermodus rechtstreeks vanuit de browserconsole regelen:

// Проверить текущий режим
getPaletteRecolorConfig();

// Принудительно включить CPU для отладки
setPaletteRecolorMode("cpu");

// Вернуть WebGL
setPaletteRecolorMode("webgl");

Voor prestatie tracking is er een profiler ingebouwd in de code. In de lokale ontwikkelingsmodus meet het FPS, geheugengebruik en laagtekentijd op Canvas.

Lokale installatie en engine-integratie

Als je de generator lokaal wilt deployen of je eigen sprites wilt toevoegen, is het project eenvoudig lokaal uit te voeren:

git clone https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git
cd Universal-LPC-Spritesheet-Character-Generator
npm install
npm run dev

Daarna is de applicatie beschikbaar op http://localhost:5173.

Voor de populaire Godot-engine zijn kant-en-klare plugins gemaakt (voor versies 3.5 en 4.2) die LPC-spritesheets kunnen importeren en automatisch in animatietracks kunnen snijden. De community is ook bezig met het samenstellen van een starter plugin pack voor RPG Maker MZ.

Voor wie is dit project nuttig

Universal LPC Spritesheet Generator is een reddingsboei voor indie-ontwikkelaars en game jam-deelnemers. Wanneer er geen budget is voor een 2D-artiest, dekt deze tool je personagebehoeften voor een prototype of zelfs een volledige retro-RPG.

De graphics hier zijn specifiek, met hun eigen herkenbare stijl van 90s 16-bit games. Maar als deze stijl bij je game past, bespaar je honderden uren spritewerk.

Gerelateerde projecten