# Spelassets på PlayDrop: medföljande filer, egna assets och assetpaket

Leverera bilder, ljud, video och 3D med ett PlayDrop-spel: medföljande filer, spelets egna assets, offentliga assets och assetpaket, och uppslag med sdk.assets.

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

Ett spel kan ha med sig sina bilder och ljud på tre sätt. Välj det enklaste som gör det du behöver.

| Sätt | Passar för | Så gör du |
|---|---|---|
| Medföljande filer | Allt som bara spelet använder | Leverera dem i paketet och läs in dem med relativa sökvägar |
| Spelets egna assets | Assets som du vill visa på PlayDrop, återanvända eller sälja | Deklarera dem i `ownedAssets` |
| Offentliga assets och assetpaket | Återanvända assets som andra skapare har publicerat | Referera till dem i `uses` |

## Medföljande filer

Lägg filerna bredvid spelet och läs in dem med relativa sökvägar, som `assets/music.mp3`. De laddas upp med [paketet](https://www.playdrop.ai/sv/create/learn/packaging) och cachelagras av webbläsaren och apparna. Lista de filer som behövs för att starta i `prefetch.required`, så att apparna kan ladda ner dem tidigt ([livscykel](https://www.playdrop.ai/sv/create/learn/lifecycle)). Ett enkelt HTML-spel måste i stället bädda in sina assets direkt i filen.

## Spelets egna assets

Deklarera de assets som spelet äger i dess katalogpost. Var och en blir en PlayDrop-asset med en egen sida, kopplad till det här spelet:

```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` är `IMAGE`, `VIDEO`, `AUDIO`, `SPRITESHEET`, `MODEL_3D` eller `CUSTOM`; `subcategory` och `format` preciserar den.
- `files` kopplar roller till sökvägar. Ljud kräver `primary`; spritesheets kräver `atlas` och `manifest`.
- `runtimeKey` är namnet som spelet använder för att hitta den när det körs.
- Valfritt: `visibility`, `license`, `tags`, och `shopListed` med `shopPriceCredits` för att sälja den.

## Offentliga assets och assetpaket

Referera till publicerade assets med exakt revision och till assetpaket med version:

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

Bläddra bland dem på [PlayDrops assets](https://www.playdrop.ai/assets) eller med `sdk.assets.catalog.listPublic()`, `sdk.assets.packs.listPublic()` och `sdk.search.query()`. Ett offentligt spel kan bara använda offentliga assets och assetpaket; respektera licensen för varje asset.

## Hitta assets när spelet körs

```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);
```

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

## Det här accepterar connectorn

Din AI-app kan ladda upp bilder, video, ljud, spritesheets och bakade 3D-modeller, inklusive bakade procedurella bilder och spritesheets. Körbara 3D-modeller (`MODEL_3D` med underkategorin `procedural` eller formatet `CUSTOM`) körs i PlayDrops egna verktyg men avvisas av connectorn, eftersom API:et inte kör skaparens kod för att validera dem. Baka dem till ett standardformat som GLB, eller referera till en version som redan är publicerad på PlayDrop.

Gör nya bilder och ljud med [AI-generering av assets](https://www.playdrop.ai/sv/create/learn/ai-assets). För format som PlayDrop inte känner till, se [egna assetformat](https://www.playdrop.ai/sv/create/learn/custom-assets).

## Relaterade guider

- [AI-generering av assets](https://www.playdrop.ai/sv/create/learn/ai-assets): Generera bilder, musik, ljud, tal, video och 3D för ett spel i PlayDrop, från webbläsaren med spelarens bekräftelse eller från en server som skaparen betalar.
- [Egna format och skapelser](https://www.playdrop.ai/sv/create/learn/custom-assets): Skapa ett eget assetformat med en asset spec, deklarera formaten spelet läser eller skriver och låt spelare spara och publicera skapelser med sdk.assets.custom.
- [Paketering och .play](https://www.playdrop.ai/sv/create/learn/packaging): Lägg upp en byggd spelmapp, ZIP eller .play med catalogue.json i roten, deklarera media för spelsidan och servrar och ladda upp med prepare_catalogue_upload.
