Geração de assets com IA para jogos do PlayDrop
Gere imagens, música, efeitos sonoros, fala, vídeo e modelos 3D no PlayDrop, pelo navegador com confirmação do jogador ou por um servidor pago pelo criador.
O PlayDrop pode gerar imagens, música, efeitos sonoros, fala, vídeo e modelos 3D. Use esse recurso enquanto cria um jogo ou dentro de um jogo, para que os jogadores recebam conteúdo gerado.
Enquanto você cria o jogo
Criadores logados geram assets em Criar, no site do PlayDrop (imagem, música, som, fala, vídeo e 3D), ou pedem ao PlayDrop Cloud enquanto criam um jogo. Cada geração custa Créditos, mostrados antes de começar, e o resultado vira um asset seu. Use-o como qualquer outro asset: baixe-o para o seu pacote ou faça referência a ele em uses (assets de jogo).
Dentro de um jogo: pelo navegador
sdk.ai.<kind>.createTask(request) pede ao PlayDrop que gere mídia para o jogador atual. O PlayDrop mostra ao jogador uma confirmação com o custo em Créditos, o jogador paga e o resultado fica privado para ele.
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));
}
}- Tipos:
image,music,sfx,speech,videoemodel3d.sdk.ai.inputs.upload(blob)envia uma imagem de referência. - Só uma confirmação pode ficar aberta por vez; uma segunda chamada é rejeitada com
ai_generation_in_progress. - A geração de texto e JSON pelo navegador não está disponível para jogos hospedados e retorna
app_ai_generation_disabled. Use um servidor. - Faça a chamada a partir de uma ação do jogador, durante
play, e trate o cancelamento.
Dentro de um jogo: por um servidor
Em um servidor de jogo, playdrop.ai de @playdrop/server gera texto, JSON, imagens, música, efeitos sonoros, fala, vídeo e 3D. O criador paga e, por padrão, é dono dos resultados; passe { owner: client.auth } para entregar um resultado elegível a esse jogador.
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 });- Um arquivo gerado é privado: baixe-o no servidor e envie os bytes somente ao jogador de destino.
- Solicitações de fala aceitam no máximo 40 palavras.
- As gerações dos jogadores de teste continuam pertencendo ao criador e rodam em modo de teste.
- Essas chamadas funcionam em jogos enviados, não no desenvolvimento local.
A geração custa Créditos, então limite a frequência com que os jogadores podem acioná-la e comprove uma solicitação completa, da tarefa até o jogador realmente ver ou ouvir o resultado, antes de construir um jogo em torno dela.