# AI-generering av assets för PlayDrop-spel

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.

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

PlayDrop kan generera bilder, musik, ljudeffekter, tal, video och 3D-modeller. Använd det medan du gör ett spel, eller inne i ett spel så att spelarna får genererat innehåll.

## Medan du gör spelet

Inloggade skapare genererar assets från Skapa på PlayDrops webbplats (bild, musik, ljud, tal, video och 3D) eller ber PlayDrop Cloud om dem medan de bygger ett spel. Varje generering kostar krediter, som visas innan den startar, och resultatet blir en asset som du äger. Använd den som vilken annan asset som helst: ladda ner den till ditt paket eller referera till den i `uses` ([spelassets](https://www.playdrop.ai/sv/create/learn/game-assets)).

## Inne i ett spel: från webbläsaren

`sdk.ai.<kind>.createTask(request)` ber PlayDrop generera media åt den aktuella spelaren. PlayDrop visar spelaren en bekräftelse med kreditkostnaden, spelaren betalar och resultatet är privat för spelaren.

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

- Typer: `image`, `music`, `sfx`, `speech`, `video` och `model3d`. `sdk.ai.inputs.upload(blob)` skickar en referensbild.
- Bara en bekräftelse kan vara öppen åt gången; ett andra anrop avvisas med `ai_generation_in_progress`.
- Generering av text och JSON från webbläsaren är inte tillgänglig för hostade spel och returnerar `app_ai_generation_disabled`. Använd en server.
- Anropa det från en spelaråtgärd, under `play`, och hantera avbrott.

## Inne i ett spel: från en server

På en [spelserver](https://www.playdrop.ai/sv/create/learn/game-servers) genererar `playdrop.ai` från `@playdrop/server` text, JSON, bilder, musik, ljudeffekter, tal, video och 3D. Skaparen betalar och äger resultaten som standard; skicka `{ owner: client.auth }` för att ge ett behörigt resultat till den spelaren.

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

- En genererad fil är privat: ladda ner den på servern och skicka byten bara till den avsedda spelaren.
- Talförfrågningar accepterar högst 40 ord.
- Testspelares genereringar ägs fortfarande av skaparen och körs i testläge.
- De här anropen fungerar i uppladdade spel, inte under lokal utveckling.

Generering kostar krediter, så begränsa hur ofta spelare kan starta den, och bevisa att en hel förfrågan fungerar, från uppgift till att spelaren faktiskt ser eller hör resultatet, innan du bygger ett spel kring den.

## Relaterade guider

- [Spelassets](https://www.playdrop.ai/sv/create/learn/game-assets): 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.
- [Spelservrar i realtid](https://www.playdrop.ai/sv/create/learn/game-servers): Kör en hostad Colyseus 0.17-server med en MongoDB-databas för ditt spel, anslut från webbläsaren med SDK:t, testa med två spelare och känn till gränserna.
- [Intäkter](https://www.playdrop.ai/sv/create/learn/monetization): Be om recensioner med requestReview, ta emot dricks, sälj varor med sdk.shop, visa helsides- och belöningsannonser och se hur stor del skaparen tjänar.
