Hva er XNB-filformatet?
.xnb er en kompilert binærfil som lagrer en enkelt spillressurs produsert av XNA Game Studio Content Pipeline. .xnb er et binært format og kan inneholde bilder, lyddata, 3D-modeller, fonter og mange andre ressurser. Kildemateriale som .png-teksturer eller .wav-lydklipp blir kompilert ved bygging til plattformoptimaliserte .xnb-filer som spillet laster ved kjøretid via Content.Load<T>().
Hver .xnb-fil starter med ASCII-taggen XNB, etterfulgt av en byte for målplattform (w for Windows, x for Xbox 360, m for Windows Phone) og en byte for formatversjon. Et valgfritt LZX- eller LZ4-komprimeringsflagg er kodet i den samme headeren.
XNA er et sett med utviklingsverktøy for å lage spill for Microsoft Windows, Windows Phone og Xbox-systemer. XNA-utviklingsmiljøet var basert på Visual Studio Express og var tilgjengelig gratis, og tilbød et rikt sett med verktøy og funksjoner for spillutviklere. Microsoft avviklet XNA med versjon 4.0 i 2010, og avsluttet støtten rundt 2014. Åpen kildekode-rammeverkene MonoGame og FNA fortsetter å lese og skrive det samme .xnb-formatet, noe som holder det relevant for titler som *Terraria*, *Stardew Valley* og *Celeste*, som leverer grafikk og lyd som .xnb-filer.
Tredjepartsverktøy, inkludert xnbcli og XnbExtract, kan pakke ut .xnb-innhold tilbake til redigerbare kildefiler. Relaterte XNA-lydbankfiler bruker filendelsene .xsb og .xwb.
Sikkerhet og trygghet
RISIKO: LOWEn XNB er inerte kompilerte spilldata - en tekstur, lyd eller datatabell - uten skripting eller eksekverbart innhold, så å åpne eller pakke ut en er ikke farlig i seg selv. To praktiske forholdsregler: utpakking eller videresending av et spills ressurser styres av spillets opphavsrett/EULA (greit for personlige modder, ikke for videresending), og du bør laste ned XNB-verktøy fra deres offisielle kilder (GitHub) i stedet for tilfeldige «xnb opener»-sider, som ofte er feller for reklame/PUP siden det ikke finnes noen legitim frittstående visningsprogram.
Formatdetaljer
i et nøtteskallProgrammer som åpner XNB-filer
Tekniske detaljer
dyp spesifikasjon| Filkoding | Binær, little-endian byterekkefølge |
| Magic bytes | 0x58 0x4E 0x42 (ASCII «XNB») ved offset 0 |
| Header-oppsett | 3-byte ASCII-tag «XNB» + 1-byte plattformkode + 1-byte formatversjon + 1-byte flagg + 4-byte total filstørrelse (little-endian uint32) |
| Plattformkoder | «w» (0x77) = Windows, «x» (0x78) = Xbox 360, «m» (0x6D) = Windows Phone/Mobile - kodet i byte 3 i hver header |
| Formatversjon | Versjon 1-5; versjon 5 tilsvarer XNA Game Studio 4.0 og er versjonen MonoGame og FNA retter seg mot |
| Komprimering | Valgfritt - LZX (XNA 4.0) eller LZ4 (enkelte MonoGame-bygg); signalisert av en flagg-bit i headerens flagg-byte; innholdet lagres ofte ukomprimert |
| Innholdstyper støttet | Teksturer (DXT1/DXT3/DXT5/Color RGBA), lyd (PCM/ADPCM), 3D-modeller, bitmap-fonter, kompilerte effekt-shadere, sprite-ark |
| Type-reader manifest | Headeren inneholder en serialisert liste over ContentTypeReader-klassenavn som kjøretidsmiljøet bruker for å deserialisere ressursens objektgraf |
| Ressurser per fil | Én primærressurs per .xnb-fil; delte underressurser er nøstet i samme fils serialiserte objektgraf |
| Teksturoverflateformater | Color (32-bit RGBA), DXT1 (opak 4:1 blokk-komprimert), DXT3, DXT5 - GPU-native formater som reduserer VRAM-bruk ved lasting |
| Typisk filstørrelse | Noen få KB for små fonter eller spriter; opptil titalls MB for høyoppløselige teksturer eller ukomprimerte lydspor |
| Integritetssjekk | Total filstørrelse lagret som et 4-byte little-endian felt i headeren for grunnleggende validering; ingen kryptografisk sjekksum eller hash er inkludert |
| Kryptering | Ikke kryptert - kompilerte ressurser lagres som rene binærdata som kan leses av enhver implementering som har riktig ContentTypeReader |
| MIME-type | application/octet-stream (ingen dedikert MIME-type registrert for .xnb) |
| Content Pipeline-rolle | Kjøretids-output fra XNA/MonoGame Content Pipeline - kildefiler (.png, .wav, .fbx, .spritefont) kompileres ved bygging til .xnb og lastes ved kjøretid via Content.Load<T>() |
| Merkbare brukere | MonoGame og FNA (åpen kildekode-etterfølgere til XNA); brukt til å levere ressurser i Terraria, Stardew Valley, Bastion, Fez og Celeste |
| Utgitt | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Siste versjon | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Spesifikasjon | en.wikipedia.org |
XNB-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om XNB-filer.