SlideShare a Scribd company logo
1 of 62
Download to read offline
Photon
使ってみた
2 0 1 7 . 1 2 . 2 0 い よ か ( 加 藤 大 登 )
Photonとは
• Unityでオンライン通信がかんたんにできる
• 通信を実装するには複雑な処理が必要
• でもPhotonを使うとシンプルな関数だけで実装できる
いろいろな製品
• Photon Cloudを介し
た通信
• Unity用というわけで
はない
REALTIME
• RealtimeをUnityの
アセット化したもの
• Chatの機能もある
らしい
PUN
• PUN + 物理エンジン
の完全同期
• 2プレイヤー間の
ゲームに適している
TRUESYNC
• リッスンサーバー
方式
• ローカル通信が高速
になるらしい
BOLT
• マッチメイキング
など通信機能を拡張
• UnityのHLAPIの使用
が前提
THUNDER
おすすめ
使い方
① ググる
② サイトの通りにやる
③ できる ……簡単!
発表する必要なし
ご清聴ありがとうございました
時間が余ったので
制作物の作り方紹介
オンゲー風チャットルーム※イメージ
オンラインでやってること
① ルーム自動接続(マッチング)
② プレイヤーキャラの位置同期
③ チャットメッセージの送信・受信
オンラインでやってること
① ルーム自動接続(マッチング)
②
③
マッチング
画像元:どうぶつタワーバトル
①プログラムを書く
長い
一部抜粋
呼び出す
呼び出す
接続する関数と
呼び出される関数がある
②適当にくっつける
③できる
オンラインでやってること
①
② プレイヤーキャラの位置同期
③
同期
相手の動きが
こちらに伝わる
画像元:どうぶつタワーバトル
魔法のスクリプト
Photonに付属している
プログラムを書く必要なし
※1割ウソ
①オブジェクトにくっつける
②Transformを入れる
③Resourcesに移す
④プログラムを書く
• 適当なところで
• するとオブジェクトが出現
•ルーム内の相手のところにも勝手に出現
座標 回転
⑤できる
相手
自分
相手側の画面
お互いに出現させている
オンラインでやってること
①
②
③ チャットメッセージの送信・受信
送信・受信
レート情報を
送受信
画像元:どうぶつタワーバトル
使うは魔法のスクリプト
PhotonView
Transform以外も入る
スクリプトなら入る
PhotonTransformView
• オブジェクトをヌルヌル同期させるためのスクリプト
• Photonに付属
• 詳細はググってください
ConnectController(重要)
• データを送受信するプログラム
• ルーム接続と同様に自分で書く
(なのでスクリプトの名前はなんでもいい)
ConnectController全文
一部抜粋
送信
受信
PhotonViewにつけることで
プレイヤーキャラを介して
お互いにデータを送りつけている
送信
受信
受信
送信
チャットの場合
送信 受信
①プレイヤーキャラが文字列取得
送信 受信
②文字列を移動させる
送信 受信
③一か所にまとめる
送信 受信
まとめる
④チャットログに表示
送信 受信
まとめる
ChatManager
• ざっくりいうと
• ルーム内のプレイヤーをまとめて
おいて
• 文字列が送信されてきたときに
• チャットログを更新する
ということで
できたものがこちら
お手元のアプリでも見れます
実例1.チャットルーム
この知識があれば
どう○つタワーバトル
も作れる
他に作ってみたもの
実例2.ルーム制御
ロビー
ルーム
実例3.メッセージ送信
まとめ
Photonは楽
オンライン化の夢が広がる!!
プロジェクトデータなど
• Unityパッケージ、Android apk
https://github.com/kato-hiroto/ShereProduct/tree/master/PhotonTest
• 短縮URL
https://goo.gl/HVYxUg
• APKはSlackに上げたものと同じ
参考サイト
• グローバル クロスプラットフォーム リアルタイムゲーム開発 | Photon Engine
https://www.photonengine.com/ja-JP/Photon
• Unity Photon(PUN+) の使い方 ロビー・ルーム編(3/5) - 週刊SleepNel新聞
http://sleepnel.hatenablog.com/entry/2016/05/29/120200
※「オブジェクト位置同期編」や「変数同期編」も有用
• 【Unity】僕もPhotonを使いたい #02 接続までの流れ - うら干物書き
http://www.urablog.xyz/entry/2016/09/14/233000
※コールバック(呼び出される)関数がわかる #03以降も有用
改めまして
ご清聴ありがとうございました

