PlayDrop logoPlayDrop Studio
作成プレイ交換稼ぐ学ぶコネクタアセットコミュニティサポート
PlayDrop logoPlayDrop Studio
作成プレイ交換稼ぐ学ぶコネクタアセットコミュニティサポート
ログイン
ローカルパーティーとコントローラー
ドキュメント

はじめに

概要初めてのゲームPlayDrop のゲームよくある質問

Cloud で作る

Cloudで作成プランと生成回数

AI アプリを接続

すべてのコネクタClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

公開と共有

AI アプリから公開するシンプルな HTML ゲームパッケージ化と .play公開とインポートゲームファイル公開範囲と集客掲載用アートと動画ジャンルとタグローカライズインスタントゲーム

ゲーム体験

読み込み、一時停止、オーディオ全画面とセーフエリアクラウドセーブローカルパーティーとコントローラー

一緒に遊ぶ

共有、フレンド、招待ランキング実績オンラインパーティーと音声リアルタイムゲームサーバー

収益を得る

収益化クレジットと報酬

アセット

ゲームアセットAI アセット生成独自形式とプレイヤーの作品

リファレンス

クライアント SDKサーバー SDKcatalogue.jsonエラーと復旧トラブルシューティング
ドキュメントローカルパーティーとコントローラー
ゲーム体験

PlayDrop ゲームのローカルパーティー、ゲームパッド、スマホコントローラー

sdk.device で物理ゲームパッドと PlayDrop のスマホコントローラーを読み取り、ローカルプレイヤーの枠を追跡し、コントローラー対応とローカルパーティーの人数を宣言します。

ローカルパーティーとは、1つの画面で複数の人が、それぞれコントローラーを持って遊ぶことです。コントローラーは物理ゲームパッドか、コードを読み取ると PlayDrop がコントローラーに変えるスマホです。ゲームは、ウェブサイトでもアプリでも、SDK を通じてすべてのコントローラーを同じ方法で読み取ります。

コントローラーとパーティーの人数を宣言する

json
{
  "types": ["solo", "party"],
  "party": { "local": [1, 2, 3, 4] },
  "controller": { "support": "optional", "type": "simpler" }
}
  • controller.support は off、optional、required のいずれかです。off の場合も含め、すべてのゲームで宣言してください。
  • controller.type は、ゲームに最低限必要な操作系を示します。any(方向、決定、キャンセル)、simpler(スティック1本、フェイスボタン4つ、メニュー。スマホコントローラーも対象)、standard(十字キー、押し込みできるスティック2本、フェイスボタン4つ、ショルダーボタン2つ、トリガー2つ、メニュー)のいずれかです。
  • party.local には、1つの画面で遊べる正確な人数を列挙します。1 を含めるには solo タイプが必要です。コントローラー対応を有効にした場合、列挙したすべての人数をコントローラーで遊べる必要があります。

コントローラーを読み取る

js
await sdk.device.enableControllerInput().catch(() => { /* keep keyboard and touch */ });

const stop = sdk.device.onButton(({ playerIndex, button, pressed }) => {
  if (button === "south" && pressed) jump(playerIndex);
});

function update() {
  for (const slot of sdk.device.localPlayers) {
    const pad = sdk.device.gamepad(slot.playerIndex);
    if (pad?.connected) move(slot.playerIndex, pad.axes[0], pad.axes[1]);
  }
  requestAnimationFrame(update);
}
update();
  • init() のあとに enableControllerInput() を1回呼び出します。ホストが入力を提供できない場合は controller_input_unavailable または controller_input_timeout で拒否されますが、ゲームはそのまま動き続けます。
  • gamepad(playerIndex) は、ブラウザの標準配置に沿ったスナップショットを返します。axes(左スティックの x/y、右スティックの x/y、-1〜1)、17個の buttons、source(physical または virtual)、id です。playerIndex 0 がプレイヤー1です。
  • ボタンには south や east のような位置による名前があります。pad.label("south") は表示すべきボタン名を返し、コントローラーに応じて「A」「Cross」「B」などになります。pad.has("dpad") で、その操作系があるかどうかがわかります。
  • メニューボタンとホームボタンは PlayDrop が使うため、常に離された状態として読み取られます。
  • navigator.getGamepads() は絶対に呼び出さないでください。スマホコントローラーは SDK を通じてしかゲームに届かず、PlayDrop が警告を記録します。

ローカルプレイヤーの枠

sdk.device.localPlayers は、プレイヤーが選んだ枠 { playerIndex, gamepadKey } を列挙し、onLocalPlayersChange(callback) が変更を通知します。切断されたコントローラーも枠を保持します。メンバー構成が変わったり空になったりしたときは、クラッシュさせずに適切なメニューに戻ってください。コントローラーが1台だけなら、それは普通の入力であり、パーティーではありません。

ボタンから sdk.social.openParty({ mode: "local" }) を呼び出すと、スマホ用の QR コードと接続済みのゲームパッドを表示する、PlayDrop のペアリング画面が開きます。宣言したモードだけを提供してください。

ローカルかオンラインか、両方は不可

ホストはゲームをローカルパーティーかオンラインパーティーのどちらかとして開始し、両方を同時に使うことはありません。ローカルのプレイヤーはオンラインのルームに参加できません。友達とオンラインで遊ぶ方法は、オンラインパーティーと音声をご覧ください。

ソファで遊ぶことを考えて設計する

各プレイヤーの色とコントローラーのボタン表示を見せ、誰でもボタンを押せば参加できるようにし、ソファからでも HUD が読めるようにしましょう。ソロプレイ用に、タッチとキーボードの操作も残してください。

関連ガイド

  • オンラインパーティーと音声友達どうしでオンラインで一緒に遊べるようにします。パーティーの人数を宣言し、PlayDrop のパーティー画面を開き、sdk.multiplayer.join で予約済みのルームに参加し、ルーム音声を制御します。
  • 全画面とセーフエリアPlayDrop ゲームを画面いっぱいに表示し、SDK が計測した reservedCorners を使って、HUD を CSS のセーフエリア内に収め、ホストのボタンと重ならないようにします。
  • catalogue.jsonPlayDrop ゲームが使う catalogue.json のフィールド:識別情報、掲載情報、遊び方、表示環境、サインイン、インスタント、事前読み込み、メディア、翻訳、スコア、サーバー。
前へPlayDrop ゲームのクラウドセーブ次へPlayDrop ゲームの共有、フレンド、招待
Markdownを表示
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

このページの内容

コントローラーとパーティーの人数を宣言するコントローラーを読み取るローカルプレイヤーの枠ローカルかオンラインか、両方は不可ソファで遊ぶことを考えて設計する
Markdownを表示