KI-Asset-Generierung für PlayDrop-Spiele
Bilder, Musik, Soundeffekte, Sprachausgabe, Video und 3D erzeugen: im Browser mit Bestätigung des Spielers oder auf dem Spielserver auf Kosten des Creators.
PlayDrop kann Bilder, Musik, Soundeffekte, Sprachausgabe, Videos und 3D-Modelle erzeugen. Nutze das beim Erstellen eines Spiels oder im Spiel selbst, damit Spieler generierte Inhalte bekommen.
Beim Erstellen des Spiels
Angemeldete Creator erzeugen Assets unter „Erstellen“ auf der PlayDrop-Website (Bild, Musik, Sound, Sprachausgabe, Video und 3D) oder bitten PlayDrop Cloud beim Bauen eines Spiels darum. Jede Generierung kostet Credits, die vor dem Start angezeigt werden, und das Ergebnis wird ein Asset, das dir gehört. Nutze es wie jedes andere Asset: Lade es in dein Paket herunter oder verweise in uses darauf (Spiel-Assets).
Im Spiel: aus dem Browser
sdk.ai.<kind>.createTask(request) bittet PlayDrop, Medien für den aktuellen Spieler zu erzeugen. PlayDrop zeigt dem Spieler eine Bestätigung mit den Credit-Kosten, der Spieler bezahlt, und das Ergebnis ist nur für ihn sichtbar.
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));
}
}- Arten:
image,music,sfx,speech,videoundmodel3d.sdk.ai.inputs.upload(blob)sendet ein Referenzbild. - Es kann immer nur eine Bestätigung offen sein; ein zweiter Aufruf wird mit
ai_generation_in_progressabgelehnt. - Text- und JSON-Generierung aus dem Browser steht gehosteten Spielen nicht zur Verfügung und liefert
app_ai_generation_disabled. Nutze dafür einen Server. - Rufe es nach einer Spieleraktion auf, in der Phase
play, und behandle Abbrüche.
Im Spiel: von einem Server
Auf einem Spielserver erzeugt playdrop.ai aus @playdrop/server Text, JSON, Bilder, Musik, Soundeffekte, Sprachausgabe, Video und 3D. Der Creator bezahlt und besitzt die Ergebnisse standardmäßig; übergib { owner: client.auth }, um ein geeignetes Ergebnis diesem Spieler zu geben.
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 });- Eine generierte Datei ist privat: Lade sie auf dem Server herunter und sende die Bytes nur an den vorgesehenen Spieler.
- Anfragen für Sprachausgabe akzeptieren höchstens 40 Wörter.
- Generierungen von Testspielern gehören weiterhin dem Creator und laufen im Testmodus.
- Diese Aufrufe funktionieren bei hochgeladenen Spielen, nicht in der lokalen Entwicklung.
Generierung kostet Credits. Begrenze also, wie oft Spieler sie auslösen können, und teste eine vollständige Anfrage durch, von der Aufgabe bis zu dem Moment, in dem der Spieler das Ergebnis tatsächlich sieht oder hört, bevor du ein Spiel darum herum baust.