導入

PUN BasicチュートリアルはUnity3Dに基づいたチュートリアルです。 Photon Cloudによって動作する、独自のマルチプレイヤー対応アプリケーションを開発する方法や、アニメーターによるアニメーションを使用したキャラクターを使う方法を説明します。 重要な機能や、PUNによるネットワークベースの開発を理解するためのヒントを学びます。

目次

概要

このチュートリアルでは、空のプロジェクトから始めて、作成プロセス全体をステップバイステップで説明します。 概念、一般的な落とし穴、ネットワークゲームの設計上の考慮事項を説明します。

プレーヤーが歩き回るだけのゲームではつまらないので、基本的な発射システムとプレイヤーの体力管理を実装します。これは、ネットワークを介して、様々な同期について説明をするのにも役立ちます。

また、ルーム内のプレーヤーの数に基づいて、カスタムの大きさのアリーナを使用します。現在プレイしているプレーヤーの数に合わせてアリーナのサイズが調整されます。 自動のシーン同期機能を囲むいくつかのコンセプト、異なるシーンを読み込む際のプレイヤー対処に関するヒント、そのような状況で起こり得る問題について説明します。

ゲームの目的

ゲームを起動すると、ユーザーは接続プロトコルを確認し、UI自体の進展を知らされます。 ルームが参加または作成されると、プレイヤーは、最大4人のプレイヤーが一度に滞在できるサイズ変更可能なアリーナに入ります。 プレーヤーは走ったり方向転換、発射することができます。各プレイヤーによって発射されたビームが他のプレイヤーに当たるとそのプレイヤーの体力に影響を与えます。 体力が0になるとゲームオーバーになりアリーナから退去します。その後、情報画面が再度表示され、希望すれば新しいゲームに参加することができます。

知っておくべきこと

このチュートリアルでは、Unity Editorとプログラミングの基本のみを前提としています。 しかし、通常の非ネットワークゲームの作成に関する知識や経験があると、Photon Networkingによって導入される新しい概念に集中することができるでしょう。

サンプルコードはC#で書かれていますが、Unity Scriptでも同様に動作します。

目次に戻る

UnityとPhoton Cloud

新しいUnityプロジェクトの作成

Unity4.7またはUnity5のいずれかのバージョンを使用してください。 チュートリアルを行う際は基本的に新しいプロジェクトを作成することをお勧めします。 コンセプトやデザインパターンを理解したら、独自のプロジェクトにそれらを適用してください。

PUNと設定のインポート

Asset Storeを開き、PUNアセットをダウンロード/インストールします。 すべてのPUNアセットをインポートしたらUnityを再コンパイルさせます。

PUN設定ウィザードは、ネットワーク設定のお手伝いをしてマルチプレイヤーゲームを 始めるための便利な方法、 Photon Cloudを提供します!

Cloudはゲームに使用できるPhotonサーバを集めたものです。 次に説明します。

「無料プラン」のCloudを使用すれば気軽に始められます。メールアドレスを入力して、後はウィザードに任せましょう。

Photon Cloudスクリーンショット:Cloudの登録
Photon Cloud Screen Shot: Cloud Registration

新しいアカウントはすぐに "AppID"を取得します。メールアドレスが既に登録されている場合は、ダッシュボードを開くように求められます。 ログインして、AppIDを入力フィールドに貼り付けます。

AppIDが保存されたらこの手順は完了です。

Photon Cloud
Photon Cloud

「Photon Cloud」では何ができますか?

基本的には、PhotonServerが実行されているパソコンを集めたものです。 このサーバの"Cloud"はExit Gamesによって維持され、 マルチプレイヤーゲームのための便利なサービスとして提供されます。サーバは要求に応じて追加されるので、 如何なるプレイヤーの数にも対応することができます。

Photon Cloudは完全に無料ではありませんが、 通常のホスティングに比べて低価格でご利用できます。 価格設定については、 こちらをご覧ください。.

Photon Unity NetworkingがPhoton Cloudを処理してくれますが、 内部で起こっていることを簡単に説明します:

全員がまず最初に「ネームサーバ」に接続します。これは、クライアントのアプリと(AppIDで)、クライアントが使用したいリージョンを確認します。 次に、マスターサーバへクライアントを転送します。

