# Tekoälyresurssien luonti PlayDrop-peleihin

Luo pelille kuvia, musiikkia, ääniä, puhetta, videota ja 3D-malleja PlayDropissa: selaimesta pelaajan vahvistamana tai palvelimelta tekijän maksamana.

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

PlayDrop voi luoda kuvia, musiikkia, ääniefektejä, puhetta, videota ja 3D-malleja. Käytä sitä pelin tekemisen aikana tai pelin sisällä, jotta pelaajat saavat luotua sisältöä.

## Pelin tekemisen aikana

Kirjautuneet tekijät luovat resursseja PlayDropin verkkosivuston Luo-osiosta (kuva, musiikki, ääni, puhe, video ja 3D) tai pyytävät niitä PlayDrop Cloudilta pelin rakentamisen aikana. Jokainen luonti maksaa krediittejä, jotka näytetään ennen sen alkamista, ja tuloksesta tulee omistamasi resurssi. Käytä sitä kuten mitä tahansa muuta resurssia: lataa se pakettiisi tai viittaa siihen kentässä `uses` ([pelin resurssit](https://www.playdrop.ai/fi/create/learn/game-assets)).

## Pelin sisällä: selaimesta

`sdk.ai.<kind>.createTask(request)` pyytää PlayDropia luomaan mediaa nykyiselle pelaajalle. PlayDrop näyttää pelaajalle vahvistuksen krediittihinnan kanssa, pelaaja maksaa, ja tulos on vain hänen.

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

- Tyypit: `image`, `music`, `sfx`, `speech`, `video` ja `model3d`. `sdk.ai.inputs.upload(blob)` lähettää viitekuvan.
- Vain yksi vahvistus voi olla auki kerrallaan; toinen kutsu hylätään virheellä `ai_generation_in_progress`.
- Tekstin ja JSONin luonti selaimesta ei ole isännöityjen pelien käytettävissä ja palauttaa virheen `app_ai_generation_disabled`. Käytä palvelinta.
- Kutsu sitä pelaajan toiminnosta vaiheessa `play` ja käsittele peruutus.

## Pelin sisällä: palvelimelta

[Pelipalvelimella](https://www.playdrop.ai/fi/create/learn/game-servers) `@playdrop/server`-paketin `playdrop.ai` luo tekstiä, JSONia, kuvia, musiikkia, ääniefektejä, puhetta, videota ja 3D-malleja. Tekijä maksaa ja omistaa tulokset oletuksena; anna `{ owner: client.auth }`, jos haluat antaa kelpaavan tuloksen kyseiselle pelaajalle.

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

- Luotu tiedosto on yksityinen: lataa se palvelimella ja lähetä tavut vain sille pelaajalle, jolle se on tarkoitettu.
- Puhepyynnöissä saa olla enintään 40 sanaa.
- Testipelaajien luonnit jäävät tekijän omistukseen ja toimivat testitilassa.
- Nämä kutsut toimivat palveluun ladatuissa peleissä, eivät paikallisessa kehityksessä.

Luonti maksaa krediittejä, joten rajoita, kuinka usein pelaajat voivat käynnistää sen, ja varmista yhden kokonaisen pyynnön toimivan tehtävän luonnista siihen asti, kun pelaaja oikeasti näkee tai kuulee tuloksen, ennen kuin rakennat pelin sen varaan.

## Liittyvät oppaat

- [Pelin resurssit](https://www.playdrop.ai/fi/create/learn/game-assets): Toimita kuvat, äänet, video ja 3D pelin mukana: paketoidut tiedostot, pelin omat resurssit, julkiset resurssit ja paketit sekä haku sdk.assets-rajapinnalla.
- [Reaaliaikaiset pelipalvelimet](https://www.playdrop.ai/fi/create/learn/game-servers): Aja pelillesi isännöityä Colyseus 0.17 -palvelinta MongoDB-tietokannalla, yhdistä selaimesta SDK:lla, testaa kahdella pelaajalla ja tunne rajat.
- [Ansaitseminen](https://www.playdrop.ai/fi/create/learn/monetization): Pyydä arvosteluja requestReview-kutsulla, ota vastaan tippejä, myy tuotteita sdk.shop-rajapinnalla, näytä väli- ja palkintomainoksia ja katso tekijän osuudet.
