アプリファイルの準備
アプリファイルの準備¶
Crossplay Launcherを使用してアプリを配布するには、PC上でアプリを実行するために必要なファイルを準備する必要があります。これには、アプリアイコン、アプリ実行ファイル、アプリ構成ファイルなどが含まれ、以下の例に示されています:
ROOT_FOLDER
│  meta.json
└─ APP_FOLDER
    │  app.ico
    │  app.exe
    │  app.ini
    │  ...
    └─ resources
    └─ data
    └─ packages
    └─ ...
ROOT_FOLDER¶
ROOT_FOLDERは、Crossplay Launcherを使用してアプリを配布するために必要なすべてのデータを含む最上位ディレクトリです。ROOT_FOLDERにはAPP_FOLDERとmeta.jsonが含まれている必要があります。フォルダー名ROOT_FOLDERはアプリ開発者によって指定できます。名前を指定した後は、Crossplay Launcher > App Management > Download Setting > Game Installation Option > Folder Nameの下でHive Consoleに入力する必要があります。
APP_FOLDER¶
APP_FOLDERはアプリ実行に必要なファイルを含むフォルダーです。アプリ実行ファイル、アイコンファイル、リソース、データ、およびその他の必要なファイルをこのフォルダーに準備して配置してください。フォルダー名APP_FOLDERはアプリ開発者によって指定できます。ただし、フォルダー名には"#"や";"の文字を含めてはいけません。また、空のサブフォルダーを含めてはいけません。
META.JSON¶
meta.json には、アプリ実行ファイル (app.exe) とアイコンファイル (app.ico) の相対パスが含まれており、これらは APP_FOLDER に配置されており、アンインストール時にアプリと共に削除されるパスまたはレジストリパスも含まれています。アプリ実行ファイルとアイコンファイルの相対パスは、meta.json ファイルの場所に対して相対的です。meta.json は APP_FOLDER と同じ場所に 配置されている必要があります。
以下の例の形式に従ってmeta.jsonファイルを書いてください。
{
    "launch": "APP_FOLDER/app.exe",
    "icon": "APP_FOLDER/app.ico",
    "delete": [
        {
        "type": "CSIDL",
        "path": "0x1c/myGameLocalRes"
        },
        {
        "type": "general",
        "path": "C:/myGameGlobalRes"
        },
        {
        "type": "registrykey",
        "root": "0x80000001",
        "path": "SOFTWAREMyGame"
        }
    ]
}
| フィールド名 | 説明 | タイプ | 必須 | 
|---|---|---|---|
| launch | Crossplay Launcherを使用してアプリを実行する際に使用されるアプリ実行ファイルの相対パス(例:app.exe)。 | string | Y | 
| icon | Crossplay Launcherを使用してアプリをインストールする際に、PCデスクトップおよびスタートメニューにショートカットファイルを作成するために必要なアプリアイコンファイルの相対パス(例:app.ico)。Crossplay Launcherでショートカットファイルを作成するには、アイコンファイルが存在する必要があります。ファイル形式は icoであり、画面解像度との互換性のために、異なる解像度の合計6つの画像を含む1つのicoファイルとしてバンドルする必要があります。 16X16  32X32  48X48  64X64  128X128  256X256 | string | Y | 
| delete | アプリを実行中に、アプリインストールフォルダ以外のフォルダにデータが生成される場合があります。アプリインストールフォルダ以外にあるファイルやレジストリエントリは、アプリをアンインストールする際に削除する必要があります。このフィールドには、それらのファイルやレジストリに関する情報が含まれており、削除するフォルダ情報とレジストリ情報の配列です。 type: アプリをアンインストールする際に削除されるデータのタイプ(フォルダまたはレジストリ)root:typeがレジストリの場合のみ入力する値で、レジストリのルートを示します。*path: アプリをアンインストールする際に削除されるフォルダまたはレジストリのパス | array | N | 
以下はdelete配列のガイドです:
| フィールド名 | 説明 | タイプ | 必須 | 
|---|---|---|---|
| type | 削除するデータのタイプ。 CSIDL: 削除するファイルが、ProgramFilesやAppDataなどのWindows OSによって使用される特別なフォルダーにある場合general: 削除するファイルが通常のパスにある場合 *registrykey: 削除するファイルがレジストリファイルである場合 | 文字列 | Y | 
| root | レジストリのルートを表す16進数の文字列で、 typeがregistrykeyの場合のみ入力します。以下はレジストリのルートとその対応する16進数の値の例です。 ルート: HKEY_CLASSES_ROOT、 値:0x80000000ルート: HKEY_CURRENT_USER、 値:0x80000001* ルート: HKEY_LOCAL_MACHINE、 値:0x80000002* ルート: HKEY_USERS、 値:0x80000003* ルート: HKEY_CURRENT_CONFIG、 値:0x80000005 | 文字列 | N | 
| path | typeデータが存在するパス。*typeがCSIDLの場合: CSIDL(16進数16桁)/{残りのパス}*の形式で記述されます。typeがgeneralの場合: 絶対パスとして記述されます。*typeがregistrykeyの場合: 全体のレジストリパスの中で、ルートを除いたサブツリーとキーのみが記述されます。 | 文字列 | Y | 
Note
CSIDLの16進数値についてはこちらを参照してください。
以下は、特定のゲームアプリのファイルが以下のように準備されているときの*meta.json*の設定例です:
| データ | タイプ | データの場所 | ノート | 
|---|---|---|---|
| game.exe | ゲーム実行ファイル | ROOT_FOLDER/game | ROOT_FOLDER と game はゲーム会社によって指定されたディレクトリです | 
| icon.ico | アイコンファイル | ROOT_FOLDER/game | ROOT_FOLDER と game はゲーム会社によって指定されたディレクトリです | 
| MyGame | レジストリ | HKEY_CURRENT_USERSOFTWARESOFTWAREMyGame | ゲーム実行中に生成されたレジストリデータで、アンインストール時にゲームと共に削除されるデータです | 
| myGameGlobalRes | フォルダー (一般パス) | C:/myGameGlobalRes | ゲーム実行中に生成されたデータで、アンインストール時にゲームと共に削除されるファイルを含むフォルダーです | 
| myGameLocalRes | フォルダー (特別パス) | C:/Users/[username]/AppData/Local/myGameLocalRes | ゲーム実行中に生成されたデータで、アンインストール時にゲームと共に削除されるファイルを含むフォルダーです | 
上記の状況では、*meta.json*ファイルを次のように書いてください: