ゲームツクール第8回「unity×photon cloud」

40
ゲームツクール第8回 Unity x Photon Cloudをもっと知ろう! 2014/10/31 FAGStudio

Post on 05-Jul-2015

600 views

Category:

Technology


3 download

DESCRIPTION

ゲームツクール第8回放送用資料です。

TRANSCRIPT

Page 1: ゲームツクール第8回「Unity×Photon Cloud」

ゲームツクール第8回Unity x Photon Cloudをもっと知ろう!

2014/10/31 FAGStudio

Page 2: ゲームツクール第8回「Unity×Photon Cloud」

この資料について

2014/10/31に放送の「ゲームツクール第8回 Unity×Photon Cloudをもっとしろう!」の資料で

す。・ニコニコ生放送

http://live.nicovideo.jp/watch/lv198274017

Page 4: ゲームツクール第8回「Unity×Photon Cloud」

この資料について

細かい操作手順などは過去の放送分があがっていますのでこちらも参考にしてください。

第4回ゲームツクール!unity x photon cloudてオンラインゲームを作ろう!

http://www.slideshare.net/gametsukuru/4unity-x-photon-cloud

Page 5: ゲームツクール第8回「Unity×Photon Cloud」

Photon CloudについてURL: http://photoncloud.jp/

Page 6: ゲームツクール第8回「Unity×Photon Cloud」

Photon Cloud 料金についてとりあえず使うのは無料です。(20人まで同時接続可能です。)

Page 7: ゲームツクール第8回「Unity×Photon Cloud」

Photonのアカウントを作ります

↑初めての場合はアカウントを作る。

Page 8: ゲームツクール第8回「Unity×Photon Cloud」

ここまでは前準備でした!

Page 9: ゲームツクール第8回「Unity×Photon Cloud」

最初に新しいプロジェクトを作ります

Page 10: ゲームツクール第8回「Unity×Photon Cloud」

PhotonUnityNetworkingを導入

Asset Storeからダウンロードすることができます。 PC版は無料です。

Page 11: ゲームツクール第8回「Unity×Photon Cloud」

Photon CloudサイトよりアプリケーションID取得

Page 12: ゲームツクール第8回「Unity×Photon Cloud」

アプリケーションIDを入力

アプリケーション IDを入力する。

←ID入れてSaveを押します。

Page 13: ゲームツクール第8回「Unity×Photon Cloud」

こんな画面になっているかもしれません

こちらはサンプルのSceneに飛ぶMenuになります。

Page 14: ゲームツクール第8回「Unity×Photon Cloud」

ステージを作成しよう

新しいシーンを作成してとりあえず”main”という名前で保存します。

Page 15: ゲームツクール第8回「Unity×Photon Cloud」

地面を作ろう!

地面を適当に作りましょう。

今回放送ではあらかじめ作成しておいたTerrainがありますのでそれを使用します。

Page 16: ゲームツクール第8回「Unity×Photon Cloud」

ライトを付けよう

明かりはゲームにはかかせない要素です。(無いと真っ暗で何も見えません)

太陽の光の機能であるDirectionalLightを追加します。

HierarchyビューのCreateボタンをクリックして、DirectionalLightを選択してください。

Page 17: ゲームツクール第8回「Unity×Photon Cloud」

プレイヤーキャラを作成しよう

Assets->PhotonUnityNetworking->Demos->DemoWorker->ResourcesフォルダにあるPlayerをベースに作成します。

これを一度Hierarchyビューにドラッグ&ドロップで追加してください。

Page 18: ゲームツクール第8回「Unity×Photon Cloud」

チャット機能をつけよう!

空のGameObjectを作成して名前をChatとします。

ChatのInspectorビューのAddComponentボタンからInRoomChat.csを追加してください。

これだけでチャットができるようになります!!

Page 19: ゲームツクール第8回「Unity×Photon Cloud」

ロビーを作ろう

新しいシーンを作成してlobbyという名前で保存します。

Page 20: ゲームツクール第8回「Unity×Photon Cloud」

ロビーを作ろう

空のGameObjectを作成して名前をMenuと変えます。

PhotonのサンプルであるWorkerMenuをAddComponentしてあげましょう。

Page 21: ゲームツクール第8回「Unity×Photon Cloud」

ロビーを作ろう

WorkerMenuの21行目のSceneNameGameの名前をmainと変えてください。

Page 22: ゲームツクール第8回「Unity×Photon Cloud」

lobbyとmainをBuild Settingに設定する

Page 23: ゲームツクール第8回「Unity×Photon Cloud」

部屋に入ってみる!

ここまでできましたら部屋に入ってみましょう。

余裕があればWebPlayer版を作るなどして一人2役でプレイしてみてください。

Page 24: ゲームツクール第8回「Unity×Photon Cloud」

部屋に入ってみる!

しかし、何も起こらなかった!!

ここまででは他の人と同じルームに入る事はできますが、チャットができるだけで一緒にプレイする事ができません。

Page 25: ゲームツクール第8回「Unity×Photon Cloud」

ここがポイント!

Photonでネットの向こう側の人と一緒の画面でプレイするには

