Vad är filformatet PCF?
En .pcf-fil är en definitionsfil för partikelsystem som används av Valves Source 1-motor. Spel som Team Fortress 2, Portal 2, Left 4 Dead 2 och CS:GO lagrar alla visuella partikeleffekter - explosioner, mynningsflammor, rök och eld - i .pcf-filer.
Formatet använder Valves DMX (Data Model Exchange) binära serialisering. Varje fil börjar med en nollterminerad ASCII-headersträng som «<!-- dmx encoding binary_proto 5 format pcf 2» som identifierar kodningsversionen. Filen är organiserad i tre sektioner: en strängordlista, en elementordlista med typade attribut-värdepar och partikelsystemets dataträd. Varje ParticleSystemDefinition-element refererar till operatörer, renderare, emittrar, initierare och begränsningar via namn. Flera partikelsystem kan samexistera i en .pcf.
Innan Source-motorn kan ladda en .pcf vid körning måste dess sökväg registreras i particles_manifest.txt. Det kanoniska redigeringsverktyget är Source Particle Editor som medföljer Valve SDK-verktygen via Steam.
Fem binära formatversioner existerar, från Binary 2 PCF 1 (The Orange Box, 2007) till Binary 5 PCF 2 (Alien Swarm, 2010 och senare Source 1-spel). Source 2-spel - inklusive Dota 2, CS2 och Half-Life: Alyx - använder .vpcf-textfiler i KeyValues3-format istället, vilket gör .pcf till ett format som endast är för Source 1.
Säkerhet & trygghet
RISK: LOWPCF-filer är ren data (definitioner av partikelsystem) och exekverar inte kod. De kan endast «köras» av Source Engine; att öppna dem i Particle Editor eller en textredigerare är säkert. Skadliga PCF-filer skulle teoretiskt kunna utnyttja en bugg i Source Engines tolkning, men inga sådana CVE:er är kända. Ladda endast ner PCF-moddar från betrodda community-källor (Steam Workshop, gamebanana.com) för att undvika medföljande skadlig kod i zip-arkiv.
Formatdetaljer
i ett nötskal- Microsoft Source Profiler command file - db_name listar felaktigt detta - Microsoft Source Profiler (ett verktyg för Visual C++ från 1990-talet) använde också .pcf; det verktyget är sedan länge nedlagt och irrelevant för nuvarande användning.
- PuTTY Configuration File - Vissa versioner av PuTTY-sessionsexportörer använde .pcf för exporterade sessionskonfigurationer.
- X11 Portable Compiled Font - Bitmap-typsnittsfiler för Unix X Window System; binär kompilerad form av BDF-typsnitt. Används på Linux/BSD X-servrar.
Program som öppnar PCF-filer
Tekniska detaljer
djup specifikation| Magic bytes | Nollterminerad ASCII-header som börjar med «<!-- dmx encoding binary_proto» vid offset 0 |
| Byteordning | Little-endian |
| Container | DMX (Valve Data Model Exchange) binär serialisering |
| Operatörsarkitektur | Varje `ParticleSystemDefinition` kedjar emittrar, initierare, operatörer, krafter, begränsningar och renderare som typade DMX-element |
| Byggverktyg | Source Particle Editor (en del av Hammer/Source SDK på Steam) erbjuder WYSIWYG-förhandsgranskning i realtid för `.pcf`-filer |
| Typisk storlek | 2 KB - 500 KB (enkla effekter till komplexa filer med flera system) |
| Filstruktur | Tre sektioner: strängordlista, elementordlista och partikelsystemets dataträd |
| Kända binära versioner | 5 versioner: Binary 2 DMX 1 till Binary 5 PCF 2; versionen är kodad i ASCII-headersträngen |
| Nuvarande version | Binary 5 PCF 2, använd från Alien Swarm (2010) genom de senaste Source 1-spelen |
| Manifestkrav | Sökvägen måste listas i `particles_manifest.txt` innan Source-motorn kan ladda filen vid körning |
| Stöd för flera system | Flera `ParticleSystemDefinition`-element kan samexistera i en enda fil |
| Source 2-motsvarighet | `.vpcf` (textbaserat KeyValues3-format) som används i Dota 2, CS2 och Half-Life: Alyx |
| Plattformar | Windows, Linux, macOS (Steam/Source Engine-plattformar) |
| Släppt | 2007 (The Orange Box / Team Fortress 2 era; replaced hardcoded engine particles) |
| Senaste version | Binary 5 PCF 2 (used since Alien Swarm, 2010); CS2/Source 2 uses VPCF (text) |
| Specifikation | developer.valvesoftware.com |
PCF-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PCF-filer.