2013年12月4日 AID勉強会: Unity祭り

Unityの向こう側へ
∼ 通信・連携に関する事例紹介 ∼
株式会社ポケット・クエリーズ
代表取締役

佐々木 宣彦
自己紹介
自己紹介
My First Unity
(本田圭佑の公式iPhoneアプリ)本田圭佑のフリーキック世界王者への道
Unity と 他プラットフォーム の 連携パターン
内部的な連携

外部との連携
Web(API)サーバ

スマートフォン

ブラウザ

iOS/
Android	
  等

HTML

センサなど

Javascript

dll

他の	...
連携パターン①

ネイティブ連携(スマートフォン)
開発事例
広告配信サービス『AID』SDK の Unityプラグイン開発
スマートフォン

iOS/
Android	
  等
ネイティブ側
SDK
ネイティブ側
連携プラグイン

Unity側	
  
連携プラグイン

Unity
iOSプラグイン関数	
  
 呼び出しの流れ

①AidManger.prefabにアタッチしている	
  
 AidManager.csにて、プラグイン関数呼び出し開始
iOSプラグイン関数	
  
 呼び出しの流れ
②DllInportにて定義されているiOS側の関数	
  
  を呼び出す。

③呼び出されるiOS側の関数
iOS側関数からUnity側関数を呼ぶ流れ
①iOS側ではUnitySendMessage関数を用いて、	
  
 現在のSceneのGameObjectに向けて関数呼び出しを行う

②呼び出されるUnity側の関数
連携パターン②

ブラウザ連携(WebPlayer)
iOS側関数からUnity側関数を呼ぶ流れ
UnityからHTML側のJavaScript関数を呼ぶ
サンプル

ブラウザ
①iOS側ではUnitySendMessage関数を用いて、	
  
HTML
 現在のSceneのGameObject...
iOS側関数からUnity側関数を呼ぶ流れ
開発事例

部品製作のためのテストアプリ『アバタースナップショット』

HTML部分
Unity(WebPlayer)部分
HTML側JavaScriptから	
  
 Unity側関数を呼ぶ流れ

①HTML側ではSendMessage関数を用いて、	
  
 現在のSceneのGameObjectに向けて関数呼び出しを行う

②呼び出されるUnity側の関数
参考	
  
(WebPlayer内の画面を	
  
 スナップショット画像化して	
  
 サーバに送る処理)
連携パターン③

サーバ連携(HTTP)
開発事例
API連携: 育成ゲーム『あいうら 放課後☆カニ倶楽部』
Web(API)サーバ

MySQL	
  など

PHP	
  など

HTTP

Unity
API 連携: あいうら 放課後☆カニ倶楽部 での実装例
取得・管理データ
• 
• 
• 
• 
• 
• 
• 

アプリ起動回数(月・日ごと)	
 
プレイ回数(月・日ごと)	
 
広告タップ箇所・回数(月・日ごと)	
 
ユーザデータ・...
サーバAPI関数を呼ぶ流れ

①定義したサーバAPIアクセス用関数

②サーバAPIからのレスポンス受取時に	
  
  最終的に呼び出されるコールバック関数
③WWWクラスでPost通信開始

④サーバAPIからのレスポンスデータ
(JSON)をパースして値取り出し

⑤コールバック関数を呼び出し
このサーバAPIのしくみですが
密やかにサービス販売・ソース販売しています。。。
ご希望の方、この仕組みを使って下さい
連携パターン④

他のUnityとの連携(NetworkView)
開発事例
自転車シミュレータ 『cycle Street』(株式会社フローベル様)
他の	
  
Unity	
  
アプリ
回転センサ
dll

Unity側	
  
連携プラグイン

NetworkView

Unity
3台のPC(Unity)で NetWorkView通信
Player①	
  
PC
観客閲覧用PC

Player②	
  
PC
移動には NavMesh を使用
NavMehによる自立移動 と NetworkViewによる位置同期
バッティングする(チラツキ発生)ので、工夫が必要
NetworkViewによる同期内容

自転車+競輪選手の	
  
  Transform(位置)情報

自転車+競輪選手の	
  
  Animation情報
開発事例
自転車シミュレータ 『cycle Street』(株式会社フローベル様)

Oculus対応版も昨日完成

スポルテック2013
にて展示しています!
(株式会社フローベル様)

12/5(木) ∼ 12/7(土)
東京ビッグサイト
最後に
その他 開発した連携モジュール・実装経験
・ Kakao	
  SDK	
  プラグイン	
  
・ entag!	
  SDK	
  プラグイン	
  
・ リアルタイム通信(チャットアプリ)	
  
	
  