・PhotonViewコンポーネント

・Photon専用のMonobehaivor・Photon専用のInistantiateが必要になります。

Page 26: ゲームツクール第8回「Unity×Photon Cloud」

Photon Viewコンポーネント

オンライン対応するGameObjectに必ず設定します。とても重要!

Page 27: ゲームツクール第8回「Unity×Photon Cloud」

Photon.Monobehaviourについて

今までのコンポーネントの親クラスであるMonoBehaviourをオンラインプレイができるように機能拡張された

Photon専用のMonobehaviourです。

これがあると、通信部分を作るのが簡単になるので、オンラインに関係のあるコンポートは通常のMonoBehaviourの変わりに親クラスとして設定するようにしましょう。

Page 28: ゲームツクール第8回「Unity×Photon Cloud」

PhotonNetwork.Instantiateについて

Photon専用のInstantiate機能です。

通常のGameObject.Instantiateでは、

自分の画面では作成されますが、一緒にプレイしている人の画面には作成されません。

オンラインゲームでは自分と相手の両方の画面で同じ物を作成するには自分が作成したことを相手に伝える必要がありますが、PhotonNetwork.Instantiateでは自動的にそれをやってくれるので相手の画面にも表示されます。

Page 29: ゲームツクール第8回「Unity×Photon Cloud」

オンラインプレイに対応しよう

プレイヤーを前のページで解説したPhotonNetwork.Instantiateで作成すれば

オンラインプレイをすることができます。

mainのSceneに空のGameObject(PlayerCreator)を作成してPhotonのサンプルについてきた

WorkerInGameコンポーネント

をAddしてください!!

Page 30: ゲームツクール第8回「Unity×Photon Cloud」

オンラインプレイに対応しよう

ProjectビューのどこかにResourcesフォルダーを作って、その中にPlayerのPrefabを作成します!

その後、WorkerInGameのPlayerPrefabの項目にPrefabにしたPlayerを設定します!

Page 31: ゲームツクール第8回「Unity×Photon Cloud」

オンラインプレイに対応しよう

これでゲームが始まった際にオンラインプレイに対応したプレイヤーキャラクターが作成されます。

HierarchyビューのPlayerは消しておきましょう!!

Page 32: ゲームツクール第8回「Unity×Photon Cloud」

射撃用の球を作ろう!

簡単ですが、Sphere(名前:Bullet)を作ってそれにBulletスクリプトを新しく作って設定します。(SphereにはRigidbodyを付けよう!)

Copy&Paste: http://goo.gl/Cl2Qf5

Page 33: ゲームツクール第8回「Unity×Photon Cloud」

射撃用の球を作ろう!

BulletにPhoton View.csを追加します。そして、Prefab化したBulletは ResourcesフォルダにBulletを追加します。

Page 34: ゲームツクール第8回「Unity×Photon Cloud」

PhotonNetwork.Destroyについて

PhotonNetwork.Instantiateで作成したGameObjectをゲームの世界から削除します。

GameObject.DestroyのPhoton版です。

PhotonNetwork.Instantiateで作った物を通常のDestroyしてしまうと通信相手の画面には残ったままになってしまうので注意しましょう。

Page 35: ゲームツクール第8回「Unity×Photon Cloud」

ゲームっぽく球を飛ばす機能を作ろう!

オンラインプレイに対応した射撃機能を作ります!

まず、PlayerにShotという名前のコンポーネントを作成して設定してください。

Page 36: ゲームツクール第8回「Unity×Photon Cloud」

球を飛ばす機能を作ろう!

このようなスクリプトを作成します!

Copy&Paste: http://goo.gl/J7Ke2h

Page 37: ゲームツクール第8回「Unity×Photon Cloud」

球を飛ばす機能を作ろう!

あとは空のGameObjectを追加して(この場合fire)発射位置を決めてあげればオンラインプレイに対応した球を発射する事ができます。ゲームを2つ立ち上げて確認してみよう!

Page 38: ゲームツクール第8回「Unity×Photon Cloud」

PhotonView.isMinePhoton.Monobehaviourを継承しているクラスで使う事ができるパラメータで、自分が生成したGameObjectかどうかを調べる事ができます。

これはPhotonNetwork.Instantiateで作成したGameObjectは自分のゲーム上と相手のゲーム上両方に作成されるので、

他の人のキャラクターを誤って操作しないようにする為にしようします。

Page 39: ゲームツクール第8回「Unity×Photon Cloud」

PhotonView.isMine 続き

PhotonView.isMineを使わないと、矢印キーの上を押したら前に進むって処理が、自分と相手のキャラ同時に行われてしまいます!!

オンラインゲームでは、自分のキャラクター以外は操作しないので、PhotonView.isMineで誤作動しないようにしておきましょう。

一度、ShotコンポーネントのIsMineをコメントアウトして実際に試してみるのもよいかも!

Page 40: ゲームツクール第8回「Unity×Photon Cloud」

遊びましょう!

Let’s Try!!(動作確認は”lobby”からしてください。)完成版:http://goo.gl/YFbgT7