71
Unity-Photon-WebGL Handson 2016/06/26 91回「WTM + 広島Unity勉強会」 一般社団法人T.M.C.N / 株式会社システムフレンド 前本 知志 1

Unity-Photon-WebGL Handson 20160626.WTM

Embed Size (px)

Citation preview

Page 1: Unity-Photon-WebGL Handson 20160626.WTM

Unity-Photon-WebGL

Handson2016/06/26

第91回「WTM + 広島Unity勉強会」

一般社団法人T.M.C.N / 株式会社システムフレンド

前本 知志

1

Page 2: Unity-Photon-WebGL Handson 20160626.WTM

・システムフレンドという会社でセンサー&デバイス部長やってます!KINECT等のセンサーを使ったアプリ(イベント用コンテンツ、医療ヘルスケア系)スマフォのARアプリなどを作っています。http://www.systemfriend.co.jp/kinect_nui https://youtu.be/ZSXwhj8HqkE

・TMCN (Tokyo MotionControl Network) Co-founder(理事)https://www.facebook.com/TokyoMotioncontrolNetwork

・著書「Intel RealSense SDK センサープログラミング」https://www.shoeisha.co.jp/book/detail/9784798139630

・HoloMagicians – 日本初のホロレンズ開発者チームhttp://holomagicians.azurewebsites.net/

自己紹介

2

Page 3: Unity-Photon-WebGL Handson 20160626.WTM

0.TMCN、HMCNとかなに?

3

Page 4: Unity-Photon-WebGL Handson 20160626.WTM

ゴール

Unityに触れたことのない方でもUnityを使ってインタラクティブコンテンツを簡単に開発できることを知る。

Photonを使ってクラウド上の仮想ルームでのマルチプレイヤーゲーム体験をする。

対象者:

Unityに触れたことのない方

前提:

Unityをセットアップ済みである

4

Page 5: Unity-Photon-WebGL Handson 20160626.WTM

Agena

1. Unityをさわってみる

a. Unityの基本説明

b. 物理挙動を使ってみる

2. スマホの傾きを使ってみる Unity WebGLがスマホ未サポートだった…

3. Photonを使ってクラウド上のルームへ!

4. みんなで同じルームの中を飛んでみよう!

5. これは面白い!と思った人へのNext Step.

5

Page 6: Unity-Photon-WebGL Handson 20160626.WTM

1.Unityをさわってみる

6

Page 7: Unity-Photon-WebGL Handson 20160626.WTM

TMCNで開催したイベントからまるぱく!

http://www.slideshare.net/RikakoTakahashi/ppt-windows

7

Page 8: Unity-Photon-WebGL Handson 20160626.WTM

Unity女子が教えるゲームエンジン入門

Unityおじさん

8

Page 9: Unity-Photon-WebGL Handson 20160626.WTM

初めまして^^

https://github.com/SystemFriend/MyFirstUnity

いきなりだが完成品はここにある。

もう知ってるという人は困っている人を助けてくれると

おじさんは助かるぞ。

9

Page 10: Unity-Photon-WebGL Handson 20160626.WTM

講師紹介

▼IoTイノベーターカップ 特別賞▼Innovator Academy 特別賞▼Tokyo Hackademics 2015 優勝▼Shockathon2015 京セラ賞Tech in AsiaやMaker Faire tokyo2015など出展来月は2つのハッカソンに出場予定

高橋 理佳子獨協大学 経済学部経営学科 在学

サイバーエージェント、voyage group、Benesse、リンクアンドモチベーションなど8社のインターンに参加その後、ビジコンに参加するも企画立案で終わることに物足りなさを感じハッカソンに参加。そこで自分の技術にの低さを痛感&プログラミングに出会い、独学で勉強中4月からリクルートホールディングスに入社予定

10

今日はおじさんでごめん。。

Page 11: Unity-Photon-WebGL Handson 20160626.WTM

今日のながれ

①アイスブレーク

(1)たかりかを知ろう(2)unityを知ろう!

② unityを触ってみよう!

③ゲームを作ってみよう!

④遊んでみよう!

⑤クロージング

11

Page 12: Unity-Photon-WebGL Handson 20160626.WTM

unityってなーに?

一言で言えば

“ゲーム開発ツール”

・ゲームを動かすために

“ゲームエンジン”と

ゲーム内のコンテンツを編集する

“エディター”が統合された

“エディター統合型ゲームエンジン”

12

3Dゲームをはじめインタラクティブなアプリが作りやすいぞ。

