# KI-generering av ressurser for PlayDrop-spill

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.

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

PlayDrop kan generere bilder, musikk, lydeffekter, tale, video og 3D-modeller. Bruk det mens du lager et spill, eller inne i et spill slik at spillerne får generert innhold.

## Mens du lager spillet

Innloggede skapere genererer ressurser fra Opprett på PlayDrop-nettstedet (bilde, musikk, lyd, tale, video og 3D) eller ber PlayDrop Cloud om dem mens de bygger et spill. Hver generering koster kreditter, som vises før den starter, og resultatet blir en ressurs du eier. Bruk den som enhver annen ressurs: last den ned i pakken din eller referer til den i `uses` ([spillressurser](https://www.playdrop.ai/nb/create/learn/game-assets)).

## Inne i et spill: fra nettleseren

`sdk.ai.<kind>.createTask(request)` ber PlayDrop generere medier for den nåværende spilleren. PlayDrop viser spilleren en bekreftelse med kredittkostnaden, spilleren betaler, og resultatet er privat for spilleren.

```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` og `model3d`. `sdk.ai.inputs.upload(blob)` sender et referansebilde.
- Bare én bekreftelse kan være åpen om gangen; et nytt kall avvises med `ai_generation_in_progress`.
- Generering av tekst og JSON fra nettleseren er ikke tilgjengelig for hostede spill og returnerer `app_ai_generation_disabled`. Bruk en server.
- Kall det fra en spillerhandling, under `play`, og håndter avbrytelse.

## Inne i et spill: fra en server

På en [spillserver](https://www.playdrop.ai/nb/create/learn/game-servers) genererer `playdrop.ai` fra `@playdrop/server` tekst, JSON, bilder, musikk, lydeffekter, tale, video og 3D. Skaperen betaler og eier resultatene som standard; send med `{ owner: client.auth }` for å gi et kvalifisert resultat til den spilleren.

```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 generert fil er privat: last den ned på serveren og send bytene bare til den tiltenkte spilleren.
- Talebestillinger godtar høyst 40 ord.
- Genereringer fra testspillere eies fortsatt av skaperen og kjører i testmodus.
- Disse kallene fungerer på opplastede spill, ikke i lokal utvikling.

Generering koster kreditter, så begrens hvor ofte spillere kan utløse den, og bevis at én komplett forespørsel fungerer, fra oppgaven til spilleren faktisk ser eller hører resultatet, før du bygger et spill rundt den.

## Relaterte veiledninger

- [Spillressurser](https://www.playdrop.ai/nb/create/learn/game-assets): 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.
- [Sanntidsservere](https://www.playdrop.ai/nb/create/learn/game-servers): Kjør en hostet Colyseus 0.17-server med en MongoDB-database for spillet ditt, koble til fra nettleseren med SDK-en, test med to spillere og kjenn grensene.
- [Inntekter](https://www.playdrop.ai/nb/create/learn/monetization): Be om anmeldelser med requestReview, motta driks, selg varer med sdk.shop, vis mellomliggende annonser og belønningsannonser, og se skaperens andel av hver.
