# AI-assets genereren voor PlayDrop-games

Genereer afbeeldingen, muziek, geluidseffecten, spraak, video en 3D in PlayDrop: in de browser met akkoord van de speler, of op een gameserver op kosten van de maker.

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

PlayDrop kan afbeeldingen, muziek, geluidseffecten, spraak, video en 3D-modellen genereren. Gebruik het tijdens het maken van een game, of in een game zodat spelers gegenereerde inhoud krijgen.

## Tijdens het maken van de game

Ingelogde makers genereren assets via Maken op de PlayDrop-website (afbeelding, muziek, geluid, spraak, video en 3D) of vragen het aan PlayDrop Cloud terwijl ze een game bouwen. Elke generatie kost credits, die je ziet voordat ze begint, en het resultaat wordt een asset van jou. Gebruik het zoals elke andere asset: download het in je pakket of verwijs ernaar in `uses` ([game-assets](https://www.playdrop.ai/nl/create/learn/game-assets)).

## In een game: vanuit de browser

`sdk.ai.<kind>.createTask(request)` vraagt PlayDrop media te genereren voor de huidige speler. PlayDrop toont de speler een bevestiging met de creditkosten, de speler betaalt en het resultaat is alleen voor die speler.

```js
try {
  const task = await sdk.ai.image.createTask({ input: "A friendly robot pet, flat colors", aspectRatio: "1:1" });
  const done = await waitForTask(task.id);
  const blob = await sdk.ai.tasks.downloadFile(done.id);
  showPet(URL.createObjectURL(blob));
} catch (error) {
  if (error.message === "ai_generation_cancelled") return;
  throw error;
}

async function waitForTask(id) {
  for (;;) {
    const task = await sdk.ai.tasks.get(id);
    if (task.status === "DONE") return task;
    if (["FAILED", "CANCELLED", "EXPIRED"].includes(task.status)) throw new Error(task.status);
    await new Promise((resolve) => setTimeout(resolve, 2000));
  }
}
```

- Soorten: `image`, `music`, `sfx`, `speech`, `video` en `model3d`. `sdk.ai.inputs.upload(blob)` stuurt een referentieafbeelding.
- Er kan maar één bevestiging tegelijk open zijn; een tweede aanroep wordt geweigerd met `ai_generation_in_progress`.
- Tekst en JSON genereren vanuit de browser is niet beschikbaar voor gehoste games en geeft `app_ai_generation_disabled`. Gebruik een server.
- Roep het aan vanuit een actie van de speler, tijdens `play`, en handel annuleren af.

## In een game: vanaf een server

Op een [gameserver](https://www.playdrop.ai/nl/create/learn/game-servers) genereert `playdrop.ai` uit `@playdrop/server` tekst, JSON, afbeeldingen, muziek, geluidseffecten, spraak, video en 3D. De maker betaalt en is standaard eigenaar van de resultaten; geef `{ owner: client.auth }` mee om een geschikt resultaat aan die speler te geven.

```js
import { playdrop } from "@playdrop/server";

const task = await playdrop.ai.speech.createTask({ input: "Welcome back, captain." }, { owner: client.auth });
// Later, once the task is DONE:
const file = await playdrop.ai.tasks.downloadFile(task.id, { role: "primary" });
client.send("speech", { bytes: new Uint8Array(await file.arrayBuffer()), contentType: file.type });
```

- Een gegenereerd bestand is privé: download het op de server en stuur de bytes alleen naar de beoogde speler.
- Spraakverzoeken accepteren maximaal 40 woorden.
- Generaties van testspelers blijven eigendom van de maker en draaien in testmodus.
- Deze aanroepen werken bij geüploade games, niet in lokale ontwikkeling.

Genereren kost credits, dus beperk hoe vaak spelers het kunnen starten, en bewijs eerst dat één volledig verzoek werkt, van taak tot de speler die het resultaat echt ziet of hoort, voordat je er een game omheen bouwt.

## Gerelateerde gidsen

- [Game-assets](https://www.playdrop.ai/nl/create/learn/game-assets): Lever afbeeldingen, geluid, video en 3D mee: meegeleverde bestanden, eigen assets in catalogue.json, openbare assets en pakketten, en opzoeken met sdk.assets.
- [Realtime gameservers](https://www.playdrop.ai/nl/create/learn/game-servers): Draai een gehoste Colyseus 0.17-server met een MongoDB-database voor je game, verbind vanuit de browser met de SDK, test met twee spelers en ken de limieten.
- [Inkomsten](https://www.playdrop.ai/nl/create/learn/monetization): Vraag om beoordelingen met requestReview, ontvang fooien, verkoop items met sdk.shop, toon tussen- en beloningsadvertenties en zie welk deel de maker verdient.