Page 13: Unity-Photon-WebGL Handson 20160626.WTM

インストールしましたよね♪

13

Page 14: Unity-Photon-WebGL Handson 20160626.WTM

それじゃ起動しましょうか

14

Page 15: Unity-Photon-WebGL Handson 20160626.WTM

プロジェクトの作成

15

Page 16: Unity-Photon-WebGL Handson 20160626.WTM

プロジェクトの生成

適当に名前を決めて

適当に保存先を決めて※空のフォルダ

Create projectを押す!!

16

Page 17: Unity-Photon-WebGL Handson 20160626.WTM

画面の説明

ツールバー

Sceneビュー

Hierarchyビュー

Inspectorビュー

projectビュー

現在のシーンを視覚的に確認できるシーンの中に配置されているオブジェクトの階層構造を確認できる

オブジェクトやファイルの内容を確認したり、詳細に設定することが出来る.

プロジェクト内の、ファイルの様子を表示する画面。 .

※ここは使いながら追々覚えましょう

17

Page 18: Unity-Photon-WebGL Handson 20160626.WTM

画面レイアウトがよくわからなくなったら…

とりあえず2 by 3 だ。

ウィンドウを消してしまったら

「Window」からまた開けるぞ。

18

Page 19: Unity-Photon-WebGL Handson 20160626.WTM

画面の説明

Gameビュー

Consoleビュー

ツールバーのプレイを押すことで作成中のゲームを実際に動かしてプレビューすることが出来る

エラーメッセージを確認することが出来ます

19

Page 20: Unity-Photon-WebGL Handson 20160626.WTM

下準備をしましょう

ProjectビューのAssetフォルダを右クリック

↓Createからfolderを選択

20

Page 21: Unity-Photon-WebGL Handson 20160626.WTM

フォルダ管理📂

フォルダを三つ作って“Materials”,“Scenes”,“Scripts”と名前を振る.

これをやらないと後々後悔しますよ~

21

Page 22: Unity-Photon-WebGL Handson 20160626.WTM

そろそろなんか作りましょうか

22

Page 23: Unity-Photon-WebGL Handson 20160626.WTM

とりあえずなんかつくってみましょ

この章ではこんなのを作ります!!

23

Page 24: Unity-Photon-WebGL Handson 20160626.WTM

板をつくる

Hierarchyビューで“create”→“Cube”を選択

玉ころがしの床をつくるぞ。

24

Page 25: Unity-Photon-WebGL Handson 20160626.WTM

板をつくる

Hierarchyビューで“Cube”が追加されている

Positionは(x,y,z)=(0.0.0)にする

スケールツールを選択

試しに他のツールも触ってみましょうか25

Page 26: Unity-Photon-WebGL Handson 20160626.WTM

板をつくる

この■を引っ張る

26

Page 27: Unity-Photon-WebGL Handson 20160626.WTM

板をつくる

(50,1,50)と入力

27

Page 28: Unity-Photon-WebGL Handson 20160626.WTM

軽くtips

①ALT + CTRL(Macの人はcommand) + ドラッグ⇒“平行移動!!”

②ALT + ドラッグ⇒“視界の旋回!!”

③マウスホイール⇒“ズーム”

④Hierarchyから選択したオブジェクトをダブルクリック⇒選択したオブジェクトに焦点を合わせる

これは便利ですよ28

Page 29: Unity-Photon-WebGL Handson 20160626.WTM

玉をつくる

“Hierarchyビュー”⇒“Sphere”

29

Page 30: Unity-Photon-WebGL Handson 20160626.WTM

玉をつくる移動ツールとスケールツールを使ってうまい感じに

30

Page 31: Unity-Photon-WebGL Handson 20160626.WTM

玉をつくる

うまくいかないな~ってひとはこちらを参考にしてみてください

31

Page 32: Unity-Photon-WebGL Handson 20160626.WTM

玉に物理挙動を与える

玉(Sphere)を選択して、メニューから“Component”⇒“Physics”⇒“Rigidbody”

Unityでは重力に従った動きを簡単に使え

るぞ。

32

Page 33: Unity-Photon-WebGL Handson 20160626.WTM

玉に物理挙動を与える

Use Gravityに☑が入れば重力が適用されY軸に負の方向に落下しようとする力が発生します.

33

Page 34: Unity-Photon-WebGL Handson 20160626.WTM

床にも物理挙動を与える

床はその場でとどまっててほしいのでIs Kinematicに☑を入れる

床(Cube)を選択して、メニューから“Component”⇒“Physics”⇒“Rigidbody”

