Hvad er XNB-filformatet?
.xnb er en kompileret binær fil, der gemmer en enkelt spilressource produceret af XNA Game Studio Content Pipeline. .xnb er et binært format og kan indeholde billeder, lyddata, 3D-modeller, skrifttyper og mange andre ressourcer. Kildefiler såsom .png-teksturer eller .wav-lydklip kompileres ved build-tid til platformoptimerede .xnb-filer, som spillet indlæser ved kørsel via Content.Load<T>().
Enhver .xnb-fil starter med ASCII-tagget XNB, efterfulgt af en målplatforms-byte (w for Windows, x for Xbox 360, m for Windows Phone) og en formatversions-byte. Et valgfrit LZX- eller LZ4-komprimeringsflag er kodet i den samme header.
XNA er et sæt udviklingsværktøjer til at skabe spil til Microsoft Windows, Windows Phone og Xbox-systemer. XNA-udviklingsmiljøet var baseret på Visual Studio Express og var tilgængeligt gratis, hvilket tilbød et rigt sæt værktøjer og funktioner til spiludviklere. Microsoft indstillede XNA med version 4.0 i 2010 og afsluttede supporten omkring 2014. Open source-frameworks som MonoGame og FNA fortsætter med at læse og skrive det samme .xnb-format, hvilket holder det relevant for titler som *Terraria*, *Stardew Valley* og *Celeste*, der leverer deres grafik og lyd som .xnb-filer.
Tredjepartsværktøjer, herunder xnbcli og XnbExtract, kan udpakke .xnb-indhold tilbage til redigerbare kildefiler. Relaterede XNA-lydbankfiler bruger filendelserne .xsb og .xwb.
Sikkerhed og tryghed
RISIKO: LOWEn XNB er inaktivt kompileret spildata - en tekstur, lyd eller datatabel - uden scripting eller eksekverbart indhold, så åbning eller udpakning af en er ikke farlig i sig selv. To praktiske forholdsregler: udpakning eller videredistribution af et spils aktiver er styret af det spils ophavsret/EULA (fint til personlige mods, ikke til videredistribution), og du bør downloade XNB-værktøjer fra deres officielle arkiver (GitHub) frem for tilfældige «xnb opener»-sider, som ofte er reklame/PUP-fælder, da der ikke findes nogen legitim selvstændig fremviser til dobbeltklik.
Formatdetaljer
kort fortaltProgrammer der åbner XNB-filer
Tekniske detaljer
dyb specifikation| Filkodning | Binær, little-endian byte-orden |
| Magic bytes | 0x58 0x4E 0x42 (ASCII «XNB») ved offset 0 |
| Header-layout | 3-byte ASCII-tag «XNB» + 1-byte platformskode + 1-byte formatversion + 1-byte flag + 4-byte total filstørrelse (little-endian uint32) |
| Platformskoder | «w» (0x77) = Windows, «x» (0x78) = Xbox 360, «m» (0x6D) = Windows Phone/Mobile - kodet i byte 3 i hver header |
| Formatversion | Version 1-5; version 5 svarer til XNA Game Studio 4.0 og er den version, som MonoGame og FNA målretter |
| Komprimering | Valgfri - LZX (XNA 4.0) eller LZ4 (visse MonoGame-builds); signaleres af en flag-bit i headerens flag-byte; indholdet gemmes ofte ukomprimeret |
| Understøttede indholdstyper | Teksturer (DXT1/DXT3/DXT5/Color RGBA), lyd (PCM/ADPCM), 3D-modeller, bitmap-skrifttyper, kompilerede effekt-shadere, sprite-ark |
| Type-reader manifest | Headeren indlejrer en serialiseret liste over ContentTypeReader-klassenavne, som runtime bruger til at deserialisere aktivets objektgraf |
| Aktiver pr. fil | Ét primært aktiv pr. .xnb-fil; delte underressourcer er indlejret i den samme fils serialiserede objektgraf |
| Teksturoverfladeformater | Color (32-bit RGBA), DXT1 (uigennemsigtig 4:1 blok-komprimeret), DXT3, DXT5 - GPU-native formater, der reducerer VRAM-forbrug ved indlæsning |
| Typisk filstørrelse | Få KB for små skrifttyper eller sprites; op til tivis af MB for højopløselige teksturer eller ukomprimerede lydspor |
| Integritetskontrol | Total filstørrelse gemt som et 4-byte little-endian felt i headeren til grundlæggende validering; ingen kryptografisk tjeksum eller hash er inkluderet |
| Kryptering | Ikke krypteret - kompilerede aktiver gemmes som rå binære data, der kan læses af enhver implementering, der leverer den korrekte ContentTypeReader |
| MIME-type | application/octet-stream (ingen dedikeret MIME-type registreret for .xnb) |
| Rolle i Content Pipeline | Runtime-output fra XNA/MonoGame Content Pipeline - kildefiler (.png, .wav, .fbx, .spritefont) kompileres ved build-tid til .xnb og indlæses ved kørsel via Content.Load<T>() |
| Bemærkelsesværdige brugere | MonoGame og FNA (open source XNA-efterfølgere); bruges til at levere aktiver i Terraria, Stardew Valley, Bastion, Fez og Celeste |
| Udgivet | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Seneste version | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Specifikation | en.wikipedia.org |
XNB-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om XNB-filer.