# Pembuatan aset AI untuk game PlayDrop

Buat gambar, musik, efek suara, ucapan, video, dan 3D untuk game PlayDrop, dari browser dengan konfirmasi pemain atau dari server game atas biaya kreator.

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

PlayDrop bisa membuat gambar, musik, efek suara, ucapan, video, dan model 3D. Gunakan fitur ini saat membuat game, atau di dalam game agar pemain mendapatkan konten yang dihasilkan.

## Saat membuat game

Kreator yang sudah masuk membuat aset dari Buat di situs web PlayDrop (gambar, musik, suara, ucapan, video, dan 3D) atau meminta PlayDrop Cloud saat membangun game. Setiap pembuatan berbiaya Kredit, yang ditampilkan sebelum dimulai, dan hasilnya menjadi aset milik Anda. Gunakan seperti aset lainnya: unduh ke dalam paket Anda atau rujuk di `uses` ([aset game](https://www.playdrop.ai/id/create/learn/game-assets)).

## Di dalam game: dari browser

`sdk.ai.<kind>.createTask(request)` meminta PlayDrop membuat media untuk pemain saat ini. PlayDrop menampilkan konfirmasi berisi biaya Kredit kepada pemain, pemain yang membayar, dan hasilnya privat untuk pemain tersebut.

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

- Jenis: `image`, `music`, `sfx`, `speech`, `video`, dan `model3d`. `sdk.ai.inputs.upload(blob)` mengirim gambar referensi.
- Hanya satu konfirmasi yang bisa terbuka pada satu waktu; panggilan kedua ditolak dengan `ai_generation_in_progress`.
- Pembuatan teks dan JSON dari browser tidak tersedia untuk game yang di-hosting dan mengembalikan `app_ai_generation_disabled`. Gunakan server.
- Panggil dari tindakan pemain, selama `play`, dan tangani pembatalan.

## Di dalam game: dari server

Di [server game](https://www.playdrop.ai/id/create/learn/game-servers), `playdrop.ai` dari `@playdrop/server` membuat teks, JSON, gambar, musik, efek suara, ucapan, video, dan 3D. Kreator yang membayar dan secara default memiliki hasilnya; berikan `{ owner: client.auth }` untuk memberikan hasil yang memenuhi syarat kepada pemain tersebut.

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

- Berkas yang dihasilkan bersifat privat: unduh di server dan kirim byte-nya hanya ke pemain yang dituju.
- Permintaan ucapan menerima maksimal 40 kata.
- Hasil pembuatan dari pemain uji tetap dimiliki kreator dan berjalan dalam mode uji.
- Panggilan ini berfungsi pada game yang sudah diunggah, tidak dalam pengembangan lokal.

Pembuatan berbiaya Kredit, jadi batasi seberapa sering pemain bisa memicunya, dan buktikan satu permintaan lengkap, dari tugas sampai pemain benar-benar melihat atau mendengar hasilnya, sebelum membangun game di sekitarnya.

## Panduan terkait

- [Aset game](https://www.playdrop.ai/id/create/learn/game-assets): Sertakan gambar, suara, video, dan 3D di game PlayDrop: berkas bawaan, aset milik game, aset serta pack publik, dan pencarian lewat sdk.assets.
- [Server game realtime](https://www.playdrop.ai/id/create/learn/game-servers): Jalankan server Colyseus 0.17 yang di-hosting dengan MongoDB untuk game Anda, hubungkan dari browser lewat SDK, uji dengan dua pemain, dan pahami batasnya.
- [Monetisasi](https://www.playdrop.ai/id/create/learn/monetization): Minta ulasan dengan requestReview, terima tip, jual item dengan sdk.shop, tampilkan iklan interstisial dan berhadiah, serta lihat bagian penghasilan kreator.