・ 課金(iOS・An...
Upcoming SlideShare
Loading in...5
×

Unityの向こう側へ

10,401

Published on

通信・連携に関するUnity開発事例紹介

Published in: Technology

Unityの向こう側へ

  1. 1. 2013年12月4日 AID勉強会: Unity祭り Unityの向こう側へ ∼ 通信・連携に関する事例紹介 ∼ 株式会社ポケット・クエリーズ 代表取締役 佐々木 宣彦
  2. 2. 自己紹介
  3. 3. 自己紹介
  4. 4. My First Unity (本田圭佑の公式iPhoneアプリ)本田圭佑のフリーキック世界王者への道
  5. 5. Unity と 他プラットフォーム の 連携パターン 内部的な連携 外部との連携 Web(API)サーバ スマートフォン ブラウザ iOS/ Android  等 HTML センサなど Javascript dll 他の   Unity   アプリ MySQL  など ネイティブ側 SDK ネイティブ側 連携プラグイン Unity側   連携プラグイン PHP  など Web   Player Unity側   連携プラグイン Unity HTTP WebSocket NetworkView
  6. 6. 連携パターン① ネイティブ連携(スマートフォン)
  7. 7. 開発事例 広告配信サービス『AID』SDK の Unityプラグイン開発 スマートフォン iOS/ Android  等 ネイティブ側 SDK ネイティブ側 連携プラグイン Unity側   連携プラグイン Unity
  8. 8. iOSプラグイン関数    呼び出しの流れ ①AidManger.prefabにアタッチしている    AidManager.csにて、プラグイン関数呼び出し開始
  9. 9. iOSプラグイン関数    呼び出しの流れ ②DllInportにて定義されているiOS側の関数     を呼び出す。 ③呼び出されるiOS側の関数
  10. 10. iOS側関数からUnity側関数を呼ぶ流れ ①iOS側ではUnitySendMessage関数を用いて、    現在のSceneのGameObjectに向けて関数呼び出しを行う ②呼び出されるUnity側の関数
  11. 11. 連携パターン② ブラウザ連携(WebPlayer)
  12. 12. iOS側関数からUnity側関数を呼ぶ流れ UnityからHTML側のJavaScript関数を呼ぶ サンプル ブラウザ ①iOS側ではUnitySendMessage関数を用いて、   HTML  現在のSceneのGameObjectに向けて関数呼び出しを行う Javascript Web   Player Unity Unity側からHTML側のJavaScript関数を呼び出す
  13. 13. iOS側関数からUnity側関数を呼ぶ流れ 開発事例 部品製作のためのテストアプリ『アバタースナップショット』 HTML部分 Unity(WebPlayer)部分
  14. 14. HTML側JavaScriptから    Unity側関数を呼ぶ流れ ①HTML側ではSendMessage関数を用いて、    現在のSceneのGameObjectに向けて関数呼び出しを行う ②呼び出されるUnity側の関数
  15. 15. 参考   (WebPlayer内の画面を    スナップショット画像化して    サーバに送る処理)
  16. 16. 連携パターン③ サーバ連携(HTTP)
  17. 17. 開発事例 API連携: 育成ゲーム『あいうら 放課後☆カニ倶楽部』 Web(API)サーバ MySQL  など PHP  など HTTP Unity
  18. 18. API 連携: あいうら 放課後☆カニ倶楽部 での実装例 取得・管理データ •  •  •  •  •  •  •  アプリ起動回数(月・日ごと) プレイ回数(月・日ごと) 広告タップ箇所・回数(月・日ごと) ユーザデータ・ゲームデータ 課金データ サーバ側からアプリ側へデータ更新 Push通知 取得・管理データ •  •  •  •  •  •  •  システムメンテナンス情報 取得API     ユーザデータ・ゲームデータ 取得API     ユーザデータ・ゲームデータ 更新API     ゲーム起動・プレイ回数データ 更新API     広告タップデータ 更新API     課金データ 登録API     配信広告データ 取得API   •  Push通知管理画面
  19. 19. サーバAPI関数を呼ぶ流れ ①定義したサーバAPIアクセス用関数 ②サーバAPIからのレスポンス受取時に     最終的に呼び出されるコールバック関数
  20. 20. ③WWWクラスでPost通信開始 ④サーバAPIからのレスポンスデータ (JSON)をパースして値取り出し ⑤コールバック関数を呼び出し
  21. 21. このサーバAPIのしくみですが 密やかにサービス販売・ソース販売しています。。。 ご希望の方、この仕組みを使って下さい
  22. 22. 連携パターン④ 他のUnityとの連携(NetworkView)
  23. 23. 開発事例 自転車シミュレータ 『cycle Street』(株式会社フローベル様) 他の   Unity   アプリ 回転センサ dll Unity側   連携プラグイン NetworkView Unity
  24. 24. 3台のPC(Unity)で NetWorkView通信 Player①   PC 観客閲覧用PC Player②   PC
  25. 25. 移動には NavMesh を使用 NavMehによる自立移動 と NetworkViewによる位置同期 バッティングする(チラツキ発生)ので、工夫が必要
  26. 26. NetworkViewによる同期内容 自転車+競輪選手の     Transform(位置)情報 自転車+競輪選手の     Animation情報
  27. 27. 開発事例 自転車シミュレータ 『cycle Street』(株式会社フローベル様) Oculus対応版も昨日完成 スポルテック2013 にて展示しています! (株式会社フローベル様) 12/5(木) ∼ 12/7(土) 東京ビッグサイト
  28. 28. 最後に その他 開発した連携モジュール・実装経験 ・ Kakao  SDK  プラグイン   ・ entag!  SDK  プラグイン   ・ リアルタイム通信(チャットアプリ)     ・ 課金(iOS・Android)   ・ GameCenter   ・  Facebook  連携   ・  Twitter連携   ・  Push通知連携(iOS/Android) 本セッションに関するお問合せは こちらまで 技術交流、ビジネス交流、大歓迎です。 query@pocket-queries.co.jp
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×