# Spillressurser: medfølgende filer, egne ressurser og delte pakker

Lever bilder, lyd, video og 3D med et PlayDrop-spill: medfølgende filer, spillets egne ressurser, offentlige ressurser og ressurspakker, og oppslag med sdk.assets.

Source: https://www.playdrop.ai/nb/create/learn/game-assets

Et spill kan ha med seg grafikk og lyd på tre måter. Velg den enkleste som gjør det du trenger.

| Måte | Passer for | Slik gjør du |
|---|---|---|
| Medfølgende filer | Alt som bare spillet selv bruker | Legg dem i pakken og last dem inn med relativ sti |
| Ressurser spillet eier | Ressurser du vil ha oppført på PlayDrop, gjenbrukbare eller til salgs | Deklarer dem i `ownedAssets` |
| Offentlige ressurser og ressurspakker | Gjenbruk av ressurser andre skapere har publisert | Referer til dem i `uses` |

## Medfølgende filer

Legg filene ved siden av spillet og last dem inn med relative stier, som `assets/music.mp3`. De lastes opp med [pakken](https://www.playdrop.ai/nb/create/learn/packaging) og bufres av nettleseren og appene. List filene som trengs for å starte, i `prefetch.required`, slik at appene kan laste dem ned tidlig ([livssyklus](https://www.playdrop.ai/nb/create/learn/lifecycle)). Et enkelt HTML-spill må i stedet legge ressursene sine inn i selve filen.

## Ressurser spillet eier

Deklarer ressursene spillet eier, i katalogoppføringen. Hver av dem blir en PlayDrop-ressurs med sin egen side, knyttet til dette spillet:

```json
{
  "ownedAssets": [
    { "name": "moon-theme", "runtimeKey": "music.main", "displayName": "Moon theme",
      "category": "AUDIO", "files": { "primary": "assets/moon-theme.mp3" } },
    { "name": "astronaut", "runtimeKey": "sprites.player", "displayName": "Astronaut",
      "category": "SPRITESHEET", "files": { "atlas": "assets/astronaut.png", "manifest": "assets/astronaut.json" } }
  ]
}
```

- `category` er `IMAGE`, `VIDEO`, `AUDIO`, `SPRITESHEET`, `MODEL_3D` eller `CUSTOM`; `subcategory` og `format` presiserer den.
- `files` knytter roller til stier. Lyd trenger `primary`; spriteark trenger `atlas` og `manifest`.
- `runtimeKey` er navnet spillet bruker for å finne ressursen under kjøring.
- Valgfritt: `visibility`, `license`, `tags`, og `shopListed` med `shopPriceCredits` for å selge den.

## Offentlige ressurser og ressurspakker

Referer til publiserte ressurser etter eksakt revisjon, og til ressurspakker etter versjon:

```json
{
  "uses": {
    "assets": [{ "ref": "asset:someone/forest-tiles@r3", "runtimeKey": "tiles.forest" }],
    "packs": ["pack:someone/ui-kit@1.2.0"]
  }
}
```

Bla gjennom dem i [PlayDrop-ressurser](https://www.playdrop.ai/assets) eller med `sdk.assets.catalog.listPublic()`, `sdk.assets.packs.listPublic()` og `sdk.search.query()`. Et offentlig spill kan bare bruke offentlige ressurser og ressurspakker; respekter lisensen til hver ressurs.

## Finn ressurser under kjøring

```js
const music = sdk.assets.resolveAppAsset("music.main");
const file = music.files.find((entry) => entry.role === "primary");
audioElement.src = file.url;

for (const asset of sdk.assets.listAppAssets()) console.log(asset.runtimeKey, asset.sourceType);
```

Hvert resultat har `assetRef`, `runtimeKey`, `sourceType` (`OWNED`, `DIRECT` eller `PACK`) og `files` med `role`, `url`, `contentType` og `sizeBytes`.

## Hva connectoren godtar

KI-appen din kan laste opp bilder, video, lyd, spriteark og ferdigbakte 3D-modeller, inkludert ferdigbakte prosedyriske bilder og spriteark. Kjørbare 3D-modeller (`MODEL_3D` med underkategorien `procedural` eller formatet `CUSTOM`) kjører i PlayDrops egne verktøy, men avvises av connectoren, fordi API-et ikke kjører kode fra skapere for å validere dem. Bak dem ferdig til et standardformat som GLB, eller referer til en versjon som allerede er publisert på PlayDrop.

Lag ny grafikk og lyd med [KI-generering av ressurser](https://www.playdrop.ai/nb/create/learn/ai-assets). For formater PlayDrop ikke kjenner, se [egendefinerte ressursformater](https://www.playdrop.ai/nb/create/learn/custom-assets).

## Relaterte veiledninger

- [KI-generering av ressurser](https://www.playdrop.ai/nb/create/learn/ai-assets): Generer bilder, musikk, lyd, tale, video og 3D til et spill i PlayDrop, fra nettleseren med bekreftelse fra spilleren eller fra en server skaperen betaler for.
- [Egendefinerte formater og spillerkreasjoner](https://www.playdrop.ai/nb/create/learn/custom-assets): Lag et eget ressursformat med en spesifikasjon, deklarer formatene spillet leser eller skriver, og la spillere lagre og publisere kreasjoner med sdk.assets.custom.
- [Pakking og .play](https://www.playdrop.ai/nb/create/learn/packaging): Organiser en ferdigbygd spillmappe, ZIP eller .play med catalogue.json i roten, deklarer oppføringsmedier og servere, og last opp med prepare_catalogue_upload.
