Unityで PhotonCloudを使って
リアルタイム・マルチプレイ
ヤーゲームを作っちゃおう
【応用
編・前編】
PhotonCloud 日本運営事務局
本日のお題目
•
•
•
•
•
•
•
•

Unityの準備
Assetのインポート
PhotonCloudとの接続設定
床とライトの設定
弾丸の実装
壁の設定
衝突判定の実装
まとめ
2
本日やること
•
•
•
•
•

ゲームへのネットワーク機能実装
PhotonCloudへの接続
ロビーへの入室
Roomが無ければRoomを作成して入室
Roomに入室後に自分のキャラクターを
Instantiateする

• リアルタイムでマルチプレイヤーを同期す
る
• リアルタイム・マルチプレイヤーでチャッ
トする

3
Unityの準備
Unityの準備 〜1
• スライド中のUnity
のキャプチャー
は、レイアウトを
“Tall”にしています
• お好みのレイアウ
トで結構です

5
Unityの準備 〜2
• 新しいプロジェク
トを作成します
File > New Project
• “Create new
Project” が選択さ
れている状態で
[Set….] ボタンを
クリックします
6
Unityの準備 〜3
• 保存先を選び
“Save As: ” には
PhotonWorkShop
と入力します
• 準備が整ったら
[Save] をクリック
します
• 戻った画面で
[Create Project]をク
リックします
7
Assetのインポート
Assetのインポート 〜0
• Unityを起動して
Asset Storeを開きま
す
Window > Asset Store
• Asset Storeウィンド
ウの画面右上にあ
る検索窓で “photon”
と入力して検索を
実行します
9
Assetのインポート 〜1
• 検索結果から
“Photon Unity
Networking…”をク
リックします

10
Assetのインポート 〜2
• 画面左側にある
[ Download ] ボタ
ンの右にある ▽
を
クリックします
• 現れたメニューの
一番上の
[ Download and
Import ] をクリッ
クします
11
Assetのインポート 〜3
• Importing package
画面で、全てのア
イテムにチェック
が付いている事を
確認して、、、
• 画面右下の
[ Import ] をク
リックします
12
UnitySDK(Asset)の同梱物
Unity SDKの同梱物 〜1
• リファレンス(英
文)を同梱してい
ます
Assets > Photon
Unity Networking >
PhotonNetworkDocumentation.pdf
• 日本語訳文はユー
ザー助け合い所で
公開します
14
Unity SDKの同梱物 〜2
• サンプルを同梱し
ています
Assets > Photon
Unity Networking
> Demos
※全 6種類

15
PhotonCloudとの接続設定
PhotonCloudとの接続 〜1
Client

PhotonCloud
MasterServer

・ ロビー入室
・ ルーム作成
・ マッチメイキング
・ 収容 GameServer決
定

PhotonCloud
GameServer
PhotonCloud
GameServer
PhotonCloud
GameServer
17
PhotonCloudとの接続 〜2
Client

PhotonCloud
MasterServer

PhotonCloud
GameServer
PhotonCloud
GameServer

・ ルーム入室
・ オブジェクト同期
・ イベント同期
・ メッセージ送受信

PhotonCloud
GameServer
18
PhotonCloudとの接続 〜3
クラス名
ネットワーク機能実装
PhotonCloudへの接続

ConnectToMaster

ロビーへの入室

PhotonNetwork.ConnectUsingSettings

ルームがなければルー
ムを作成して入室

RandomMatchmak PhotonNetwork.JoinRandomRoom,
er.cs
PhotonNetwork.CreateRoom,
PhotonNetwork.JoinRoom

ルームに入室後にキャ
ラクターを生成する

monsterprefab

プレイヤー同士をマッ
チメイキングする

RandomMatchmak
er.cs

マルチプレイヤー間の
動きを同期する

PhotonView

PhotonNetwork.Instantiate

myThirdPersonController,
CharacterController,
NetworkCharacter
19
PhotonCloudとの接続設定
• [alt]+[p]で“PUN Wizard”を
開きます
• 上から2段目の [ Setup ]
をクリック
• 次の画面の1段目に、
ワークショップ用の
AppIDを入力します
• 598db964-27b9-4cf0-b1ac69e32e95fac8
• “Cloud Region”は [Japan]
をクリックします
• 最後に3段目の右側の
[ Save ] をクリックして
完了です
20
床とライトの設定
前準備設定
• おまじないで新し
いシーンを作成し
ます
File > New Scene
• すると“Hierarchy”
の中身が“Main
Camera”だけにな
ります
22
カメラの設定
• “Hierarchy”にある
“Main Camera”を
選択します
• “Main Camera”の
“Inspector”にある
“Transform” の値を
左図のように変更
します
23
ネットワーク機能実装 〜1
• 空のゲームオブ
ジェクトを作成し
ます
GameObject >
Create Empty

フォーカスされた状態
で [return]キーを押す

• “Hierarchy”に追加
された
“GameObject” の名
前を“Scripts”に変
更します
24
ネットワーク機能実装 〜2
• “Scripts” の
“Inspector”にある
“Transform”の値を
左図のように変更
します

25
ネットワーク機能実装 〜3
• ランダムマッチメイキング
用のスクリプトを組み込み
ます
• “Inspector”の下部の [Add
Component] ボタンをク
リックし、検索用の入力窓
に “RandomMatchmaker”と
入力し、検索候補から
“RandomMatchmaker”を選
択して先ほど作った
“Script”にアタッチします
• これで “Script” の
“Inspector” に “Random
Matchmaker”が加わります
26
床の設定 〜1
• “Plane”を使って床
を作ります
GameObject >
Create Other > Plane

• すると“Hierarchy” の
中に “Plane”が追加
されます

27
床の設定 〜2
• “Plane”の
“Inspector”にある
“Transform”の値を
左図のように変更
します

28
床の設定 〜3
• “Plane”にテクスチャ
を貼り込みます
• “Project”の検索窓に
“Pavement_01”と入
力し、検索結果に現
れた二つの
“Pavement_01”の上
側のパーツを、先ほ
ど作った “Plane”に
ドラッグアンドド
ロップしてアタッチ
します
29
ライトの設定 〜1
• Directional Lightを使
用します
GameObject >
Create Other >
Directional Light
• すると “Hierarchy”
の中に “Directional
light”が追加されま
す
30
ライトの設定 〜2
• “Directional Light”の
“Inspector”にある
“Transform”の値を左
図のように変更し
ます

31
シーンの保存 〜1
• ここまで出来たら記
念にシーンを保存し
ておきます
• シーン保存用のフォ
ルダを “Assets”直下
に
“PhotonWorkShop”
の名前で作ります
32
シーンの保存 〜2
• シーンに名前をつ
けて保存します
File > Save Scene as
• さきほどの
“PhotonWorkShop”
の中に “GameMain”
の名前で保存にし
ます
33
後編に続きます

Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】