メインコンテンツまでスキップ

プロジェクトのダウンロード

PlayCanvasプロジェクトは、セルフホスト可能なアプリケーションパッケージとしてダウンロードできます。ダウンロードされたパッケージには、PlayCanvas Hostingの外でアプリを実行するために必要なファイルが含まれますが、完全な編集可能なプロジェクト履歴は含まれません。

PlayCanvasに再インポートできるプロジェクトバックアップについては、バックアップとエクスポートを参照してください。

ダウンロード形式

標準のセルフホスト用パッケージにはstaticを使用します。ダウンロードしたファイルをWebサーバーやホスティングプロバイダーに直接アップロードする場合に適しています。

Viteベースのnpmプロジェクトにはnpmを使用します。ダウンロードしたアプリをローカルで扱い、Viteで実行したり、npmスクリプトで本番ビルドを作成したりする場合に適しています。

RESTのDownload appエンドポイントでは、formatパラメーターを使用してstaticまたはnpmを選択します。

staticプロジェクト構造

ダウンロード形式がstaticの場合、ダウンロードされるプロジェクトは、Webサーバーで直接ホストできる自己完結型のWebビルドです。展開したフォルダーはHTTPまたはHTTPSで配信してください。file:// URLからindex.htmlを開くことはサポートされません。

staticダウンロードも、元のプロジェクトに含まれるスクリプトの種類に応じて異なる構造になります。

クラシックスクリプト

index.html
playcanvas-stable.min.js
__settings__.js
__modules__.js
__start__.js
__loading__.js
config.json
{sceneId}.json
manifest.json
styles.css
logo.png
files/
assets/
{assetId}/
{revision}/
*

クラシックスクリプトの連結オプションを使用すると、__game-scripts.jsやソースマップも追加される場合があります。これらの任意ファイルは、スクリプト種類ごとの構造を変えるものではありません。

ESMスクリプト

ESMのstaticダウンロードでは、index.htmlがモジュールエントリーポイントとしてjs/index.mjsを読み込みます。

index.html
config.json
{sceneId}.json
manifest.json
styles.css
logo.png
js/
index.mjs
*.mjs
files/
assets/
{assetId}/
{revision}/
*

混在スクリプト

混在したstaticダウンロードでは、ESM形式の構造が使用されます。生成されたモジュールエントリーポイントは、クラシックな.jsスクリプトも読み込みます。

index.html
config.json
{sceneId}.json
manifest.json
styles.css
logo.png
js/
index.mjs
*.mjs
*.js
files/
assets/
{assetId}/
{revision}/
*

NPMプロジェクト構造

開発中

npmダウンロード形式は現在開発中です。パッケージ構造と生成されるファイル名は変更される場合があります。

ダウンロード形式がnpmの場合、ダウンロードされるプロジェクトは、元のプロジェクトに含まれるスクリプトの種類に応じて次のいずれかの構造になります。生成されたアプリ設定とシーンデータは、ローカル開発中に監視できるようにsrc/data/に配置され、ランタイムアセットと静的ファイルはpublic/に残ります。

ファイル名と競合

注記

NPMダウンロードでは、パスをファイルシステム上で安全かつ一意にするために、シーン、アセット、フォルダーのファイル名が変更される場合があります。Editor上の名前がそのままダウンロード後のファイル名になると仮定せず、生成された設定内のパスを正として扱ってください。

シーンJSONファイルは、シーンの表示名から名前が付けられます。名前は小文字化され、a-zまたは0-9以外の文字はハイフンになり、連続するハイフンは1つにまとめられ、先頭または末尾のハイフンは削除されます。たとえば、Main Scenemain-scene.jsonに、100% Scene100-scene.jsonになります。

シーン名が空、または句読点のみの場合、ファイル名はscene-{sceneId}.jsonになります。複数のシーンが同じファイル名になる場合は、.jsonの前にシーンIDが追加されます。たとえば、競合するMain SceneのIDが101の場合はmain-scene-101.jsonになります。

アセット名とフォルダー名はファイルシステム用に安全化されますが、小文字のハイフン区切り名には変換されません。競合はフォルダーごとに解決され、拡張子の前に.{id}が追加されます。たとえば、image.2.pngimage.1.1.pngFolder.10のようになります。生成された設定内のパスは最終的なファイル名に更新されます。

次の例は、クラシックスクリプトのみ、ESMスクリプトのみ、または両方の種類のスクリプトを含むプロジェクトで生成されるパッケージ構造を示します。

クラシックスクリプト

src/
main.mjs
bootstrap/
settings.js
modules.js
start.js
loading.js
scripts/
*.js
data/
config.json
scenes/
*.json
public/
assets/
thumbs/
manifest.json
styles.css

ESMスクリプト

src/
main.mjs
bootstrap/
index.mjs
settings.mjs
modules.mjs
start.mjs
loading.mjs
scripts/
*.mjs
data/
config.json
scenes/
*.json
public/
assets/
thumbs/
manifest.json
styles.css

混在スクリプト

src/
main.mjs
bootstrap/
index.mjs
settings.mjs
modules.mjs
start.mjs
loading.mjs
scripts/
*.mjs
*.js
data/
config.json
scenes/
*.json
public/
assets/
thumbs/
manifest.json
styles.css