ノンゲーム開発のいろは with unity
TRANSCRIPT
![Page 1: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/1.jpg)
ノンゲーム開発のいろは#TechBuzz 第36回Unity勉強会
![Page 2: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/2.jpg)
自己紹介
あーさん@疾風の雑魚 (@a3geek)
teamLab Inc. Interactive Team / Interactive Artist
Unity3.xの時代からUnity触ってる
![Page 3: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/3.jpg)
仕事で ノンゲーム開発
してる
![Page 4: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/4.jpg)
Interactive / Installation Art
![Page 5: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/5.jpg)
観客が参加することで完成する芸術作品。 特に、コンピューターを用いた作品で、観客の動作に センサーが反応したり、タッチパネルなどの入力に よって何らかの変化が起きたりするものをいう。
from: https://kotobank.jp/word/インタラクティブアート
インタラクティブアート?
http://www.team-lab.net/all/products/kobitotable.html http://www.team-lab.net/all/other/diversity.html http://www.team-lab.net/all/products/stgse.html
![Page 6: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/6.jpg)
ある特定の室内や屋外などに オブジェや装置を置いて、作家の意向に沿って 空間を構成し変化・異化させ、場所や空間全体を
作品として体験させる芸術。
from: http://www.weblio.jp/content/インスタレーションアート
インスタレーションアート?
http://www.team-lab.net/all/art/flowerandpeople-tokyo.html http://www.team-lab.net/all/other/harmony.html http://www.team-lab.net/all/art/crows_dark.html
![Page 7: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/7.jpg)
メディアアート
![Page 8: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/8.jpg)
『展示をする作品』
どうやってUnityで作るか?
![Page 9: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/9.jpg)
お絵かき水族館を例に説明
http://www.team-lab.net/all/products/aquarium.html
![Page 10: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/10.jpg)
https://www.youtube.com/watch?v=AnAqB7LZUb8
![Page 11: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/11.jpg)
センサーによってタッチ出来る スキャナーでスキャンする
複数のプロジェクターで投影 魚の最大数とか設定出来る
![Page 12: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/12.jpg)
#1 センサーとUnity
#2 スキャナーとUnity
#3 プロジェクターの投影
#4 設定画面
![Page 13: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/13.jpg)
センサーとは OSC
で通信してる
![Page 14: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/14.jpg)
OSC とは?
Open Sound Control (OSC) は、 コンピュータ、シンセサイザー、その他のマルチメディアデバイス
同士でコミュニケーションするための 通信プロトコルです。
現代のネットワーク技術の成果を電子楽器の世界に適用することで、 OSCは相互運用性、正確さ、柔軟さ、また、拡張性に優れた
性能を持ちます。
http://yoppa.org/ma2_10/2279.html
![Page 15: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/15.jpg)
MIDIの代替
![Page 16: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/16.jpg)
OSC プロトコル
/touch/pos 0.0 0.1Message Arguments
UDPで送信
x座標 y座標データのキー
![Page 17: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/17.jpg)
“Simple” is “best”!
![Page 18: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/18.jpg)
#1 センサーとUnity
Unity内にUDPServerが建っている
PC同士をLANケーブルで繋げてある
センサー側がクライアント
ローカルネットワーク通信
センサーから0.0~1.0で値が送られるViewportPointToRayとPhysics.Raycastを使えば Unity側でのタッチ判定が出来る
![Page 19: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/19.jpg)
#1 センサーとUnity
#2 スキャナーとUnity
#3 プロジェクターの投影
#4 設定画面
![Page 20: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/20.jpg)
スキャナーとは WebSocket で通信してる
![Page 21: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/21.jpg)
WebSocket とは?
WebSocketとは、WebサーバとWebブラウザの間で ソケット通信を行なうための技術仕様。
Webページ上のスクリプトからソケット通信を利用するための インターフェース仕様を定めたもので、接続中はサーバ側から 任意のタイミングで通信を開始することができるようになる。
http://e-words.jp/w/WebSocket.html
![Page 22: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/22.jpg)
XMLHttpRequestの凄い版
![Page 23: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/23.jpg)
#2 スキャナーとUnity
Unity内にHTTPServerが建っている
PC同士をLANケーブルで繋げてある
一昔前はTCP通信だった(今でも一部作品はそのまま)
センサーとの接続もあるのでハブは必須
スキャナーから必要なデータが送られるスキャンしたテクスチャのバイナリ、魚の種類、 左右どちらでスキャンされたのか等
![Page 24: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/24.jpg)
#1 センサーとUnity
#2 スキャナーとUnity
#3 プロジェクターの投影
#4 設定画面
![Page 25: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/25.jpg)
複数のプロジェクターを 横に並べて投影
![Page 26: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/26.jpg)
一つ問題が発生する
![Page 27: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/27.jpg)
プロジェクターの映像が 重なってしまう
![Page 28: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/28.jpg)
どういうこと?
![Page 29: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/29.jpg)
プロジェクター3台投影の理想
![Page 30: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/30.jpg)
理想通りに投影出来る訳もなく…
![Page 31: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/31.jpg)
実際にはプロジェクターの光が重なる
![Page 32: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/32.jpg)
映像の重なりが出来てしまう
![Page 33: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/33.jpg)
どうすれば良いか?
![Page 34: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/34.jpg)
映像の中に黒い線を入れる
![Page 35: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/35.jpg)
プロジェクターは 黒い光は投影出来ない
![Page 36: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/36.jpg)
重なる領域と黒い領域を合わせれば 綺麗に投影する事が出来る!
![Page 37: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/37.jpg)
ブレンディングを行えば綺麗に投影出来る
![Page 38: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/38.jpg)
#3 プロジェクターの投影
Unity内に映像ブレンディング機能を作る
プロジェクターで出来る事はそちらで
ポストエフェクトで簡単に実装出来る
台形補正で補える部分も存在する
プロジェクターは絶対に固定する動いたらブレンディングをやり直しになる
![Page 39: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/39.jpg)
#1 センサーとUnity
#2 スキャナーとUnity
#3 プロジェクターの投影
#4 設定画面
![Page 40: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/40.jpg)
アプリの実行中に パラメータを変更できる
![Page 41: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/41.jpg)
なぜ必要?
![Page 42: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/42.jpg)
作品を作る 基本的な流れとして
![Page 43: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/43.jpg)
オフィスで”それっぽい見た目”に制作
実際の現場で調整
リリース!
![Page 44: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/44.jpg)
現場での調整が必須色味、サイズ、出現数、etc...
![Page 45: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/45.jpg)
実行しながら調整が出来る! とても大事
![Page 46: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/46.jpg)
#4 設定画面
各パラメータの値はXMLに保存する
デバッグ画面に近い
起動時に設定を読み込み反映する
ただし設定機能を消した版でリリースする事は無い
リリース後に設定を変更する事もあるお客さんの要望によって最大数やタイムライン等を 変える事は少なく無い
![Page 47: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/47.jpg)
## まとめ
![Page 48: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/48.jpg)
コンテンツを作る という部分については
ゲーム開発とそんなに変わらない
![Page 49: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/49.jpg)
見た目のクオリティ の方が重要で難しく
個人のセンスと裁量に左右される
![Page 50: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/50.jpg)
展示をする作品 を作る上では如何に施工を楽にするかを考え 開発者が現場に居なくても設置出来るように
しないといけない
![Page 51: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/51.jpg)
機材の選定 も大事になってくる
初めの頃は幾つかの種類を購入して試行を繰り返す
![Page 52: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/52.jpg)
個人的にはゲームもノンゲームも大して変わらない
結局は『技術とアイデア』
![Page 53: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/53.jpg)
まだ時間残ってますか?
業務連絡
![Page 54: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/54.jpg)
#0 おまけ
![Page 55: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/55.jpg)
PlayerPrefsに裏切られた話
![Page 56: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/56.jpg)
昔の公式ドキュメントには
『Windowsでは.plistにデータを保存する。 異なるアプリ間で同じKeyを使っても大丈夫!』
って書いてあった
![Page 57: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/57.jpg)
だけど実際は.plistではなく レジストリに保存されるようになっていた
しかも異なるアプリ間で同じKeyを使うと コンフリクトする
![Page 58: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/58.jpg)
そんな事に気付く事もなく 設定データをPlayerPrefsに保存する様に
当初は実装してしまっていた
![Page 59: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/59.jpg)
おかげで違うアプリを起動するたびに 設定が上書きされてしまう
不便極まりない機能が出来てしまった事がある
![Page 60: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/60.jpg)
施工時に起きやすい問題 ランキング
独断と偏見によって選定
![Page 61: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/61.jpg)
第3位 機材壊れたほぼ必ず予備機を用意しているのでそれで対応 最悪の場合は電気屋さんへGo!
![Page 62: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/62.jpg)
第2位 ネットワーク問題ポートが空いてない、速度が遅すぎる等 会場のネットワークが問題抱えていると厄介
![Page 63: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/63.jpg)
第1位 想定以上に微妙実際に投影してみると想定以上に微妙な事がある 現場やホテルでプログラムを直すことも良くある
![Page 64: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/64.jpg)
全然使わないUnityの機能 ランキング
独断と偏見によって選定
![Page 65: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/65.jpg)
第3位 uGUI綺麗な設定画面を作る時にたまに使う程度 全く使わない訳ではないが、使う事は少ない
![Page 66: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/66.jpg)
第2位 Scene基本的にワンシーンアプリなので使う事は無い 施工先毎にSceneを分けて、ビルドする事はある
![Page 67: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/67.jpg)
第1位 スマホ向け機能iPhone / Androidアプリの開発を全然しない どんな機能があるのかも少ししか知らない
![Page 68: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/68.jpg)
他に聞きたい事がありましたら 気軽に話しかけてください!
![Page 69: ノンゲーム開発のいろは with Unity](https://reader030.vdocuments.site/reader030/viewer/2022013113/58eea4c41a28abe50f8b458d/html5/thumbnails/69.jpg)
Thank you!