SlideShare uma empresa Scribd logo
1 de 89
Unity x Photon Realtimeで 
オンラインゲームを作っちゃおう 
【応用編】 
Photon 運営事務局 
1
本日のお題 
• Unityの準備 
• Assetのインポート 
• Photon Cloudとの接続 
設定 
• カメラとネットワークの 
設定 
• 床とライトの設定 
• 弾丸の実装 
• モンスターの設定 
• 壁の設定 
• 衝突判定の実装 
• まとめ 
2
Unityの準備 
3
Unityの準備 
始める前に・レイアウトについて 
• スライド中のUnityの 
キャプチャーは、レイア 
ウトを‘Tall’にしていま 
す 
• お好みのレイアウトで 
結構です 
4
Unityの準備 
• まずは下記URLをWebブラウザで開いておい 
てください 
http://goo.gl/sT81oN 
5
Unityの準備 
新プロジェクト作成 
• Unityを起動 
• 新規プロジェクト作成 
• プロジェクト名は 
PhotonWorkShop 
でお願いします 
• 保存場所はお任せしま 
す 
6
Assetのインポート 
7
Assetのインポート 
Asset Storeを開く 
• Asset Storeを開く 
8
Assetのインポート 
Asset Storeで検索 
• ‘Photon Unity Networking’で検索 
• ‘Photon Unity Networking Free’をクリック 
9
Assetのインポート 
ダウンロード 
• ‘Photon Unity Networking Free’をダウンロード 
10
Assetのインポート 
インポート 
• Importing package画面 
で、全てのアイテムに 
チェックが付いている事 
を確認 
• 画面右下の[Import] を 
クリックします 
11
Assetのインポート 
Aseetの内容: リファレンス 
• リファレンス(英文)を同梱 
しています 
• Assets > 
Photon Unity Networking > 
PhotonNetwork- 
Documentation.pdf 
• 日本語訳文はユーザー助 
け合い所で公開しています 
• photoncloud.jpのサイトでも 
公開しました 
12
Assetのインポート 
Assetの内容: Demo 
• 5つのデモサンプルが 
含まれています 
• Assets > 
Photon Unity 
Networking > 
Demos 
13
Photon Realtimeとの接続設定 
14
Photon Realtimeとの接続設定 
接続フロー 
• 最初はマスターサーバーへ 
接続 
– いわゆるロビーサーバー 
• 機能 
– ロビー機能 
– ルーム作成 
– マッチメイキング 
– 収容ゲームサーバー決定 
• (ロードバランサー) 
15 
Photon 
Realtime 
Master Server 
Client 
Photon 
Realtime 
Game Server 
Photon 
Realtime 
Game Server 
Photon 
Realtime 
Game Server
Photon Realtimeとの接続設定 
接続フロー 
• ロビーサーバーから割当ら 
れたゲームサーバーへ接 
続 
• 機能 
– ルーム管理 
– オブジェクト同期 
– イベント同期 
– メッセージ送受信 
16 
Photon 
Realtime 
Master Server 
Client 
Photon 
Realtime 
Game Server 
Photon 
Realtime 
Game Server 
Photon 
Realtime 
Game Server
Photon Realtimeとの接続設定 
PUN Wizardを開く 
• ‘Photon Unity 
Networking’のウィンド 
ウを開く 
(PUN Wizard) 
• Assetのインポート時に 
開いたものがそのまま 
であれば、それでOKで 
す 
17
Photon Realtimeとの接続設定 
PUN Wizardを開く 
• 既にあるアカウント(App 
ID)を使うので、中ほど 
の[Setup]をクリック 
18
Photon Realtimeとの接続設定 
PUNの初期設定 
• ブラウザで開いたペー 
ジにあるApp ID 
9e85… 
を’Your AppId’のところ 
に張付け 
• Cloud Regionに’Japan’ 
を選択 
• Saveボタンを押して、確 
認ダイアログが出たら 
OK。PUN Wizardを閉じ 
てください 
19
カメラとネットワークの設定 
20
カメラとネットワークの設定 
前準備 
• 新しいシーンを作成 
File > New Scene 
• Hierarchyの中が 
‘Main Camera’ 
だけになればOK 
21
カメラとネットワークの設定 
カメラの設定 
• ‘Hierarchy’内の 
‘Main Camera’ 
を選択 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:10 Z:-10 
Rotation: X:20 Y:0 Z:0 
Scale: X:1 Y:1 Z:1 
22
カメラとネットワークの設定 
ネットワーク機能(ルーム入室)実装 
• 空のゲームオブジェ 
クトを作成 
GameObject 
> Create Empty 
• 名前を‘Scripts’に変更 
23
カメラとネットワークの設定 
ネットワーク機能(ルーム入室)実装 
• 今作成した 
‘Scripts’ 
を選択 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:1 Z:0 
Rotation: X:0 Y:0 Z:0 
Scale: X:1 Y:1 Z:1 
24
カメラとネットワークの設定 
ネットワーク機能(ルーム入室)実装 
• ランダムマッチメイキング 
のスクリプトを組込みま 
す 
• ‘Inspector’の下部の[Add 
Component]ボタンをク 
リックし、検索用の入力 
窓に 
‘Random’ 
と入力し、検索候補から 
‘Random Matchmaker’を 
選択して先ほど作った 
‘Scripts’にアタッチ 
25
カメラとネットワークの設定 
フォルダの作成 
• ここまで出来たらシーン 
を保存する準備をしま 
す 
• シーン保存用のフォル 
ダを‘Assets’直下に 
‘PhotonWorkShop’ 
の名前で作成 
26
カメラとネットワークの設定 
シーンの保存 
• シーンに名前をつけて 
保存 
File > Save Scene as… 
• さきほどの 
‘PhotonWorkShop’ 
フォルダの中に 
’GameMain’ 
の名前で保存 
27
カメラとネットワークの設定 
テストラン 
• ここまでのシーンをPlayし 
てみましょう 
• すると、キモい何かが 
Instantiateされて、一瞬で 
落下して行きます 
• 床を作っていないのでこ 
れで正常な動作です 
• 確認できたらPlayボタンを 
再度クリックしてPlayを解 
除しましょう 
28
床とライトの設定 
29
床とライトの設定 
床の作成 
• ‘Plane’を使って床を作 
成 
GameObject 
> Create Other 
> Plane 
• ’Hierarchy’の中に 
‘Plane’が追加されます 
30
床とライトの設定 
床の設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:0 Z:0 
Rotation: X:0 Y:0 Z:0 
Scale: X:10 Y:1 Z:10 
31
床とライトの設定 
テクスチャの貼り込み 
• ‘Project’の検索窓に 
‘Pavement_01’ 
と入力 
• 検索結果に表示された 
‘Pavement_01’ 
のうち左または上のも 
のを先ほどの‘Plane’に 
ドラッグ&ドロップでア 
タッチ 
32
床とライトの設定 
ライトの作成 
• Directional Lightを使用 
GameObject 
> Create Other 
> Directional Light 
• ‘Hierarchy’の中に 
‘Directional light’ 
が追加されます 
33
床とライトの設定 
ライトの設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:10 Z:0 
Rotation: X:50 Y:-30 Z:0 
Scale: X:1 Y:1 Z:1 
34
弾丸の実装 
35
弾丸の実装 
弾丸モデルの作成 
• Sphereを使用 
GameObject 
> Create Other 
> Sphere 
• ‘Hierarchy’の中に 
‘Sphere’が追加されま 
す 
• ‘Sphere’の名前を 
‘Bullet’ 
に変更 
36
弾丸の実装 
弾丸モデルの設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:0 Z:0 
Rotation: X:0 Y:0 Z:0 
Scale: X:0.2 Y:0.2 Z:0.2 
37
弾丸の実装 
Prefab化 
• ‘Hierarchy’内の 
‘Bullet’ 
を’Project’内の下記フォ 
ルダにドラッグ&ドロップ 
してPrefab化 
Demos 
> MarcoPolo-Tutorial 
> Monstergame 
> Resources 
• ‘Hierarchy’内の 
‘Bullet’ 
の文字が青くなればOK 
38
弾丸の実装 
弾丸モデルの削除 
• Prefab化ができた 
ら、’Hierarchy’内の 
‘Bullet’ 
は削除 
39
弾丸の実装 
Rigidbody追加 
• ‘Bullet’ prefabを選択 
Demos 
> MarcoPolo-Tutorial 
> Monstergame 
> Resources 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索入 
力窓に 
‘Rigidbody’ 
と入力、検索候補から 
‘Rigidbody’を選択 
40
弾丸の実装 
Prefabの設定 
• ‘Bullet’ prefabの 
‘Sphere Collider’ 
– ‘Is Trigger’ チェック入れる 
• ‘Rigidbody’ 
– ‘Use Gravity’ チェック外す 
– ‘Is Kinematic’ チェック入れる 
41
弾丸の実装 
Photon Viewスクリプト追加 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索 
入力窓に 
‘PhotonView’ 
と入力、検索候補から 
‘Photon View’を選択 
• ‘Photon View’を追加す 
ることにより、Photonの 
同期対象となる 
42
弾丸の実装 
同期スクリプトのコピー 
• ‘Project’の検索入力窓に 
‘Networkc’ 
と入力、検索結果に現れた 
‘NetworkCharacter’ 
を選択 
• 選択したまま 
Edit メニュー 
> Duplicate 
で’NetworkCharacter’ 
を複製、 
‘BulletNetwork’ 
に変更 
• 名前を変えた途端に 
’BulletNetwork’は消えるが、 
検索を解除すれば表示される 
43
弾丸の実装 
同期スクリプトの編集 
• 今コピーして作った 
’BulletNetwork’ 
をエディタで開く 
44
弾丸の実装 
同期スクリプト: クラス名変更 
• BulletNetwork.csを編集していることを確認 
• 3行目のクラス名を 
BulletNetwork 
に変更 
45 
Before 
3:public class NetworkCharacter : Photon.MonoBehaviour 
After 
3:public class BulletNetwork : Photon.MonoBehaviour
弾丸の実装 
同期スクリプト: 物理挙動制御 
• 6-7行目の間に 
‘Sample Code A-2’ 
の6行をコピー&ペーストで追加-> Awake()メソッド追加 
46 
Before 
6:private Quaternion correctPlayerRot = Quaternion.identity; // We lerp towards this 
7:// Update is called once per frame 
8:void Update() 
After 
6:private Quaternion correctPlayerRot = Quaternion.identity; // We lerp towards this 
+ 7:void Awake() 
+ 8:{ 
+ 9: if (photonView.isMine) { 
+10: rigidbody.isKinematic = false; 
+11: } 
+12:} 
13:// Update is called once per frame 
14:void Update()
弾丸の実装 
同期スクリプト: 不要コード削除1 
• OnPhotonSerializeView()メソッド内の31-32行目を削除 
(Sample Code A-3) 
47 
Before 
27: // We own this player: send the others our data 
28: stream.SendNext(transform.position); 
29: stream.SendNext(transform.rotation); 
30: 
-31: myThirdPersonController myC = GetComponent<myThirdPersonController>(); 
-32: stream.SendNext((int)myC._characterState); 
33:} 
After 
27: // We own this player: send the others our data 
28: stream.SendNext(transform.position); 
29: stream.SendNext(transform.rotation); 
30: 
33:}
弾丸の実装 
同期スクリプト: 不要コード削除2 
• OnPhotonSerializeView()メソッド内の38-39行目を削除 
(Sample Code A-4) 
• ここまでできたらスクリプトを保存してエディタからUnityへ 
48 
Before 
34: // Network player, receive data 
35: this.correctPlayerPos = (Vector3)stream.ReceiveNext(); 
36: this.correctPlayerRot = (Quaternion)stream.ReceiveNext(); 
37: 
-38: myThirdPersonController myC = GetComponent<myThirdPersonController>(); 
-39: myC._characterState = (CharacterState)stream.ReceiveNext(); 
40:} 
After 
34: // Network player, receive data 
35: this.correctPlayerPos = (Vector3)stream.ReceiveNext(); 
36: this.correctPlayerRot = (Quaternion)stream.ReceiveNext(); 
37: 
38:}
弾丸の実装 
同期スクリプトの追加 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索 
入力窓に 
‘Bullet’ 
と入力、検索候補から 
‘Bullet Network’を選択 
• 先ほど作成した同期用 
スクリプトが追加される 
49
弾丸の実装 
同期スクリプトの設定 
• ‘BulletNetwork’スクリプ 
トを’Photon View’の 
Observe 
にドラッグ&ドロップ 
• BulletNetworkがPhoton 
Viewから同期スクリプト 
として呼ばれるようにな 
る 
50
モンスターの設定 
51
モンスターの設定 
弾丸発射スクリプトの作成 
• ‘Project’内の 
‘PhotonWorkShop’フォ 
ルダに 
‘MonsterFire’ 
という新規のC#スクリプ 
トを作成 
52
モンスターの設定 
弾丸発射スクリプトの編集 
• 今作った 
‘MonsterFire’ 
スクリプトをエディタで開く 
• 4行目のクラス名が 
MonsterFire 
になっていない場合は修正する 
53 
After 
4:public class MonsterFire : MonoBehaviour
モンスターの設定 
弾丸発射スクリプト: 発射制御 
• 13-14行目の間に 
‘Sample Code B’ 
の5行をコピー&ペーストで追加-> Update()メソッド内追加 
• 編集が終わったら、保存してエディタからUnityへ 
54 
Before 
13:void update() { 
14:} 
After 
13:void update() { 
+14: if (Input.GetKeyDown (KeyCode.H)) 
+15: { 
+16: GameObject bullet = PhotonNetwork.Instantiate("Bullet", transform.position + 
new Vector3(0.0f, 1.0f, 0.0f) + (transform.forward * 0.5f), transform.rotation, 0); 
+17: bullet.rigidbody.velocity = transform.forward * 15.0f; 
+18: } 
19:}
モンスターの設定 
不要スクリプトの削除 
• ‘Project’の検索入力窓 
に 
‘monster’ 
と入力、検索結果から 
‘monsterprefab’ 
を選択 
• ‘Inspector’内の 
‘Click Detector’を削除 
55
モンスターの設定 
三人称カメラスクリプトの追加 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索 
入力窓に 
‘third’ 
と入力、検索候補から 
‘Third Person Camera’を 
選択 
• 三人称カメラのスクリプ 
トが追加される 
56
モンスターの設定 
弾丸発射スクリプトの追加 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索 
入力窓に 
‘mons’ 
と入力、検索候補から 
‘Monster Fire’を選択 
• 先ほど作成した弾丸発 
射スクリプトが追加され 
る 
57
モンスターの設定 
スクリプトの設定 
• 先ほど追加した 
‘Third Person Camera’ 
‘Monster Fire’ 
の2つのスクリプトの 
チェックを外す 
• Photonで制御を行うた 
めのもの 
58
モンスターの設定 
同期スクリプトの編集 
• モンスターの同期スクリ 
プトである 
‘NetworkCharacter’ 
を編集 
• ‘Project’の検索入力窓に 
‘networkc’ 
と入力、検査結果に現れ 
た 
‘NetworkCharacter’ 
を選択 
• ‘NetworkCharacter’をエ 
ディタで開く 
59
モンスターの設定 
同期スクリプト: スクリプト制御 
• 6-7行目の間に 
‘Sample Code C-1’ 
の7行をコピー&ペーストで追加-> Awake()メソッド追加 
60 
Before 
6:private Quaternion correctPlayerRot = Quaternion.identity; // We lerp towards this 
7:// Update is called once per frame 
8:void Update() 
After 
6:private Quaternion correctPlayerRot = Quaternion.identity; // We lerp towards this 
+ 7:void Awake() 
+ 8:{ 
+ 9: if (photonView.isMine) { 
+10: GetComponent<ThirdPersonCamera>().enabled = true; 
+11: GetComponent<MonsterFire>().enabled = true; 
+12: } 
+13:} 
14:// Update is called once per frame
モンスターの設定 
同期スクリプト: 削除処理 
• 44-45行目の間に 
‘Sample Code C-2’ 
の5行をコピー&ペーストで追加-> Destroy()メソッド追加 
61 
Before 
43: } 
44: } 
45:} 
After 
43: } 
44: } 
+45: [RPC] 
+46: void destroy() 
+47: { 
+48: PhotonNetwork.Destroy(gameObject); 
+49: } 
50:}
モンスターの設定 
シーンの保存 
• ここで一旦シーンを保 
存します 
File 
> Save Scene 
62
モンスターの設定 
テストラン 
• ここでシーンをPlayして 
みる 
• モンスターが石畳の上 
に現れる 
• カールキーでモンス 
ターが動く 
• [H]キーで弾丸発射 
• テスト終わったら、Play 
解除するのをお忘れな 
く! 
63
壁の設定 
64
壁の設定 
壁の作成 
• Cubeを使って壁を作成 
GameObject 
> Create Other 
> Cube 
• ‘Cube’の名前を 
‘Wall1’ 
に変更 
65
壁の設定 
奥の壁の設定 
• ‘Inspector’内の’Tag’を 
‘Finish’ 
に変更 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:5 Z:50 
Rotation: X:0 Y:0 Z:0 
Scale: X:100 Y:10 Z:1 
66
壁の設定 
壁の複製 
• 先ほど作った’Wall1’か 
ら複製して 
‘Wall3’ 
を作成 
67
壁の設定 
手前の壁の設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:0 Y:5 Z:-50 
Rotation: X:0 Y:0 Z:0 
Scale: X:100 Y:10 Z:1 
– Wall1からの変更は 
Position Zを-50に 
68
壁の設定 
壁の複製 
• ’Wall1’から複製して 
‘Wall2’ 
を作成 
69
壁の設定 
右の壁の設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:50 Y:5 Z:0 
Rotation: X:0 Y:0 Z:0 
Scale: X:1 Y:10 Z:100 
70
壁の設定 
壁の複製 
• ’Wall2’から複製して 
‘Wall4’ 
を作成 
71
壁の設定 
左の壁の設定 
• ‘Inspector’内の 
’Transform’ 
の値を変更 
– Position X:-50 Y:5 Z:0 
Rotation: X:0 Y:0 Z:0 
Scale: X:1 Y:10 Z:100 
– Wall2からの変更は 
Position Xを-50に 
72
壁の設定 
シーンの保存 
• ここで一旦シーンを保 
存します 
File 
> Save Scene 
73
衝突判定の実装 
74
衝突判定の実装 
衝突判定スクリプトの作成 
• ‘Project’内の 
‘PhotonWorkShop’フォ 
ルダに 
‘Bullet’ 
という新規のC#スクリプ 
トを作成 
75
衝突判定の実装 
衝突判定スクリプトの編集 
• 今作った 
‘Bullet’ 
スクリプトをエディタで開く 
• 4行目のクラス名が 
Bullet 
になっていない場合は修正する 
76 
After 
4:public class Bullet : MonoBehaviour
衝突判定の実装 
不要部分の削除 
• 6-14行目を削除-> Bulletクラスを空に 
77 
Before 
5:public class Bullet : MonoBehaviour { 
- 6: // Use this for initialization 
- 7: void Start () { 
- 8: 
- 9: } 
-10: 
-11: // Update is called once per frame 
-12: void Update () { 
-13: 
-14: } 
15:}
衝突判定の実装 
衝突判定メソッドの追加 
• 残った5-6行目の間に、 
Sample Code D 
の18行を追加-> OnTriggerEnter()メソッドの追加 
• 編集が終わったら、保存してエディタからUnityへ 
78 
After 
+ 5:public class Bullet : MonoBehaviour { 
+ 6: void OnTriggerEnter(Collider other) 
+ 7: { 
+ 8: PhotonView myView = gameObject.GetComponent<PhotonView>(); 
+ 9: if (other.gameObject.tag == "Player") { 
… 
+21: if (myView.isMine) { 
+22: PhotonNetwork.Destroy(gameObject); 
+23: } 
+24: } 
25:}
衝突判定の実装 
弾丸へ衝突判定スクリプトの追加 
• ‘Bullet’ prefabを選択 
• ‘Inspector’下部の 
[Add Component] 
ボタンをクリック、検索 
入力窓に 
‘bu’ 
と入力、検索候補から 
‘Bullet’を選択 
• 衝突判定のスクリプト 
が追加される 
79
衝突判定の実装 
シーンの保存 
• シーンを保存します 
File 
> Save Scene 
80
衝突判定の実装 
テストラン 
• ここでシーンをPlayして 
みる 
• モンスターが石畳の上 
に現れる 
• カールキーでモンス 
ターが動く 
• [H]キーで弾丸発射 
• テスト終わったら、Play 
解除するのをお忘れな 
く! 
81
まとめ 
82
まとめ 
• 今回は、【応用編】ということで簡単なオンライ 
ンシューティングゲームを作成 
• わずかな時間でここまで作成できることを実 
感していただけたでしょうか? 
83
今後の予定 
• 今回は【応用編】 
• ロビー&ルームまわりの詳細をお話した【ロ 
ビー&ルーム活用編】を予定 
• また、プレイヤーまわり、オブジェクト同期ま 
わりなど、分野別に活用編を実施予定 
• その他、ご要望ありましたら、ぜひぜひお知ら 
せください! 
84
Photon Cloud ウェブサイト 
• PhotonCloudサービス紹 
介サイト 
• http://photoncloud.jp/ 
• 弊社GMOクラウドが運営 
する、PhotonCloudを日本 
国内向けにご紹介するた 
めのサイト 
• 日本でのご利用事例の 
ご紹介やイベントカレン 
ダー、イベントレポートを 
ご案内中 
85
Photon Cloud ウェブサイト 
• PhotonCloud facebook 
ページ 
• http://facebook.com/p 
hotoncloudjp 
• PhotonCloudの日本版 
facebookページ 
• イベント、セミナー、 
ワークショップの告知や 
ダイジェストレポートを 
配信しています 
86
Photon Cloud ウェブサイト 
• PhotonCloudユーザー 
助け合い所 
• https://www.facebook.c 
om/groups/photonclou 
djp/ 
• Unityさんのアドバイス 
でスタートした、 
PhotonCloudのユー 
ザー同士での情報交換 
や助け合いを目的とし 
たfacebookグループ 
87
Photon Cloud ウェブサイト 
• Twitterアカウント 
@PhotonCloudJP 
• イベントなどのお知らせ 
やサービスの最新情報 
などをつぶやいていま 
す! 
88
ありがとうございました! 
89

Mais conteúdo relacionado

Mais procurados

年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
モノビット エンジン
 

Mais procurados (20)

自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解した
 
Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
 
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
 
【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
 
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
 
Epic Online Services でできること
Epic Online Services でできることEpic Online Services でできること
Epic Online Services でできること
 
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
UE4.25 Update - Unreal Insights -
UE4.25 Update - Unreal Insights -UE4.25 Update - Unreal Insights -
UE4.25 Update - Unreal Insights -
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
UnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめUnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめ
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
 
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
 

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

日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
eijikushida
 
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみようcocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
Tomoaki Shimizu
 

Semelhante a Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】 (20)

Aiwolfseminar2020
Aiwolfseminar2020Aiwolfseminar2020
Aiwolfseminar2020
 
Hands on
Hands onHands on
Hands on
 
Aiwolf seminar 2019_ja
Aiwolf seminar 2019_jaAiwolf seminar 2019_ja
Aiwolf seminar 2019_ja
 
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネルももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
 
人狼知能セミナー資料2017(案)0.4.5対応版
人狼知能セミナー資料2017(案)0.4.5対応版人狼知能セミナー資料2017(案)0.4.5対応版
人狼知能セミナー資料2017(案)0.4.5対応版
 
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
 
第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」第2回名古屋CV・PRML勉強会 「Kinectの導入」
第2回名古屋CV・PRML勉強会 「Kinectの導入」
 
Live2d in unity
Live2d in unityLive2d in unity
Live2d in unity
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
 
人狼知能セミナー資料案20170624
人狼知能セミナー資料案20170624人狼知能セミナー資料案20170624
人狼知能セミナー資料案20170624
 
HoloLensハンズオン(ショート)
HoloLensハンズオン(ショート)HoloLensハンズオン(ショート)
HoloLensハンズオン(ショート)
 
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
 
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTERMRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
 
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
 
Unityクリエイターズ勉強会【2/2】【関西】発表資料
Unityクリエイターズ勉強会【2/2】【関西】発表資料Unityクリエイターズ勉強会【2/2】【関西】発表資料
Unityクリエイターズ勉強会【2/2】【関西】発表資料
 
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
 
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
 
UnityとBlenderハンズオン第3章
 UnityとBlenderハンズオン第3章 UnityとBlenderハンズオン第3章
UnityとBlenderハンズオン第3章
 
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
 
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみようcocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
 

Mais de GMO GlobalSign Holdings K.K.

Photon勉強会(クライアントサイド)2015/8/4 発表資料
Photon勉強会(クライアントサイド)2015/8/4 発表資料Photon勉強会(クライアントサイド)2015/8/4 発表資料
Photon勉強会(クライアントサイド)2015/8/4 発表資料
GMO GlobalSign Holdings K.K.
 
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
GMO GlobalSign Holdings K.K.
 

Mais de GMO GlobalSign Holdings K.K. (19)

2019年 第2四半期 決算説明資料
2019年 第2四半期 決算説明資料2019年 第2四半期 決算説明資料
2019年 第2四半期 決算説明資料
 
2018年通期決算説明資料
2018年通期決算説明資料2018年通期決算説明資料
2018年通期決算説明資料
 
2018年12月期 第2四半期決算説明会資料
2018年12月期 第2四半期決算説明会資料2018年12月期 第2四半期決算説明会資料
2018年12月期 第2四半期決算説明会資料
 
GMOクラウド:2017年通期決算説明会資料
GMOクラウド:2017年通期決算説明会資料GMOクラウド:2017年通期決算説明会資料
GMOクラウド:2017年通期決算説明会資料
 
GMOクラウド:2017年12月期 第2四半期決算説明会
GMOクラウド:2017年12月期 第2四半期決算説明会GMOクラウド:2017年12月期 第2四半期決算説明会
GMOクラウド:2017年12月期 第2四半期決算説明会
 
クラウド活用で実現するスマートなシステム運用
クラウド活用で実現するスマートなシステム運用クラウド活用で実現するスマートなシステム運用
クラウド活用で実現するスマートなシステム運用
 
SIerがgmoクラウドを選ぶ理由とは
SIerがgmoクラウドを選ぶ理由とはSIerがgmoクラウドを選ぶ理由とは
SIerがgmoクラウドを選ぶ理由とは
 
Photon Webhooks & IPv6対応の最新情報
Photon Webhooks & IPv6対応の最新情報Photon Webhooks & IPv6対応の最新情報
Photon Webhooks & IPv6対応の最新情報
 
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
 
デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"
デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"
デザイナーにも優しいクラウド型ゲームエンジン"PlayCanvas"
 
PhotonのIPv6対応情報 & Server構築ポイント
PhotonのIPv6対応情報 & Server構築ポイントPhotonのIPv6対応情報 & Server構築ポイント
PhotonのIPv6対応情報 & Server構築ポイント
 
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
 
第1回Gmoホスコンlt 160414
第1回Gmoホスコンlt 160414第1回Gmoホスコンlt 160414
第1回Gmoホスコンlt 160414
 
添付ファイル自動暗号化「シンプルメール」紹介資料
添付ファイル自動暗号化「シンプルメール」紹介資料添付ファイル自動暗号化「シンプルメール」紹介資料
添付ファイル自動暗号化「シンプルメール」紹介資料
 
Photon勉強会(クライアントサイド)2015/8/4 発表資料
Photon勉強会(クライアントサイド)2015/8/4 発表資料Photon勉強会(クライアントサイド)2015/8/4 発表資料
Photon勉強会(クライアントサイド)2015/8/4 発表資料
 
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
 
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編・前編】
 
Cedec2013 photon network engine
Cedec2013 photon network engineCedec2013 photon network engine
Cedec2013 photon network engine
 
Photon Cloud signupマニュアル
Photon Cloud signupマニュアルPhoton Cloud signupマニュアル
Photon Cloud signupマニュアル
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

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

Notas do Editor

  1. ご挨拶、自己紹介、サポートメンバー紹介 Photon Cloudをご存知ですか?と聞いてみる
  2. 大阪版 本日のお題ですが、まずは実際に試していただけるように、Unity上でサンプルのプロジェクトを作っていきます。 福岡版 本日のお題ですが、まずはUnity上にサンプルのプロジェクトを作っていきます。 以下共通 そして最初に、一番簡単な接続方法、ランダムマッチメーカーというものの動きを説明します。 その後、既にあるルームの表示や入室の方法についてお話しします。 そして、プレイヤーを検索したり、そのプレイヤーのいるルームへの入室についてお話して、 自分でルームを作成する方法について説明します。 最後に、ゲームが始まった後にプレイヤー間でシーンを同期する方法についてお話しして終わりとなる予定です。
  3. まず準備ということで、サンプルプロジェクトを作っていきます。 大阪版 みなさん、PCとWi-Fi接続の準備は整っていますかー?
  4. 大まかな流れを先にお話しすると、Unityで新しいプロジェクトを作成して、 そこにPhotonのアセットをインポートします。 その後、Photon Cloudに接続するための設定を行います。こちらのPUNの初期設定というやつですね。 そして、サンプルのクラスとシーンをダウンロード・インポートして完了となります。 大阪版 Photon Cloudの接続情報やサンプルのダウンロードリンクがありますので、 こちらのURLをWebブラウザで開いておいてください。 また、Asset Storeを使いますので、使ったことがない方はUnityアカウントを確認しておいてください。 福岡版 最初に開いているかと思いますが、開いていない方はこちらのURLを開いておいてください。
  5. みなさん先ほどのページが開けましたら、Unityを起動してください。 起動しましたら、新しいプロジェクトを作成してください。 既存のプロジェクトに混ぜてしまうととっても悲しいことになりかねないので、 必ず新しいプロジェクトを作成してくださいねー。 プロジェクトの名前は置き場所は、特に指定ありませんので、 お好きな名前・場所で結構です。
  6. プロジェクトの作成が完了しましたら、Asset Storeを開いてください。 Windowメニューの中のAsset Storeという項目が真ん中下のほうにあるので、 そちらをクリックしてください。
  7. Asset Storeが開いたら、Photon Unity Networkingと検索してください。 検索はPhotonくらいでも大丈夫かなーと思いますが。 検索すると、こちらの青緑色のPhoton Unity Networkingという無料のものが 出てきますので、そちらをクリックしてください。
  8. クリックすると、こちらのような画面が出てくるかと思います。 そうしましたら、Downloadボタンの右の下矢印をクリックすると、メニューが出てきます。 その中のDownload and Importをクリックして、ダウンロードとインポートをしてください。 ダウンロードが終わるとインポートするファイルを選択するダイアログが出てくるかと思いますが、 すべて選択された状態でImportのボタンをクリックしてインポートを完了してください。
  9. PUNのインポートが終わるとそのままPUN Ziwardというウインドウが表示されるかと思います。 そのままそのウィンドウを開いたままにしておいてほしいのですが、閉じてしまった方は、 メニューのWindowsの中のPhoton Unity Networkingをクリックして再度開いてください。
  10. PUN Wizardが開いたら、2番目にあるSetupというボタンを押してください。するとこちらのような画面が出てきます。 再度またSetupのボタンがある場合はそちらをクリックすると、こちらが出てくるかと思います。 こちらの画面が出ましたら、最初にブラウザで開いていただいたページの頭にApp IDと書かれた、 598dで始まるUUID形式の文字列がありますので、コピーしてPUN WizardのYour AppIdのところに貼付けてください。 次にCloud Regionですが、Japanの項目がありますが今回はあえてAsiaを選択します。 最後に、Saveボタンを押します。すると確認のダイアログが出てくるのでOKを押してください。 そこまでできたらこのPUN Wizardの画面は閉じてしまって大丈夫です。