Generowanie zasobów z AI dla gier PlayDrop
Generuj obrazy, muzykę, efekty dźwiękowe, mowę, wideo i modele 3D do gry: w przeglądarce za zgodą gracza lub na serwerze gry na koszt twórcy.
PlayDrop potrafi generować obrazy, muzykę, efekty dźwiękowe, mowę, wideo i modele 3D. Korzystaj z tego podczas tworzenia gry albo w samej grze, aby gracze dostawali wygenerowane treści.
Podczas tworzenia gry
Zalogowani twórcy generują zasoby w sekcji Twórz na stronie PlayDrop (obraz, muzyka, dźwięk, mowa, wideo i 3D) albo proszą o nie PlayDrop Cloud podczas budowania gry. Każde generowanie kosztuje kredyty, a koszt jest pokazywany przed startem; wynik staje się zasobem, którego jesteś właścicielem. Używaj go jak każdego innego zasobu: pobierz go do swojego pakietu albo odwołaj się do niego w uses (zasoby gry).
W grze: z przeglądarki
sdk.ai.<kind>.createTask(request) prosi PlayDrop o wygenerowanie multimediów dla bieżącego gracza. PlayDrop pokazuje graczowi potwierdzenie z kosztem w kredytach, gracz płaci, a wynik jest prywatny i należy tylko do niego.
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));
}
}- Rodzaje:
image,music,sfx,speech,videoimodel3d.sdk.ai.inputs.upload(blob)wysyła obraz referencyjny. - Naraz może być otwarte tylko jedno potwierdzenie; drugie wywołanie zostaje odrzucone z
ai_generation_in_progress. - Generowanie tekstu i JSON z przeglądarki jest niedostępne dla hostowanych gier i zwraca
app_ai_generation_disabled. Użyj serwera. - Wywołuj je z akcji gracza, w fazie
play, i obsługuj anulowanie.
W grze: z serwera
Na serwerze gry playdrop.ai z @playdrop/server generuje tekst, JSON, obrazy, muzykę, efekty dźwiękowe, mowę, wideo i 3D. Płaci twórca i domyślnie jest właścicielem wyników; przekaż { owner: client.auth }, aby oddać kwalifikujący się wynik temu graczowi.
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 });- Wygenerowany plik jest prywatny: pobierz go na serwerze i wysyłaj bajty tylko zamierzonemu graczowi.
- Żądanie mowy może mieć najwyżej 40 słów.
- Wyniki generowania uruchomionego przez graczy testowych pozostają własnością twórcy, a samo generowanie działa w trybie testowym.
- Te wywołania działają w przesłanych grach, a nie w lokalnym środowisku deweloperskim.
Generowanie kosztuje kredyty, więc ogranicz, jak często gracze mogą je uruchamiać, i sprawdź jedno kompletne żądanie, od zadania aż do chwili, gdy gracz faktycznie zobaczy lub usłyszy wynik, zanim zbudujesz wokół niego grę.