More Related Content

More from arcircle tmu

ARLT_27_VRの今とフルダイブの可能性
ARLT_27_VRの今とフルダイブの可能性ARLT_27_VRの今とフルダイブの可能性
ARLT_27_VRの今とフルダイブの可能性arcircle tmu
 
ARLT_26_ビデオゲームの競技性についての覚書
ARLT_26_ビデオゲームの競技性についての覚書ARLT_26_ビデオゲームの競技性についての覚書
ARLT_26_ビデオゲームの競技性についての覚書arcircle tmu
 
ARLT_25_Adobe CCで遊ぶ3D
ARLT_25_Adobe CCで遊ぶ3DARLT_25_Adobe CCで遊ぶ3D
ARLT_25_Adobe CCで遊ぶ3Darcircle tmu
 
ARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリarcircle tmu
 
ARLT_23_アナログゲームとデジタルゲーム
ARLT_23_アナログゲームとデジタルゲームARLT_23_アナログゲームとデジタルゲーム
ARLT_23_アナログゲームとデジタルゲームarcircle tmu
 
miniLT_01_ニフクラで夢のオンラインランキング機能!
miniLT_01_ニフクラで夢のオンラインランキング機能!miniLT_01_ニフクラで夢のオンラインランキング機能!
miniLT_01_ニフクラで夢のオンラインランキング機能!arcircle tmu
 
ARLT_22_Webサイト制作
ARLT_22_Webサイト制作ARLT_22_Webサイト制作
ARLT_22_Webサイト制作arcircle tmu
 
ARLT_21_ハイブリッドアプリ開発
ARLT_21_ハイブリッドアプリ開発ARLT_21_ハイブリッドアプリ開発
ARLT_21_ハイブリッドアプリ開発arcircle tmu
 
ARLT_20_あなたの知らないGitHub
ARLT_20_あなたの知らないGitHubARLT_20_あなたの知らないGitHub
ARLT_20_あなたの知らないGitHubarcircle tmu
 
ARLT_19_初心者向けAdobeソフト入門
ARLT_19_初心者向けAdobeソフト入門ARLT_19_初心者向けAdobeソフト入門
ARLT_19_初心者向けAdobeソフト入門arcircle tmu
 
ARLT_18_エンジニアのキャリアの方向性
ARLT_18_エンジニアのキャリアの方向性ARLT_18_エンジニアのキャリアの方向性
ARLT_18_エンジニアのキャリアの方向性arcircle tmu
 
ARLT_17_プログラミングコンテストサイトの紹介
ARLT_17_プログラミングコンテストサイトの紹介ARLT_17_プログラミングコンテストサイトの紹介
ARLT_17_プログラミングコンテストサイトの紹介arcircle tmu
 
ARLT_16_思考、、、
ARLT_16_思考、、、ARLT_16_思考、、、
ARLT_16_思考、、、arcircle tmu
 
ARLT_15_User interface design
ARLT_15_User interface designARLT_15_User interface design
ARLT_15_User interface designarcircle tmu
 
ARLT_14_使えると便利!コレクション。
ARLT_14_使えると便利!コレクション。ARLT_14_使えると便利!コレクション。
ARLT_14_使えると便利!コレクション。arcircle tmu
 
ARLT_13_AdventureGame
ARLT_13_AdventureGameARLT_13_AdventureGame
ARLT_13_AdventureGamearcircle tmu
 
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか ARLT_12_なぜチームゲーム制作は期限内に完成しないのか
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか arcircle tmu
 
