Vad är filformatet XNB?
.xnb är en kompilerad binärfil som lagrar en enskild spelresurs producerad av XNA Game Studio Content Pipeline. .xnb är ett binärt format och kan innehålla bilder, ljuddata, 3D-modeller, typsnitt och många andra resurser. Källtillgångar som .png-texturer eller .wav-ljudklipp kompileras vid byggtid till plattformsoptimerade .xnb-filer som spelet laddar vid körning via Content.Load<T>().
Varje .xnb-fil börjar med ASCII-taggen XNB, följt av en byte för målplattform (w för Windows, x for Xbox 360, m för Windows Phone) och en byte för formatversion. En valfri LZX- eller LZ4-komprimeringsflagga kodas i samma header.
XNA är en uppsättning utvecklingsverktyg för att skapa spel för Microsoft Windows, Windows Phone och Xbox-system. XNA-utvecklingsmiljön baserades på Visual Studio Express och var tillgänglig gratis, och erbjöd en rik uppsättning verktyg och funktioner för spelutvecklare. Microsoft avvecklade XNA med version 4.0 år 2010 och avslutade supporten runt 2014. Open source-ramverken MonoGame och FNA fortsätter att läsa och skriva samma .xnb-format, vilket håller det relevant för titlar som *Terraria*, *Stardew Valley* och *Celeste*, som levererar sin grafik och sitt ljud som .xnb-filer.
Tredjepartsverktyg, inklusive xnbcli och XnbExtract, kan packa upp .xnb-innehåll tillbaka till redigerbara källtillgångar. Relaterade XNA-ljudbanksfiler använder filtilläggen .xsb och .xwb.
Säkerhet & trygghet
RISK: LOWEn XNB är inert kompilerad speldata - en textur, ett ljud eller en datatabell - utan skript eller körbart innehåll, så att öppna eller extrahera en är inte farligt i sig. Två praktiska varningar: extrahering eller vidaredistribution av ett spels tillgångar styrs av det spelets upphovsrätt/EULA (okej för personliga moddar, inte för vidaredistribution), och du bör ladda ner XNB-verktyg från deras officiella arkiv (GitHub) snarare än slumpmässiga «xnb opener»-webbplatser, som ofta är fällor för annonser/PUP eftersom ingen legitim fristående visare för dubbelklick existerar.
Formatdetaljer
i ett nötskalProgram som öppnar XNB-filer
Tekniska detaljer
djup specifikation| Filkodning | Binär, little-endian byteordning |
| Magic bytes | 0x58 0x4E 0x42 (ASCII «XNB») vid offset 0 |
| Header-layout | 3-byte ASCII-tagg «XNB» + 1-byte plattformskod + 1-byte formatversion + 1-byte flaggor + 4-byte total filstorlek (little-endian uint32) |
| Plattformskoder | ’w’ (0x77) = Windows, ’x’ (0x78) = Xbox 360, ’m’ (0x6D) = Windows Phone/Mobile - kodat i byte 3 i varje header |
| Formatversion | Versionerna 1-5; version 5 motsvarar XNA Game Studio 4.0 och är den version som MonoGame och FNA siktar på |
| Komprimering | Valfritt - LZX (XNA 4.0) eller LZ4 (vissa MonoGame-byggen); signaleras av en flaggbit i headerns flagg-byte; nyttolasten lagras ofta okomprimerad |
| Innehållstyper som stöds | Texturer (DXT1/DXT3/DXT5/Color RGBA), ljud (PCM/ADPCM), 3D-modeller, bitmappstypsnitt, kompilerade effekt-shaders, sprite-ark |
| Type-reader manifest | Headern bäddar in en serialiserad lista över ContentTypeReader-klassnamn som körtiden använder för att deserialisera tillgångens objektgraf |
| Tillgångar per fil | En primär tillgång per .xnb-fil; delade underresurser är nästlade inom samma fils serialiserade objektgraf |
| Texturyteformat | Color (32-bitars RGBA), DXT1 (opak 4:1 blockkomprimerad), DXT3, DXT5 - GPU-nativa format som minskar VRAM-avtrycket vid laddning |
| Typisk filstorlek | Några KB för små typsnitt eller sprites; upp till tiotals MB för högupplösta texturer eller okomprimerade ljudspår |
| Integritetskontroll | Total filstorlek lagrad som ett 4-byte little-endian-fält i headern för grundläggande validering; ingen kryptografisk kontrollsumma eller hash ingår |
| Kryptering | Ej krypterad - kompilerade tillgångar lagras som rå binärdata som kan läsas av alla implementeringar som tillhandahåller rätt ContentTypeReader |
| MIME-typ | application/octet-stream (ingen dedikerad MIME-typ registrerad för .xnb) |
| Roll i Content Pipeline | Körtidsutdata från XNA/MonoGame Content Pipeline - källfiler (.png, .wav, .fbx, .spritefont) kompileras vid byggtid till .xnb och laddas vid körning via Content.Load<T>() |
| Noterbara användare | MonoGame och FNA (open source-efterföljare till XNA); används för att leverera tillgångar i Terraria, Stardew Valley, Bastion, Fez och Celeste |
| Släppt | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Senaste version | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Specifikation | en.wikipedia.org |
XNB-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om XNB-filer.