マスターサーバは、複数のリージョナルサーバのためのハブです。これは、すべての既存のゲームを認知しています。 ゲーム(ルーム)が作成または参加されると、クライアントは 「ゲームサーバ」と呼ばれる他のマシンのいずれかに転送されます。

PUNの設定は非常に簡単で、ホスティング費用、パフォーマンスや メンテナンスを気にする必要は一切ありません。

ルーム

Photon Cloudは「ルームに基づいたゲーム」で構築されます。 つまり、マッチごとの他と区別されたプレイヤーの数には制限があります(10以下など)。 ルーム内では通常、他のプレイヤーが送信した情報を 全員が受信します。ルームの外でプレイヤー同士通信できませんので、 できるだけ早くプレイヤーがルームに入るようにするべきです。

ルームに入る最良の方法は、ランダムマッチメイキングを使用することです。サーバにより、任意のルームまたは特定のプロパティを持つルームが選択されます。

全てのルームには、識別子として名前が付けられています。ルームが満室または終了していない限り、名前を指定して参加することができます。マスターサーバがアプリのためのルームリストを提供してくれます。

ロビー

アプリケーションのロビーはマスターサーバ上に存在して、ゲームのためのルームリストを表示します。 この例ではロビーを使わず、利用可能な場合はランダムなルームに参加し、参加できる既存のルームが無い場合は新規データ作成します(ルームのキャパシティに上限がある場合があります)。

アプリケーションIDとゲームバージョン

全員が同じサーバに接続する場合、 他の者のプレイヤーと自身のプレイヤーを区別する必要があります。

各ゲーム(つまりアプリケーション)はCloud内で独自の 「AppID」を取得します。 プレイヤーは、自身のクライアント内で同じ"AppId"を持つプレイヤーとのみ 接触します。

古いクライアントのプレイヤーと新しいクライアントのプレイヤーを分離するために 使用できる「ゲームバージョン」もあります。

リージョン

Photon Cloudは、遠くにいるプレイヤーと接続する際の不良を防ぐために、世界中の異なるリージョンで構成されています。 異なるリージョンのリモートチームと作業を行っている場合は特にこの概念を理解しておく必要があります。 チームメイトとゲームの検証を行う際、リージョンの分割が原因でテストできない可能性があります。 インタラクトするテスターのリージョンが全て同じになるよう強制してください。

目次に戻る

開発

各セクションは、プロジェクトの開発段階の特定の部分を説明するので、順番に進めることが重要です。 スクリプトとPhotonに関する知識レベルも徐々に上がるようにできています。

  1. ロビーシーンの作成と「Launcher.cs」スクリプトの基本:.
  2. ユーザーインターフェイス(UI)を使用してロビーシーンを向上:.
  3. ゲームのシーンの作成:.
  4. レベルの読み込みの実装:.
  5. 基本的なプレイヤープレハブの作成:.
  6. Making the camera follow your player.
  7. ネットワーク機能を追加するために、プレーヤープレハブを変更:.
  8. プレーヤーのインスタンス化とシーンの切り替え:.
  9. プレーヤーのユーザーインターフェイス(UI):.

目次に戻る

まとめ

これで、ユーザの体験を向上させるための基本的な要件を満たし、インターネット上でユーザ同士が対戦できるシステムを作成することができました。

PUNの制御方法、PUNのステータスや現在のコンテキストにリッスンする方法、直感的なコンポーネントを最大限に生かす方法、簡単にアニメーターを使う方法を学びました。

また、Automatic Scenes synchronization(自動シーン同期)のような、強力かつオリジナルはGamePlayを作成するための興味深いPhotonの機能についても学びました。

一般ユーザが利用できるゲームを完成させるにはより多くの作業が必要ですが、今はここで説明した要素をベースに構築します。

  • "Get Started"(はじめに)セクションをご確認ください。
  • ドキュメントや[APIの参照]を読み、利用可能な機能などを確認してみてください。 すぐに必要なものではなくても、頭に入れておくと役立つことがあるでしょう。 新しい機能の実装を行う際などに、関連性のある関数やプロパティを思い出すかもしれません。
  • フォーラムではお気軽に関心や問題を共有してください。 問題による停滞は避けるべきです。問題について他のユーザと共有することにより、状況の整理もできますので解決に近づくことができます。 それぞれの経験やUnityやPUNに関する知識はことなりますので、どのような内容でも気兼ねなく投稿してください。

目次に戻る

次に進む.

 To Document Top