Is Kinematicにチェックを入れる場合と入れない場合をPlayして試してみるといい

ぞ。

34

Page 35: Unity-Photon-WebGL Handson 20160626.WTM

うごかしてみましょ

ココを押して

35

Page 36: Unity-Photon-WebGL Handson 20160626.WTM

でけぇ!!

アップすぎ!!

停止押してもう一度playボタン押して

36

Page 37: Unity-Photon-WebGL Handson 20160626.WTM

playボタン押してる状態

え!プロパティ変更が保存されないんだけど!

playボタン押してない状態

今の状態を確認したらplayボタン押してない状態にしましょう!保存されないのです.. > < ..

最初よく戸惑うポイントだ。

37

Page 38: Unity-Photon-WebGL Handson 20160626.WTM

カメラを動かしましょう

移動ツールや回転ツールでうまい感じに調整して…

右下のプレビューで確認して..,

あんまりうまくいかなかったらとりあえず

position(0,30,-60) Rotation(25,0,0)でなんとかしてください

38

Page 39: Unity-Photon-WebGL Handson 20160626.WTM

もう一度再生!!

39

Page 40: Unity-Photon-WebGL Handson 20160626.WTM

ん?なんか不自然!

ボールってバウンドするよね!

40

Page 41: Unity-Photon-WebGL Handson 20160626.WTM

次は反発係数を入力

Project⇒createからPhysic Materialを選択

出てきたものをAssets/Materials

フォルダへ入れる

Physic Materialは物体表面の特性を設定するものだ。

41

Page 42: Unity-Photon-WebGL Handson 20160626.WTM

反発係数を入力

0~1で値を入力

42

Page 43: Unity-Photon-WebGL Handson 20160626.WTM

反発係数を入力

Sphereへドラッグ&ドロップ

43

Page 44: Unity-Photon-WebGL Handson 20160626.WTM

反発係数を入力

Cubeにもドラッグ&ドロップ

玉と床がお互いに反発するようにな

るぞ。

44

Page 45: Unity-Photon-WebGL Handson 20160626.WTM

うごかしてみましょ!!

ココ押して回転ツールでいじって

Cubeに傾きをつけておくと面白いぞ。

45

Page 46: Unity-Photon-WebGL Handson 20160626.WTM

キー操作を実装しましょうか

※ここから先は時間に余裕があれば試してみましょう。

GitHubに完成版があります。https://github.com/SystemFriend/MyFirstUnity/blob/master/MyFirstUnity/

Assets/Scripts/KeyMove.cs

46

Page 47: Unity-Photon-WebGL Handson 20160626.WTM

Scriptを作成

Project⇒Create⇒JAVA script

47

※C# Scriptでもかまいません。

Page 48: Unity-Photon-WebGL Handson 20160626.WTM

かきましょう

出来たscriptをダブルクリックするとこんな画面になります

48

Page 49: Unity-Photon-WebGL Handson 20160626.WTM

かきましょう

このオブジェクトの姿勢を秒間30度の速さで入力方向にZ軸回転する

49

Page 50: Unity-Photon-WebGL Handson 20160626.WTM

実装

ドラッグ&ドロップ

50

Page 51: Unity-Photon-WebGL Handson 20160626.WTM

2.スマホの傾きをつかってみる

51

Page 52: Unity-Photon-WebGL Handson 20160626.WTM

UnityとWeb

Unityは一つのプロジェクトから様々なプラットフォームへの書き出しができます。

WebGLが最近本格サポートされました。つまりWebブラウザがあれば特別なものを

インストールしなくてもプレイができるのです。

※ただし現在モバイルブラウザは未サポート

52

Page 53: Unity-Photon-WebGL Handson 20160626.WTM

というわけで

本当はスマホの傾きで板が動くものを作ってスマホブラウザから動かしてみたかったのですが残念ながら断念。下記にWebGLビルドしたものがあるのでPCブラウザからアクセスしてみてください。矢印キー上下左右で板をコントロールできます。

ここでは

Unityアプリは簡単にブラウザ上で動作する

ということを理解してください。

http://goo.gl/YziuOB

53

Page 54: Unity-Photon-WebGL Handson 20160626.WTM

3.Photonを使ってクラウド上のルームへ!

完成状態のサンプルコード:

https://github.com/SystemFriend/PhotonFlySample/tree/issue/1

54

Page 55: Unity-Photon-WebGL Handson 20160626.WTM

Photonとは

クラウド上の仮想ルームにログインして多人数でプレイするゲームなどを作れるものです。

