Spaces:
Running
Running
# **Stylová dokumentace a šablony Star Dust Voyager** | |
## **Terminály a CRT obrazovky** | |
* **Styl rozhraní**: CRT-heavy retro-futuristický design s analogovým vzhledem (opalovaný plast, kov). | |
* **Rozlišení**: Pevné násobky pixelů (např. 320times200, 640times480). | |
* **Pixelart rastr**: Viditelné pixely, ostré hrany bez antialiasingu. | |
* **Barvy**: Omezená paleta (monochromatická nebo několik základních barev \- např. zelená, jantarová, červená). Používají se barevné režimy zelený fosfor, jantarový žlutý, sytě červený. | |
* **Scanlines**: Vrstva jemných horizontálních pruhů mezi řádky pixelů. Intenzita 50-70% (simulace rasteru CRT). | |
* **Záře (Glow)**: Slabá záření u jasných prvků (text, LED). Implementována jako rozostřený poloprůhledný obrys (kuželoidní bloom). | |
* **Kovový rámeček**: Terminály mají robustní rám z INDUSTRIAL\_METAL s opotřebovaným lakem. Tlumené odstíny, s drobnými oděrkami a korozí v rozích. | |
* **Obsah obrazovky**: Terminály zobrazují blokový text, jednoduchou vektorovou grafiku nebo statické obrázky (schémata). Animace omezena na 15-20 FPS pro retro dojem. | |
* **Zvuk a animace**: Interakce způsobuje krátké zablikání obrazem (flicker) a pulzování kontrolek. Simulovat analogové chvění jasu. | |
* **Ghosting**: Při rychlém přepínání ponechat slabý „závoj" předchozího obrazu (simulace luminiscence). | |
* **Tearing efekt**: Náhodné horizontální posuny pixelů (drobný obrys, rušení) při přetížení. | |
* **Šum**: Přes obrazovku přidat jemný pixelový šum (grain) s nízkou neprůhledností. | |
* **Zakřivení**: Lehká barelová deformace (barrel distortion) simulující zakřivený tvar obrazovky CRT. | |
**Příklad** | |
TerminalPanel { \[cite: 21\] | |
resolution: (320, 200\) \[cite: 22\] | |
palette: "green\_phosphor" \[cite: 23\] | |
scanlineIntensity: 0.6 \[cite: 24\] | |
glowRadius: 1.0 \[cite: 25\] | |
frameMaterial: "INDUSTRIAL\_METAL" \[cite: 26\] | |
cornerRadius: 4 \[cite: 27\] | |
content: \[ \[cite: 28\] | |
TextBox(font="RetroConsole8", color="green\_phosphor", text="SYSTEM READY"), \[cite: 29, 30\] | |
IndicatorLight(color="amber", state="on") \[cite: 31\] | |
\] | |
} | |
## **Přepínače a ovládací prvky** | |
* **Vzhled**: Mechanické spínače a tlačítka s výraznými 3D detaily \- kovové knoflíky, opotřebovaný plast, nýtové spoje. | |
* **Stavy**: Každý prvek má stavy Normal, Hover, Active (pressed), Disabled, Alert. Pro každý stav definovat změnu jasu, barvy nebo stínu. | |
* **Hover**: Při najetí kurzorem zvýšit mírně jas a přidat jemný glow (zdůraznění aktivního prvku). | |
* **Active**: Při stisku se objekt posune o pár pixelů, jeho barva ztmavne, zvýrazní se vnitřní stín (efekt zatlačení). | |
* **Disabled/Alert**: Neaktivní stav šedý nebo ztlumený. Alarmový stav má blikavé červené světlo, případně invertované barvy. | |
* **Zvuk**: Mechanické cvaknutí při potvrzení, žádné digitální pípy. Použít originální kovové kliky. | |
* **Sprite Textury**: Používat spritesheety s vícestavovými obrázky (např. off/on), aby bylo snadné přepínat stav. | |
* **Mřížka**: Komponenty umisťovat do pixel-perfect mřížky (např. krok 16px). | |
* **Feedback**: Na kliknutí krátké bliknutí nebo puls animace (ripple) kolem tlačítka. | |
**Příklad** | |
ToggleSwitch { \[cite: 46\] | |
size: (48, 16\) \[cite: 47\] | |
offStateTexture: "switch\_off.png" \[cite: 48\] | |
onStateTexture: "switch\_on.png" \[cite: 49\] | |
onHover: enableGlow(intensity=0.2) \[cite: 50\] | |
onClick: playSound("click\_metal.wav") \[cite: 51\] | |
} | |
## **HUD a mapy** | |
* **HUD panely**: Průhledné nebo kovové rámečky, integrované analogové ukazatele a LED pruhy. Indikátory jako segmentové displeje a ručičky. | |
* **Fonty**: Monospace pixelové fonty (8times8 nebo 8times16). Barva kontrastní (typicky neonově zelená, žlutá nebo červená na tmavém pozadí). | |
* **Minimap / Galaktická mapa**: Pozadí tmavé (black), hvězdné pole animované s mírným pohybem (parallax). Body zájmu (planety, hvězdy) neonově zvýrazněné. | |
* **Ikonografie**: Jednoduché ikonky (8times8 nebo 16times16) pro objekty, barevné podle typu. Malé animace (blikání, pulsování) pro pozornost. | |
* **Grid pro HUD**: Používat hrubou mřížku 32px pro hlavní elementy a jemnou 8px pro umisťování textů/ikon. | |
* **Interaktivní prvky**: Kliknutí/hover na ikonky zobrazí tooltipy s efektem zeleného obrysu. Hranice kolmo na mřížku. | |
* **Navigace**: Horní nebo dolní ovládací prvky pro zoom a posun (LED tlačítka, kolečka). | |
* **Indikátory**: Digitální čítače (pixel-art) a analogové metry pro stavy. Např. tahomer, radarové lokátory. | |
**Příklad** | |
HUD\_GalaxyMap { \[cite: 64\] | |
size: (800, 600\) \[cite: 65\] | |
background: Texture("starfield\_static.png") \[cite: 66\] | |
waypoints: \[ \[cite: 68\] | |
{id: "Sol", pos: (150,120), icon:"icon\_star.png", tooltip: "Sol System"}, \[cite: 69, 70\] | |
{id: "Alpha", pos: (500,400), icon: "icon\_planet.png", tooltip: "Alpha Centauri"} \[cite: 71, 72\] | |
\] | |
font: "PixelFont8x8" \[cite: 73\] | |
colorMode: "neon\_green\_on\_black" \[cite: 74\] | |
} | |
## **Hierarchie vrstev a grid systém** | |
* **Vrstvy UI**: Rozdělit prvky do úrovní (background, UI, overlay, efekty). Vrstvy určeny podle z-indexu (pozadí \= 0, UI \= 1-2, efekty \= 4-5, varování \= 6). | |
* **Grid systém**: Hlavní mřížka 32px (moduly, panely), sekundární 8px (text, ikony). Vše pixel-perfect \- přesné násobky pixelů. | |
* **Rozlišení**: Navržené pro pevný poměr stran (např. 4:3 nebo 16:9). Při škálování vždy dělat celočíselnou změnu (beze ztráty ostrých hran). | |
* **Zarovnání textu**: Všechny texty na 8px baselinu. Řádky textu přesně 8px od sebe. | |
* **Focus a modální stavy**: Aktivní okno/komponenta je zvýrazněna. Ostatní prvky lze „zasvětlit" (snížit opacity) pro dohled. | |
* **Responsivita**: Přizpůsobení na nižší rozlišení: skrýt méně důležité panely, zmenšit písmo, zachovat velikost v krocích po pixelech. | |
**Příklad** | |
UILayout { \[cite: 86\] | |
gridMajor: 32 \[cite: 87\] | |
gridMinor: 8 \[cite: 88\] | |
layers: \[ \[cite: 89\] | |
{name: "background", zIndex: 0}, \[cite: 90\] | |
{name: "ui", zIndex: 1}, \[cite: 91\] | |
{name: "overlay", zIndex: 4}, \[cite: 92\] | |
{name: "alerts", zIndex: 6} \[cite: 93\] | |
\] | |
anchors: \["top-left", "center", "bottom-right"\] \[cite: 95\] | |
align: "pixel-perfect" \[cite: 96\] | |
} | |
## **Barevné režimy a fonty** | |
* **Paleta**: Omezené palety připomínající CRT. Obvykle 1-4 barvy na element. Typické barvy: neonově zelená, smaragdově modrá, oranžový jantar. | |
* **Kontrast**: Vysoký kontrast text/pozadí (text\~80-90% jasu, pozadí \~10-20%). Umožňuje čitelnost i při nízkém rozlišení/skenování. | |
* **Fonty**: Ručně malované pixelové fonty s artefakty (drobná nepravidelnost v liních). Žádné vyhlazování. Např. PixelFont8x8, RetroConsole. | |
* **Fallback znaky**: Pro neznámé znaky použít vyplněný blok (blacksquare) nebo prázdný modul. Zajistit čitelné symboly. | |
* **Inverze**: Pro varování/informace přepínat na inverzní zobrazení (bílé texty na černém pozadí nebo červené na černé). | |
* **Materiál textu**: Indikátory (LED, indikátory) využívají vlastní úroveň jasu a barvy (červená, oranžová, neon zelená) oddělené od main palety. | |
**Příklad** | |
StyleSheet { \[cite: 108\] | |
colorScheme: { \[cite: 109\] | |
primary: "\#00FF00", // neon green \[cite: 111\] | |
secondary: "\#002244", // deep blue \[cite: 112\] | |
alert: "\#FF4444" \[cite: 113\] | |
} | |
font: { \[cite: 114\] | |
name: "PixelFont8x8", \[cite: 117\] | |
size: 8, \[cite: 118\] | |
spacing: 2 \[cite: 119\] | |
} | |
terminalEffect: "scanline\_overlay" \[cite: 120\] | |
} | |
## **Terminálové efekty (Scanlines, Glow, Glitch)** | |
* **Scanlines**: Přidat horizontální 1px pruhy mezi řádky. Intenzita \~0.5 (50% opacity). | |
* **Bloom/Glow**: Jasné objekty (text, LED) rozmazat do okolí (malý radius). Např. jasný pixel nabobtná na \-2px rozostřenou záři. | |
* **Deformace CRT**: Mírná barelová deformace obrazu (zakřivení rohů) simulující realitu. | |
* **Glitch**: Občasné náhodné posuny (offset) některých řádků o pár pixelů. Barevné poruchy (RGB oddělení) pro dramatický efekt. | |
* **Šum**: Krátkodobý statický šum \- celý obraz lehce „zavibruje" bíločerným šumem. | |
* **Pořadí aplikace**: Shader efekty aplikovat v pořadí: základní obraz → scanlines → bloom → glitch. | |
**Příklad** | |
Effect ApplyCRTFilters { \[cite: 129\] | |
enableScanlines(opacity=0.6) \[cite: 130\] | |
enableBloom(threshold=0.7, radius=1.0) \[cite: 131\] | |
if (state \== ERROR) { \[cite: 132\] | |
applyGlitch(offsetX=3, duration=0.2) \[cite: 133\] | |
applyColorDrift(rShift=+5, gShift=-5) \[cite: 134\] | |
} | |
} | |
## **Interaktivní stavy a responsivita** | |
* **Stavy UI**: Definovat stavy Normal, Hover, Active, Disabled, Alert. Pro každý stav specifikovat vizuální změny (jas, barva, posun). | |
* **Animace**: Přechody \-0.1s (ease-in-out). Např. lehké vyjasnění při hover. | |
* **Zpětná vazba**: Akce (click, select) generuje krátký pulz (zvýšení jasu/změna barvy) nebo zvukový efekt. | |
* **Klávesové zkratky**: Podtrhnout odpovídající písmeno (např. Enter) a detekovat Alt+\[Key\]. | |
* **Responzivní layout**: Při změně rozlišení měnit velikost prvků po celých pixelech. Na menších rozlišeních skrýt pomocné prvky. | |
* **Zdůraznění**: Vybraný prvek orámovat neonovou barvou (např. zelenou). Zvýraznění může pulsovat. | |
**Příklad** | |
Button { \[cite: 146\] | |
normal: {bg: "\#333333", text: "\#00FF00"} \[cite: 147\] | |
hover: {bg:"\#444444", glow:0.2} \[cite: 148, 149\] | |
active: {offsetY: 2px, shadow: 0.5px, text:"\#99FF99"} \[cite: 150, 151\] | |
onHover: animate(duration=0.1s) \[cite: 152\] | |
onClick: playSound("button\_press.wav") \[cite: 153\] | |
} | |
## **Příklady layoutů** | |
### **Výzkumná konzole** | |
* **Rozvržení**: Levý panel \- textové logy, střední panel \- 3D holografická mapa, pravý panel \- datové statistiky. Vše zarovnáno do 32px mřížky. | |
* **Komponenty**: Terminálové obrazovky s textem, analogové ručičkové měřiče a LED indikátory. Barvy \- zelené a modré akcenty. | |
* **Interakce**: Levý panel scrolluje logy, na mapě lze přemisťovat kameru (otáčet), pravý panel filtruje data. | |
Layout ResearchConsole { \[cite: 161\] | |
panels: \[ \[cite: 163\] | |
{name: "log\_panel", size: (200x400), position: (0,0)}, \[cite: 165\] | |
{name:"3d\_display", size: (400x400), position: (200,0)}, \[cite: 166\] | |
{name:"stats\_panel", size: (200x400), position: (600,0)} \[cite: 167\] | |
\] | |
grid: 32 \[cite: 168\] | |
font: "PixelFont8x8" \[cite: 169\] | |
colorMode: "monochrome\_green" \[cite: 170\] | |
} | |
### **Mapa galaxie** | |
* **Rozvržení**: Celá obrazovka pokryta hvězdným polem. Ikony planet a hvězd jsou barevné a blikají. | |
* **Navigace**: Šipky nebo kolečko pro zoom vlevo/pravý. Ikony pro posun vlevo/vpravo/horní/dolní. | |
* **Grafika**: Spojnice mezi hvězdami neonově zelené, hvězdy pulsují. Pozadí statické se slabým pohybem (parallax). | |
Layout GalaxyMap { \[cite: 175\] | |
background: StarField(texture="stars\_noise.png", parallax=0.6) \[cite: 176\] | |
waypoints: \["Sol", "Alpha", "Vega"\] \[cite: 179\] | |
icons: {star: "star\_icon.png", planet: "planet\_icon.png"} \[cite: 180\] | |
zoomControls: {position:"bottom-right", size: 48} \[cite: 180\] | |
textFont: "PixelFont8x8" \[cite: 180\] | |
highlightColor: "neon\_green" \[cite: 181\] | |
} | |
### **Inventář** | |
* **Rozvržení**: Mřížka 5x4 slotů na předměty na tmavém kovovém pozadí, dolní panel s detailem položky. | |
* **Sloty**: Každý slot hranatý, rámeček kovový. Vybraný slot má zářivě zelený rámeček a lehce pulzuje. | |
* **Ikony**: Pixelové ikony položek se stínem. Konstantní velikost (např. 48x48 px). | |
* **Text**: Vedle vybraného slotu se zobrazí název a popis pixelfontem. | |
Layout Inventory { \[cite: 187\] | |
grid: {columns: 5, rows: 4, cellSize:64, gap:8} \[cite: 189\] | |
slotFrame: Texture("inv\_slot\_frame.png") \[cite: 189\] | |
selectedBorder: {color:"neon\_green", thickness:2} \[cite: 190\] | |
itemIconSize: (48, 48\) \[cite: 191\] | |
infoPanel: {size: (400x100), position: "bottom"} \[cite: 192\] | |
font: "PixelFont8x8" \[cite: 192\] | |
} | |
## **Šablony assetů** | |
* **Lodě**: Modulární design \- trup, křídla, kokpit, motory. Povrch z INDUSTIAL\_METAL s nátěrem, viditelné šrouby a panely. Barevné akcenty (červené/žluté). | |
* **Stanice**: Rozsáhlé kubické bloky, robustní vazby. Textury RUSTED\_STEEL pro exteriér, panely s WORN\_PLASTIC v interiéru. | |
* **Vnitřní moduly**: Chodby a kabíny. Stěny z INDUSTRIAL\_METAL s opotřebovaným nátěrem, ozdobné OSD panely z WORN\_PLASTIC. | |
* **Panely (control panels)**: Vnější rámečky z INDUSTRIAL\_METAL, tlačítka z WORN\_PLASTIC. Povrch 2D textury s dekály (štítky, šrouby). | |
* **Trupy**: Zakřivené kovové části z INDUSTRIAL\_METAL. Opotřebení hlavně na hranách a styčných místech. | |
* **Generátory**: Robustní válce a žebra. Použít RUSTED\_STEEL pro části vystavené žáru (skvrny spáleného kovu), kablíky z CABLING\_BUNDLE. | |
**Příklad** | |
AssetTemplate Ship\_X { \[cite: 203\] | |
modules: \["cockpit", "engine", "wing\_left", "wing\_right", "hull"\] \[cite: 204\] | |
style: "retro\_futuristic" \[cite: 205\] | |
defaultMaterials: \["INDUSTRIAL\_METAL", "RUSTED\_STEEL"\] \[cite: 206\] | |
textureLayers: \[ \[cite: 207\] | |
{material: "INDUSTRIAL\_METAL", normalMap: "metal\_norm.png"}, \[cite: 211\] | |
{material: "WORN\_PLASTIC", decal: "panel\_scratch.png"} \[cite: 212\] | |
\] | |
} | |
### **INDUSTRIAL\_METAL** | |
* **Barva**: Tmavě ocelová se studeným odstínem. Lehce zelenkavá nebo šedá patina. | |
* **Textura**: Jemné kovové zrno, škrábance. Přidat šmouhy oleje/maziva. | |
* **Specular**: Nízký, povrch matný (roughness \~0.7). Lesklejší prvky na okrajích škrábanců. | |
* **Opotřebení**: Okraje a hřeby světlejší. Použít masku pro odřeniny a odlupování laku. | |
* **Normálová mapa**: Zvýraznění promáčklin a škrábanců pro realistické odlesky. | |
* **Použití**: Trupy, nosníky, exteriér lodí a stanic. | |
**Příklad** | |
Material INDUSTRIAL\_METAL { \[cite: 220\] | |
baseColor: \#5A5D61 \[cite: 221\] | |
roughness: 0.7 \[cite: 222\] | |
normalTexture: "industrial\_metal\_norm.png" \[cite: 223\] | |
scratchTexture: "metal\_scratches.png" \[cite: 224\] | |
} | |
### **WORN\_PLASTIC** | |
* **Barva**: Tmavě šedá nebo olivová, matný plast. Povrch původně lakovaný. | |
* **Opotřebení**: Oděry a škrábance odhalující světlejší plast v hloubce. Místy odštípnutý lak. | |
* **Struktura**: Jemná granulace (simulace výlisku). Škrábance jako drobné čáry. | |
* **Lesk**: Velmi nízký (průmyslový mat, roughness \~0.9). | |
* **Použití**: Kryty ovládacích panelů, madla, interiérové obklady. | |
**Příklad** | |
Material WORN\_PLASTIC { \[cite: 233\] | |
baseColor: \#4B4B4B \[cite: 234\] | |
roughness: 0.9 \[cite: 235\] | |
normalTexture: "worn\_plastic\_norm.png" \[cite: 236\] | |
decalTexture: "plastic\_dents.png" \[cite: 237\] | |
} | |
### **RUSTED\_STEEL** | |
* **Barva**: Rezavě hnědá/oranžová. Na podkladu tmavý kov (tmavě hnědý). | |
* **Koroze**: Hluboké mapy rzi na exponovaných místech. Nerovnoměrné flíčky rezu. | |
* **Povrch**: Matný (rust není lesklý). Odlupuje se s mírou (podklad obnažen). | |
* **Detaily**: Vypálené či zašpiněné oblasti (okolo šroubů, hran). | |
* **Použití**: Exteriér stanic, potrubí, generátorů, části kde je vlhkost/chemická zátěž. | |
**Příklad** | |
Material RUSTED\_STEEL { \[cite: 247\] | |
baseColor: \#664433 \[cite: 248\] | |
rustIntensity: 0.8 \[cite: 249\] | |
rustMask: "rust\_blots.png" \[cite: 250\] | |
normalTexture: "rusted\_steel\_norm.png" \[cite: 251\] | |
} | |
### **CABLING\_BUNDLE** | |
* **Barva**: Mix kabelů \- základem černá/gumová izolace. Varovné žluté/červené proužky. | |
* **Textura**: Zřetelné spojovací prvky (dráty, konektory). Praporkovité izolace navinuté okolo. | |
* **Opletení**: U většiny kabelů spirálový pruhový vzor (světlejší linky). | |
* **Detaily**: Namáčení na spojích, pájené spoje. Mírně lesklé koncové konektory. | |
* **Použití**: Elektrické trasy, moduly s elektronikou, spotřebiče. | |
**Příklad** | |
Material CABLING\_BUNDLE { \[cite: 260\] | |
baseColor: \#222222 \[cite: 261\] | |
wireCount: 6 \[cite: 262\] | |
insulationPattern: "spiral\_stripes.png" \[cite: 263\] | |
connectorTexture: "metal\_connector.png" \[cite: 264\] | |
} | |
## **Vrstvení a efekty opotřebení** | |
* **Základní vrstvy**: Používat sekvenci base \> dirt \> scratch \> edgeHighlight. Nejprve nanést čistý základní materiál, potom vrstvy nečistot, škrábanců a nakonec krajové opotřebení. | |
* **Parametrická patina**: Použití Perlinova šumu či Voronoi pro generování koroze a škrábanců s náhodným seedem. | |
* **Ovládací parametry**: hustota škrábanců, velikost flíčků, směr degradace. | |
* **Hrany**: Kraje dílů zvýraznit světlejší barvou (simulace obrusu). Maskovat podle vzdálenosti od okraje. | |
* **Kombinování efektů**: Smíchat celoplošné (základní patinování) s drobnými (bodové škrábance, kapky). | |
* **Maskování**: Použít grunge masky k umístění efektů (okraje, rohy). Zachovat pixelart ostrost (masky high-contrast). | |
* **Automatizace**: Procedurálně generovat drobné detaily (čárky, tečky) skripty (např. náhodné 1px linky). | |
**Příklad** | |
LayeredTexture WallModule { \[cite: 276\] | |
baseLayer: Material("INDUSTRIAL\_METAL") \[cite: 277\] | |
addLayer(type="DIRT", opacity=0.3, seed=42) \[cite: 278\] | |
addLayer(type="SCRATCHES", density=0.5, angle=45) \[cite: 279\] | |
applyEdgeMask(intensity=0.8) \[cite: 281\] | |
} | |
## **Texturovací modely** | |
* **Panely (Control Panels)**: Velikost obvykle malé (32times32 až 128times128 px). Rozděleny do sekcí (knoflíky, obrazovka). Použít uniformní rám a textury šroubů a štítků. | |
* **Zařízení (Devices)**: Kulatá nebo válcová tělesa (motory, baterie). Povrch rozdělen na segmenty s různými materiály (kov, plast, zářivka). | |
* **Přepážky (Partitions)**: Rovné plochy stěn. Použít opakující se modulární vzor (geometrická mřížka, ventily). | |
* **Pozadí**: Technologické pozadí s jemnými detaily (potrubí, cívky, perforace). Nízká kontrast, aby nepřehlušilo primární objekty. | |
* **Normal mapy**: Vypočíst z vysoko-kontrastních základních vzorů (šrouby, prolisy). | |
* **UV layout**: Šablony pro standardní tvary (1times1 panel, 2times1 krychle apod.) pro konzistentní texturování. | |
**Příklad** | |
TextureModel ControlPanel { \[cite: 292\] | |
size: (64, 64\) \[cite: 293\] | |
segments: 4x2 \[cite: 294\] | |
baseTexture: "panel\_base.png" \[cite: 295\] | |
detailOverlays: \["screws.png", "buttons.png"\] \[cite: 296\] | |
normalMap: "panel\_norm.png" \[cite: 297\] | |
} | |
## **Příklady generování modulu** | |
* **Tvar modulu**: Definovat základní geometrii (např. krychle, válec). Nastavit UV-mapping odpovídající rozměrům. | |
* **Hlavní materiál**: Aplikovat primární materiál (např. INDUSTRIAL\_METAL) na všechny plochy. | |
* **Doplňkové vrstvy**: Nad hlavní materiál přidat vrstvy opotřebení: WORN\_PLASTIC pro oděrky, RUSTED\_STEEL pro korozi na okrajích, CABLING\_BUNDLE pro elektrická vedení. | |
* **Detaily**: Generovat dekorativní části \- větrací otvory, šrouby, světla \- samostatně a integrovat jako transparentní mapy nebo 3D prvky. | |
* **Kombinace textur**: Vrstvy spojit do výsledné textury (displacement map). Při velkém rozlišení zachovat pixelovou ostrost (více mipmap, žádné bilineární rozmazání). | |
**Příklad** | |
ModuleTexture EngineBay { \[cite: 307\] | |
shape: "Cylinder" \[cite: 308\] | |
baseMaterial: "INDUSTRIAL\_METAL" \[cite: 309\] | |
addLayer(material="RUSTED\_STEEL", amount=0.4, region="edges") \[cite: 310\] | |
addLayer(material="WORN\_PLASTIC", amount=0.2, region="center") \[cite: 311\] | |
addDetail(type="CABLING\_BUNDLE", position=(32,64)) \[cite: 311\] | |
finalize() \[cite: 311\] | |
} | |
## **Výbuchy a fléry** | |
* **Frame-by-frame**: Sekvence 8-12 snímků. Začíná jasným explozním středem (white-hot), postupně se rozrůstá oblak (oranžovo-žlutý) a končí šedivým kouřem. | |
* **Expanze**: Každý další snímek mírně zvětší průměr exploze. Simulace rozptylu částic (jiskry) v pozadí. | |
* **Barvy**: Počáteční snímek bílý/yellow, následují oranžové a tmavnoucí červené tóny, nakonec šedý/černý kouř. | |
* **Částice**: Kromě hlavního plamene emulovat drobné jiskry a úlomky (2D pixel particle system). | |
* **Loop**: Jednorázová animace (loop \= false). Po dokončení spustit event (např. audio „boom"). | |
* **Světelný flash**: První snímek může být o jeden stupeň jasnější (přesvětlený). | |
**Příklad** | |
Animation EngineExplosion { \[cite: 324\] | |
frames: 10 \[cite: 325\] | |
frameRate: 12 \[cite: 326\] | |
sprites: \["exp0.png", "exp1.png", ... ,"exp9.png"\] \[cite: 327\] | |
loop: false \[cite: 328\] | |
onComplete: emit("ExplosionDone") \[cite: 329\] | |
} | |
## **Glitch efekty** | |
* **Horizontální posuvy**: Náhodně posunovat některé řádky obrazu o několik pixelů (offset glitch). Častá frekvence krátkodobě (např. 5-10Hz). | |
* **Chromatická aberace**: Mírný posuv RGB kanálů (červený a modrý rozestup) pro digitální šum. | |
* **Šumové linie**: Vertikální a horizontální lineární šum (blikající bíločerné pruhy). | |
* **Frekvence**: Epizodicky, ne konstantně \- glitch se objevuje v intervalech (např. 2-5 sekund trvající burst). | |
* **Selektivní aplikace**: Aplikovat na specifický prvek (monitor, HUD) nebo celou vrstvu obrazovky. | |
**Příklad** | |
Effect ScreenGlitch { \[cite: 338\] | |
horizontalJitter(intensity=2px, frequency=10Hz) \[cite: 339\] | |
verticalNoise(strength=0.3) \[cite: 340\] | |
onAlert: colorShift(r=+10, g=-5, b=+10) \[cite: 341\] | |
} | |
## **Parallax a ambientní efekty** | |
* **Parallax**: Více vrstev pozadí s různou rychlostí posuvu. Např. vzdálené hvězdy pomalu, blízké rychleji. | |
* **Ambientní světla**: Statické kontrolky a světelné panely, které občas bliknou (blinking) nebo plynule mění jas (pulsování). | |
* **Šum**: Jemný celoplošný šum (grain) přidán na vrstvu, simulující statický signál. | |
* **Částice**: Drobná animovaná částice prachu nebo kouře v popředí pro hloubku (nízká transparentnost). | |
* **Kamera**: Při akcích (výbuchu, letu) aplikovat lehký pohyb kamery (shake, slewing) pro dynamiku. | |
**Příklad** | |
ParallaxScene { | |
layers: \[ | |
{asset:"stars\_far.png", speed:0.2}, | |
{asset:"stars\_near.png", speed:0.5}, | |
{asset:"space\_dust.png", speed:0.8} | |
\] | |
ambientLights: \[ | |
{color:"red", pattern:"blink", interval:1.0}, | |
{color:"green", pattern:"pulse", interval:0.5} | |
\] | |
noiseOverlay: {strength:0.05} | |
} | |
## **Simulace starého terminálu** | |
* **Textový výstup**: Postupné „psaní“ znaků s pauzami (typewriter effect). Každý znak doprovázen krátkým pípnutím. | |
* **Varovné stavy**: Při chybě střídavě blikat celé slovo nebo řádek (červeně) – invertovat barvy textu nebo použít efektní blikající pozadí. | |
* **FIFO buffer**: Na obrazovce se text vykresluje po řádcích z fronty. Každý nový řádek se posouvá nahoru. | |
* **Kursor**: Blikající podtržítko nebo blok ukazující aktivní pozici textu (blinking cursor \~2Hz). | |
* **Tónové efekty**: Nahrát charakteristický šum pro každé odeslané písmeno a varovné syčení. | |
**Příklad** | |
TerminalAnimation { | |
textLines: \["Accessing system...", "Loading data...", "WARNING: OVERLOAD"\] | |
charDelay: 0.05s | |
onWarning: flashText(color="red", duration=0.5) | |
cursor: blink(rate=2Hz) | |
} | |
## **Příklady efektů** | |
### **Výbuch motoru** | |
* Frame-by-frame animace motorového výbuchu: rychlý počáteční blesk, oblaka kouře do strany. | |
Animation EngineExplosion { | |
frames: 12 \[cite: 357\] | |
frameRate: 15 \[cite: 357\] | |
sprites: \["eng\_exp0.png","eng\_exp1.png",...,"eng\_exp11.png"\] \[cite: 357\] | |
loop: false \[cite: 357\] | |
onComplete: spawnDebris() \[cite: 357\] | |
} | |
### **Glitch monitoru** | |
* Post-procesní glitch efekt na obrazovce: náhodné rovnoběžné posuvy a barevný šum. | |
Effect MonitorGlitch { | |
horizontalShift(intensity=3px, frequency=8Hz) | |
noiseOverlay(strength=0.2) | |
colorDrift(r=+20, g=-10, b=+20) | |
} | |
### **Přechod obrazovky** | |
* Stylizovaný přechod mezi obrazovkami: z černé do neonové barvy s přídavným scanline efektem. | |
Transition ScreenFade { | |
fromColor: "black" | |
toColor: "green" | |
duration: 0.8 | |
overlayScanlines: true | |
soundEffect: "static\_burst.wav" | |
} | |