【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!

13,780 views
13,613 views

Published on

【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!

  1. 1. WebPlayer面白いよ! 2012/06/06 第5回 渋谷Unity技術勉強会12年6月6日水曜日
  2. 2. 自己紹介 安藤圭吾(あんどう けいご) @kyusyukeigo Unity歴�2年 株式会社トップゲート 入社一年目 「Unityライブラリ辞典」執筆 「UnityGames」運営 セミナーもやります http://tech.topgate.co.jp/seminar/seminar-2012-06-12-unity12年6月6日水曜日
  3. 3. UnityGames (http://www.unitygames.jp) WebPlayer/Flashで書き出したゲームをプレイできる 是非、訪れてみてください12年6月6日水曜日
  4. 4. アジェンダ Web上に公開する上で気を付けること WWW.LoadUnityWeb の有効活用 WebPlayerStreamed とは12年6月6日水曜日
  5. 5. Web上に公開する上で気を付けること クロスドメイン WWWクラスは別ドメインとの通信ができない制約 がある crossdomain.xml配置で解決 crossdomain.xml <?xml version="1.0"?> � <cross-domain-policy> � � <allow-access-from domain="*"/> � </cross-domain-policy> 配置場所 : ドメインのルート(トップページ)12年6月6日水曜日
  6. 6. Web上に公開する上で気を付けること unity3dファイルのロード時間 間 長い ー ド時 ロ 待ち 時間 ボー ッ イライラ・・・12年6月6日水曜日
  7. 7. Web上に公開する上で気を付けること unity3dファイルのロード時間 色々詰め込んじゃうと 10MBとか20MBとかになりがち あんまり人を待たせないほうがいいですよね 容量の大きいデータは何かしら対策が必要12年6月6日水曜日
  8. 8. Web上に公開する上で気を付けること 解決策の1つとして とりあえず 最初のシーンを表示させよう12年6月6日水曜日
  9. 9. WWW.LoadUnityWebの有効活用 LoadUnityWeb() WebPlayer用のunity3dファイルを読み込む(WWWクラスでDL) LoadUnityWebをするだけの unity3dファイル unity3dファイル(約10KB) (10MB) LoadUnityWeb 10MBのファイルをDL DL後、表示12年6月6日水曜日
  10. 10. WWW.LoadUnityWebの有効活用 スクリプトはこんな感じ using UnityEngine; public class LoadWebScript : MonoBehaviour { � IEnumerator Start () � { � � www = new WWW ("unity3dファイルのURL"); � � while (www.isDone == false) { � � � yield return new WaitForSeconds(0); � � � // www.progressを使って何か処理でも � � } � � yield return www; � � � � www.LoadUnityWeb (); � } }12年6月6日水曜日
  11. 11. WWW.LoadUnityWebの有効活用 LoadUnityWeb()でやりたいこと WebPlayer用のunity3dファイルを読み込む(WWWクラスでDL) LoadUnityWebをするだけの unity3dファイル unity3dファイル(約10KB+α) (10MB) LoadUnityWeb 簡単な操作方法を説明 画像を1枚ペタリ プレイヤーを操作できる DL後、表示 余分なアセットは省く12年6月6日水曜日
  12. 12. WWW.LoadUnityWebの有効活用 LoadUnityWeb()で出来ること PlayerPrefsのデータのやり取りが可能 LoadUnityWebをするだけの unity3dファイル unity3dファイル(約10KB) (10MB) LoadUnityWeb PlayerPrefs.SetString PlayerPrefs.GetString12年6月6日水曜日
  13. 13. WWW.LoadUnityWebの有効活用 LoadUnityWeb()の問題点 CPU使用率がグングン↑↑ 私のMBPでCPU使用率40%(最大) LoadUnityWeb()と言うよりWWWでのDLが問題 PCの性能次第ではブラウザがフリーズしてしまうかも12年6月6日水曜日
  14. 14. WWW.LoadUnityWebの有効活用 LoadUnityWeb()の解決策? ファイルを細かく分けてみる LoadUnityWebをするだけ unity3dファイ unity3dファイ のunity3dファイル(約10KB) ル(5MB) ル(5MB) LoadUnityWeb LoadUnityWeb PlayerPrefs.GetString PlayerPrefs.GetString PlayerPrefsのデータのやり取りが可能 ですが 重複するアセットが多い場合には向いていない12年6月6日水曜日
  15. 15. WebPlayerStreamedとは 先程のLoadUnityWeb()の使い方を自動でやっ てくれるもの(しかも1つのunity3dファイルで!!) 考え方は同じ とりあえず1番目のシーンを表示させようっていう考え方 あれ、LoadUnityWebいらないじゃん...12年6月6日水曜日
  16. 16. WebPlayerStreamedとは 段階的にシーンを読み込んでいく とりあえず1番目のシーン読み込んで表示する(2番目以降のシーンを裏でDL) DLシーン優先度 2番目 > 3番目 > 4番目...�� CPU使用率がグン↑ 私のMBPでCPU使用率30%(最大)12年6月6日水曜日
  17. 17. WebPlayerStreamedとは 使い方はStreamedにチェックを入れるだけ12年6月6日水曜日
  18. 18. Web上に公開する上で気を付けること スクリプトはこんな感じ using UnityEngine; using System.Collections; public class LoadWebScript : MonoBehaviour { � IEnumerator StreamLoadLevel (string levelName) � { � � while (Application.CanStreamedLevelBeLoaded(levelName) == false) { � � � yield return new WaitForSeconds(0); � � � // Application.GetStreamProgressForLevel(levelName)で進捗状況を確認 � � } � � � � Application.LoadLevel (levelName); � � � } }12年6月6日水曜日
  19. 19. WebPlayerStreamedとは うまく使いこなすには 後半のシーンになるほどアセット量は増えるという考え方 2番目シーン アセット1 アセット2 流 3番目シーン れ アセット1 アセット2 アセット3 既にDL済 こいつだけDL12年6月6日水曜日
  20. 20. まとめ つまり ? WebPlayerでは シーンを複数に分けると快適になる可能性があるよ モバイル端末では シーンを1つにすると快適になる可能性があるよ (第4回 渋谷Unity技術勉強会より)12年6月6日水曜日
  21. 21. 参考資料 Security Sandbox of the Webplayer http://unity3d.com/support/documentation/Manual/Security%20Sandbox.html Web Player Streaming http://unity3d.com/support/documentation/Manual/Web%20Player%20Streaming.html12年6月6日水曜日
  22. 22. ご清聴ありがとうございました 「UnityGames」もよろしく!!12年6月6日水曜日

×