サーバーを持っていなくてもすぐ使えます。

無料プランでも20人まで同時接続ができます。

Unityから簡単に使えます。

GMOクラウドさんが窓口です。

チュートリアル

http://photonengine.jp/

http://photonengine.jp/support/movie.html

55

Page 56: Unity-Photon-WebGL Handson 20160626.WTM

Photonサインアップ & ログイン

今日は時間の関係で実際のアカウント登録は割愛しますが手順は下記動画をご覧頂き、ご自身で手続きをお願い致します。

https://youtu.be/vFzPyJ7YEMA

【公式】Photonのアカウント取得方法

56

Page 57: Unity-Photon-WebGL Handson 20160626.WTM

Unityで新規プロジェクトを作成

Unityを起動しなおして、PhotonFlySample という新規プロジェクトを作る

57

Page 58: Unity-Photon-WebGL Handson 20160626.WTM

UnityからPhotonを使えるようにする

ブラウザで下記URLへアクセスPhoton Unity Networking Free を「Open in Unity」し、Unityの[AssetStore]よりダウンロード&インポートする。

http://u3d.as/2ey

58

Page 59: Unity-Photon-WebGL Handson 20160626.WTM

Unity Asset Storeからインストール 02

Unityへインポート

59

Page 60: Unity-Photon-WebGL Handson 20160626.WTM

アプリIDの設定

AppIdを入力します。 ※AppIdは本日のみ利用できるものをお伝えします

ここでシーンを一度保存しておきましょう。メニューより[File]-[Save Scene]とし、Assets/Scenes/Main に保存します。

60

Page 61: Unity-Photon-WebGL Handson 20160626.WTM

Photonと接続する設定 01

空(から)のオブジェクトをつくる

[Hierarchy]-[Create]-[Create Empty]

61

Page 62: Unity-Photon-WebGL Handson 20160626.WTM

Photonと接続する設定 01

Photonのスクリプトをオブジェクトに張り付ける

[Assets]-[Photon Unity Networking]-[Demos]-[MarcoPolo-Tutorial]-[RandomMatchmaker]をGameObjectにドロップする

[Inspector]でGameObjectにスクリプトがつきます。

62

Page 63: Unity-Photon-WebGL Handson 20160626.WTM

床をつくる 01

キャラクターが動き回る床をつくる

[Hierarchy]-[3D Objects]-[Plane]Scale (X, Y, Z)を(10, 1, 10)とする

63

Page 64: Unity-Photon-WebGL Handson 20160626.WTM

床をつくる 02

床ができるとこんなビューになります

64

Page 65: Unity-Photon-WebGL Handson 20160626.WTM

ここで動かしてみましょう!

Room 01

Room 0265

http://goo.gl/kS51SK

http://goo.gl/x0h6Yw

別Roomですが完成品もこちらに

Page 66: Unity-Photon-WebGL Handson 20160626.WTM

4.みんなで同じルームの中を飛んでみよう!

完成状態のサンプルコード:

https://github.com/SystemFriend/PhotonFlySample

66

Page 67: Unity-Photon-WebGL Handson 20160626.WTM

Let’s fly!

前のセクションで作成したデモに少し手を加えたものを用意しました。自由にフライトを楽しんでください!

操作方法:

← → 操縦桿左右

↑ ↓ 操縦桿上下(上げると下降 下げると上昇)

スペースキー 自分視点と神視点の切り替え

http://goo.gl/gPGhOy

http://goo.gl/D12kut

Room 01

Room 0267

Page 68: Unity-Photon-WebGL Handson 20160626.WTM

5.これは面白い!と思った人へのNext Step

68

Page 69: Unity-Photon-WebGL Handson 20160626.WTM

サンプルを改造しよう

岩や他の飛行機にぶつかったときに跳ね返ったりダメージをうけたり

弾を撃てるようにしたりスコアやステージを用意してよりゲームっぽくしてみたり

BGMや効果音を追加したり

AppStoreやGoogle Playストア、Windosストアなどストアにアプリをリリースしたり

広告で儲けたりw

様々なことがUnityで行えます。

ぜひトライしてみてください。

69

Page 70: Unity-Photon-WebGL Handson 20160626.WTM

困ったときには

このハンズオン会場にいるUnity関連コミュニティに参加して、学習をしたり教えてもらうこともできますね!

ぜひ広島のUnityを盛り上げてください。

70

Page 71: Unity-Photon-WebGL Handson 20160626.WTM

告知

あのコンテストの予選が広島で初めて開催されます!

71