ARLT_11_コンテンツを生み出そう!
ARLT_11_コンテンツを生み出そう!ARLT_11_コンテンツを生み出そう!
ARLT_11_コンテンツを生み出そう!arcircle tmu
 

More from arcircle tmu (20)

ARLT_ 28_v-tuber
ARLT_ 28_v-tuberARLT_ 28_v-tuber
ARLT_ 28_v-tuber
 
ARLT_28 _v-tuber
ARLT_28 _v-tuberARLT_28 _v-tuber
ARLT_28 _v-tuber
 
ARLT_27_VRの今とフルダイブの可能性
ARLT_27_VRの今とフルダイブの可能性ARLT_27_VRの今とフルダイブの可能性
ARLT_27_VRの今とフルダイブの可能性
 
ARLT_26_ビデオゲームの競技性についての覚書
ARLT_26_ビデオゲームの競技性についての覚書ARLT_26_ビデオゲームの競技性についての覚書
ARLT_26_ビデオゲームの競技性についての覚書
 
ARLT_25_Adobe CCで遊ぶ3D
ARLT_25_Adobe CCで遊ぶ3DARLT_25_Adobe CCで遊ぶ3D
ARLT_25_Adobe CCで遊ぶ3D
 
ARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリARLT_24_vue.jsで作るwebアプリ
ARLT_24_vue.jsで作るwebアプリ
 
ARLT_23_アナログゲームとデジタルゲーム
ARLT_23_アナログゲームとデジタルゲームARLT_23_アナログゲームとデジタルゲーム
ARLT_23_アナログゲームとデジタルゲーム
 
miniLT_01_ニフクラで夢のオンラインランキング機能!
miniLT_01_ニフクラで夢のオンラインランキング機能!miniLT_01_ニフクラで夢のオンラインランキング機能!
miniLT_01_ニフクラで夢のオンラインランキング機能!
 
ARLT_22_Webサイト制作
ARLT_22_Webサイト制作ARLT_22_Webサイト制作
ARLT_22_Webサイト制作
 
ARLT_21_ハイブリッドアプリ開発
ARLT_21_ハイブリッドアプリ開発ARLT_21_ハイブリッドアプリ開発
ARLT_21_ハイブリッドアプリ開発
 
ARLT_20_あなたの知らないGitHub
ARLT_20_あなたの知らないGitHubARLT_20_あなたの知らないGitHub
ARLT_20_あなたの知らないGitHub
 
ARLT_19_初心者向けAdobeソフト入門
ARLT_19_初心者向けAdobeソフト入門ARLT_19_初心者向けAdobeソフト入門
ARLT_19_初心者向けAdobeソフト入門
 
ARLT_18_エンジニアのキャリアの方向性
ARLT_18_エンジニアのキャリアの方向性ARLT_18_エンジニアのキャリアの方向性
ARLT_18_エンジニアのキャリアの方向性
 
ARLT_17_プログラミングコンテストサイトの紹介
ARLT_17_プログラミングコンテストサイトの紹介ARLT_17_プログラミングコンテストサイトの紹介
ARLT_17_プログラミングコンテストサイトの紹介
 
ARLT_16_思考、、、
ARLT_16_思考、、、ARLT_16_思考、、、
ARLT_16_思考、、、
 
ARLT_15_User interface design
ARLT_15_User interface designARLT_15_User interface design
ARLT_15_User interface design
 
ARLT_14_使えると便利!コレクション。
ARLT_14_使えると便利!コレクション。ARLT_14_使えると便利!コレクション。
ARLT_14_使えると便利!コレクション。
 
ARLT_13_AdventureGame
ARLT_13_AdventureGameARLT_13_AdventureGame
ARLT_13_AdventureGame
 
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか ARLT_12_なぜチームゲーム制作は期限内に完成しないのか
ARLT_12_なぜチームゲーム制作は期限内に完成しないのか
 
ARLT_11_コンテンツを生み出そう!
ARLT_11_コンテンツを生み出そう!ARLT_11_コンテンツを生み出そう!
ARLT_11_コンテンツを生み出そう!
 

ARLT_06_Photon使ってみた