Zasoby gier w PlayDrop: pliki w pakiecie, zasoby gry i wspólne pakiety
Dodaj do gry obrazy, dźwięk, wideo i 3D: pliki w pakiecie, zasoby należące do gry, publiczne zasoby i pakiety oraz wyszukiwanie przez sdk.assets.
Grafikę i dźwięk możesz dodać do gry na trzy sposoby. Wybierz najprostszy, który robi to, czego potrzebujesz.
| Sposób | Do czego się nadaje | Jak |
|---|---|---|
| Pliki w pakiecie | Wszystko, czego używa wyłącznie ta gra | Umieść je w pakiecie i ładuj ścieżką względną |
| Zasoby należące do gry | Zasoby, które mają być widoczne w PlayDrop, wielokrotnego użytku lub na sprzedaż | Zadeklaruj je w ownedAssets |
| Publiczne zasoby i pakiety zasobów | Ponowne użycie zasobów opublikowanych przez innych twórców | Odwołaj się do nich w uses |
Pliki w pakiecie
Umieść pliki obok gry i ładuj je ścieżkami względnymi, takimi jak assets/music.mp3. Są przesyłane razem z pakietem i buforowane przez przeglądarkę i aplikacje. Wypisz te potrzebne do startu w prefetch.required, aby aplikacje mogły pobrać je wcześniej (cykl życia). Prosta gra HTML musi zamiast tego osadzić swoje zasoby w pliku.
Zasoby należące do gry
Zadeklaruj zasoby należące do gry w jej wpisie katalogu. Każdy z nich staje się zasobem PlayDrop z własną stroną, powiązanym z tą grą:
{
"ownedAssets": [
{ "name": "moon-theme", "runtimeKey": "music.main", "displayName": "Moon theme",
"category": "AUDIO", "files": { "primary": "assets/moon-theme.mp3" } },
{ "name": "astronaut", "runtimeKey": "sprites.player", "displayName": "Astronaut",
"category": "SPRITESHEET", "files": { "atlas": "assets/astronaut.png", "manifest": "assets/astronaut.json" } }
]
}categorytoIMAGE,VIDEO,AUDIO,SPRITESHEET,MODEL_3DlubCUSTOM;subcategoryiformatją doprecyzowują.filesprzypisuje role do ścieżek. Dźwięk wymagaprimary; arkusze sprite'ów wymagająatlasimanifest.runtimeKeyto nazwa, po której gra znajduje zasób w czasie działania.- Opcjonalnie:
visibility,license,tagsorazshopListedzshopPriceCredits, aby sprzedawać zasób.
Publiczne zasoby i pakiety zasobów
Odwołuj się do opublikowanych zasobów w dokładnej rewizji, a do pakietów zasobów w wersji:
{
"uses": {
"assets": [{ "ref": "asset:someone/forest-tiles@r3", "runtimeKey": "tiles.forest" }],
"packs": ["pack:someone/ui-kit@1.2.0"]
}
}Przeglądaj je w zasobach PlayDrop albo przez sdk.assets.catalog.listPublic(), sdk.assets.packs.listPublic() i sdk.search.query(). Gra publiczna może używać tylko publicznych zasobów i pakietów zasobów; przestrzegaj licencji każdego zasobu.
Znajdowanie zasobów w czasie działania
const music = sdk.assets.resolveAppAsset("music.main");
const file = music.files.find((entry) => entry.role === "primary");
audioElement.src = file.url;
for (const asset of sdk.assets.listAppAssets()) console.log(asset.runtimeKey, asset.sourceType);Każdy wynik ma assetRef, runtimeKey, sourceType (OWNED, DIRECT lub PACK) oraz files z role, url, contentType i sizeBytes.
Co przyjmuje konektor
Twoja aplikacja AI może przesyłać obrazy, wideo, dźwięk, arkusze sprite'ów i wypalone modele 3D, w tym wypalone obrazy i arkusze sprite'ów generowane proceduralnie. Wykonywalne modele 3D (MODEL_3D z podkategorią procedural lub w formacie CUSTOM) działają we własnych narzędziach PlayDrop, ale konektor je odrzuca, ponieważ API nie uruchamia kodu twórców, żeby je zweryfikować. Wypal je do standardowego formatu, takiego jak GLB, albo odwołaj się do wersji już opublikowanej w PlayDrop.
Nową grafikę i dźwięk stworzysz dzięki generowaniu zasobów z AI. Formaty, których PlayDrop nie zna, opisuje poradnik o własnych formatach zasobów.