ノンゲーム開発のいろは with unity

69
ノンゲーム開発のいろは #TechBuzz 第36回Unity勉強会

Upload: kohei-aoyama

Post on 13-Apr-2017

5.682 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: ノンゲーム開発のいろは with Unity

ノンゲーム開発のいろは#TechBuzz 第36回Unity勉強会

Page 2: ノンゲーム開発のいろは with Unity

自己紹介

あーさん@疾風の雑魚 (@a3geek)

teamLab Inc. Interactive Team / Interactive Artist

Unity3.xの時代からUnity触ってる

Page 3: ノンゲーム開発のいろは with Unity

仕事で ノンゲーム開発

してる

Page 4: ノンゲーム開発のいろは with Unity

Interactive / Installation Art

Page 5: ノンゲーム開発のいろは with Unity

観客が参加することで完成する芸術作品。 特に、コンピューターを用いた作品で、観客の動作に センサーが反応したり、タッチパネルなどの入力に よって何らかの変化が起きたりするものをいう。

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

ある特定の室内や屋外などに オブジェや装置を置いて、作家の意向に沿って 空間を構成し変化・異化させ、場所や空間全体を

作品として体験させる芸術。

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

メディアアート

Page 8: ノンゲーム開発のいろは with Unity

『展示をする作品』

どうやってUnityで作るか?

Page 9: ノンゲーム開発のいろは with Unity

お絵かき水族館を例に説明

http://www.team-lab.net/all/products/aquarium.html

Page 10: ノンゲーム開発のいろは with Unity

https://www.youtube.com/watch?v=AnAqB7LZUb8

Page 11: ノンゲーム開発のいろは with Unity

センサーによってタッチ出来る スキャナーでスキャンする

複数のプロジェクターで投影 魚の最大数とか設定出来る

Page 12: ノンゲーム開発のいろは with Unity

#1 センサーとUnity

#2 スキャナーとUnity

#3 プロジェクターの投影

#4 設定画面

Page 13: ノンゲーム開発のいろは with Unity

センサーとは OSC

で通信してる

Page 14: ノンゲーム開発のいろは with Unity

OSC とは?

Open Sound Control (OSC) は、 コンピュータ、シンセサイザー、その他のマルチメディアデバイス

同士でコミュニケーションするための 通信プロトコルです。

現代のネットワーク技術の成果を電子楽器の世界に適用することで、 OSCは相互運用性、正確さ、柔軟さ、また、拡張性に優れた

性能を持ちます。

http://yoppa.org/ma2_10/2279.html

Page 15: ノンゲーム開発のいろは with Unity

MIDIの代替

Page 16: ノンゲーム開発のいろは with Unity

OSC プロトコル

/touch/pos 0.0 0.1Message Arguments

UDPで送信

x座標 y座標データのキー

Page 17: ノンゲーム開発のいろは with Unity

“Simple” is “best”!

Page 18: ノンゲーム開発のいろは with Unity

#1 センサーとUnity

Unity内にUDPServerが建っている

PC同士をLANケーブルで繋げてある

センサー側がクライアント

ローカルネットワーク通信

センサーから0.0~1.0で値が送られるViewportPointToRayとPhysics.Raycastを使えば Unity側でのタッチ判定が出来る

Page 19: ノンゲーム開発のいろは with Unity

#1 センサーとUnity

#2 スキャナーとUnity

#3 プロジェクターの投影

#4 設定画面

Page 20: ノンゲーム開発のいろは with Unity

スキャナーとは WebSocket で通信してる

Page 21: ノンゲーム開発のいろは with Unity

WebSocket とは?

WebSocketとは、WebサーバとWebブラウザの間で ソケット通信を行なうための技術仕様。

Webページ上のスクリプトからソケット通信を利用するための インターフェース仕様を定めたもので、接続中はサーバ側から 任意のタイミングで通信を開始することができるようになる。

http://e-words.jp/w/WebSocket.html

Page 22: ノンゲーム開発のいろは with Unity

XMLHttpRequestの凄い版

Page 23: ノンゲーム開発のいろは with Unity

#2 スキャナーとUnity

Unity内にHTTPServerが建っている

PC同士をLANケーブルで繋げてある

一昔前はTCP通信だった(今でも一部作品はそのまま)

センサーとの接続もあるのでハブは必須

スキャナーから必要なデータが送られるスキャンしたテクスチャのバイナリ、魚の種類、 左右どちらでスキャンされたのか等

Page 24: ノンゲーム開発のいろは with Unity

#1 センサーとUnity

#2 スキャナーとUnity

#3 プロジェクターの投影

#4 設定画面

Page 25: ノンゲーム開発のいろは with Unity

複数のプロジェクターを 横に並べて投影

Page 26: ノンゲーム開発のいろは with Unity

一つ問題が発生する

Page 27: ノンゲーム開発のいろは with Unity

プロジェクターの映像が 重なってしまう

Page 28: ノンゲーム開発のいろは with Unity

どういうこと?

Page 29: ノンゲーム開発のいろは with Unity

プロジェクター3台投影の理想

Page 30: ノンゲーム開発のいろは with Unity

理想通りに投影出来る訳もなく…

Page 31: ノンゲーム開発のいろは with Unity

実際にはプロジェクターの光が重なる

Page 32: ノンゲーム開発のいろは with Unity

映像の重なりが出来てしまう

Page 33: ノンゲーム開発のいろは with Unity

どうすれば良いか?

Page 34: ノンゲーム開発のいろは with Unity

映像の中に黒い線を入れる

Page 35: ノンゲーム開発のいろは with Unity

プロジェクターは 黒い光は投影出来ない

Page 36: ノンゲーム開発のいろは with Unity

重なる領域と黒い領域を合わせれば 綺麗に投影する事が出来る!

Page 37: ノンゲーム開発のいろは with Unity

ブレンディングを行えば綺麗に投影出来る

Page 38: ノンゲーム開発のいろは with Unity

#3 プロジェクターの投影

Unity内に映像ブレンディング機能を作る

プロジェクターで出来る事はそちらで

ポストエフェクトで簡単に実装出来る

台形補正で補える部分も存在する

プロジェクターは絶対に固定する動いたらブレンディングをやり直しになる

Page 39: ノンゲーム開発のいろは with Unity

#1 センサーとUnity

#2 スキャナーとUnity

#3 プロジェクターの投影

#4 設定画面

Page 40: ノンゲーム開発のいろは with Unity

アプリの実行中に パラメータを変更できる

Page 41: ノンゲーム開発のいろは with Unity

なぜ必要?

Page 42: ノンゲーム開発のいろは with Unity

作品を作る 基本的な流れとして

Page 43: ノンゲーム開発のいろは with Unity

オフィスで”それっぽい見た目”に制作

実際の現場で調整

リリース!

Page 44: ノンゲーム開発のいろは with Unity

現場での調整が必須色味、サイズ、出現数、etc...

Page 45: ノンゲーム開発のいろは with Unity

実行しながら調整が出来る! とても大事

Page 46: ノンゲーム開発のいろは with Unity

#4 設定画面

各パラメータの値はXMLに保存する

デバッグ画面に近い

起動時に設定を読み込み反映する

ただし設定機能を消した版でリリースする事は無い

リリース後に設定を変更する事もあるお客さんの要望によって最大数やタイムライン等を 変える事は少なく無い

Page 47: ノンゲーム開発のいろは with Unity

## まとめ

Page 48: ノンゲーム開発のいろは with Unity

コンテンツを作る という部分については

ゲーム開発とそんなに変わらない

Page 49: ノンゲーム開発のいろは with Unity

見た目のクオリティ の方が重要で難しく

個人のセンスと裁量に左右される

Page 50: ノンゲーム開発のいろは with Unity

展示をする作品 を作る上では如何に施工を楽にするかを考え 開発者が現場に居なくても設置出来るように

しないといけない

Page 51: ノンゲーム開発のいろは with Unity

機材の選定 も大事になってくる

初めの頃は幾つかの種類を購入して試行を繰り返す

Page 52: ノンゲーム開発のいろは with Unity

個人的にはゲームもノンゲームも大して変わらない

結局は『技術とアイデア』

Page 53: ノンゲーム開発のいろは with Unity

まだ時間残ってますか?

業務連絡

Page 54: ノンゲーム開発のいろは with Unity

#0 おまけ

Page 55: ノンゲーム開発のいろは with Unity

PlayerPrefsに裏切られた話

Page 56: ノンゲーム開発のいろは with Unity

昔の公式ドキュメントには

『Windowsでは.plistにデータを保存する。 異なるアプリ間で同じKeyを使っても大丈夫!』

って書いてあった

Page 57: ノンゲーム開発のいろは with Unity

だけど実際は.plistではなく レジストリに保存されるようになっていた

しかも異なるアプリ間で同じKeyを使うと コンフリクトする

Page 58: ノンゲーム開発のいろは with Unity

そんな事に気付く事もなく 設定データをPlayerPrefsに保存する様に

当初は実装してしまっていた

Page 59: ノンゲーム開発のいろは with Unity

おかげで違うアプリを起動するたびに 設定が上書きされてしまう

不便極まりない機能が出来てしまった事がある

Page 60: ノンゲーム開発のいろは with Unity

施工時に起きやすい問題 ランキング

独断と偏見によって選定

Page 61: ノンゲーム開発のいろは with Unity

第3位 機材壊れたほぼ必ず予備機を用意しているのでそれで対応 最悪の場合は電気屋さんへGo!

Page 62: ノンゲーム開発のいろは with Unity

第2位 ネットワーク問題ポートが空いてない、速度が遅すぎる等 会場のネットワークが問題抱えていると厄介

Page 63: ノンゲーム開発のいろは with Unity

第1位 想定以上に微妙実際に投影してみると想定以上に微妙な事がある 現場やホテルでプログラムを直すことも良くある

Page 64: ノンゲーム開発のいろは with Unity

全然使わないUnityの機能 ランキング

独断と偏見によって選定

Page 65: ノンゲーム開発のいろは with Unity

第3位 uGUI綺麗な設定画面を作る時にたまに使う程度 全く使わない訳ではないが、使う事は少ない

Page 66: ノンゲーム開発のいろは with Unity

第2位 Scene基本的にワンシーンアプリなので使う事は無い 施工先毎にSceneを分けて、ビルドする事はある

Page 67: ノンゲーム開発のいろは with Unity

第1位 スマホ向け機能iPhone / Androidアプリの開発を全然しない どんな機能があるのかも少ししか知らない

Page 68: ノンゲーム開発のいろは with Unity

他に聞きたい事がありましたら 気軽に話しかけてください!

Page 69: ノンゲーム開発のいろは with Unity

Thank you!