Slide 1

Slide 1 text

無線ジャイロコントローラ を自前でUnityに実装 中野洋輔 @naninuneno_y 2019.6.25 Roppongi.unity #3 in メルカリ@六本木ヒルズ

Slide 2

Slide 2 text

自己紹介 • Moffのエンジニア • Unity2年くらい • Qiitaに記事書いてます https://twitter.com/naninuneno_y

Slide 3

Slide 3 text

弊社紹介

Slide 4

Slide 4 text

M5Stack • ESP32を備えた開発モジュール • Bluetooth/Wi-fi • カラーLCDとボタン3つ搭載 • 5.4cm x 5.4cm x 1.7cm • Grayモデルには 9軸センサ搭載 • 加速度/角速度/地磁気 • ¥4,860 • 専用リスバンド拡張あり • ¥1,782 • https://www.switch-science.com/catalog/3648/ • https://www.switch-science.com/catalog/3730/

Slide 5

Slide 5 text

やったこと 1. .9軸センサ読み取りとBluetoothでデータを送る m5Stackのファームウェア作成 2. 1.のBluetoothのデータをwindows10で受け取る クラスライブラリ(.dll)を作成 3. 2.のクラスライブラリを含んだUnityプラグインを 作成

Slide 6

Slide 6 text

成果 • https://github.com/naninunenoy/GrayBlue

Slide 7

Slide 7 text

さらに 4. Unity Editorでも実行できるよう、Bluetoothで受け 取ったデータをJsonに変換してWebScoketでやりと りできるProxy作成

Slide 8

Slide 8 text

成果 • https://github.com/naninunenoy/GrayBlue_WinProxy

Slide 9

Slide 9 text

IMU Button I/O Bluetooth 4.0 Bluetooth 4.0 .dll GATT: Byte[] クラスライブラリ ファームウェア WSA(.Net) Editor UWPアプリ .exe Unity Unity Editor Proxy WebSocket センサの値 センサの値 センサの値

Slide 10

Slide 10 text

UWP Application Unity Game(WSA) Unity Editor(mono) M5Stack Gray Windows 10 PC Peripheral Central Firmware MPU-9250 UWP Class Library(.dll) Win RT API PlatformIO C/C++ Visual Studio C# Unity C# naninunenoy/ GrayBlue naninunenoy/ GrayBlue_UWP naninunenoy/ GrayBlue_Unity Visual Studio C# naninunenoy/ GrayBlue_WinProxy WebSocket

Slide 11

Slide 11 text

作ってみた感想 • Bluetoothのプログラムは受信+送信を両方書く必要があり、 敷居が高い • かなり頑張った • Githubにあるので、参考にしてください • 全プラットフォーム対応させるにはそれぞれのための Bluetoothドライバプログラムを自作させる必要がある(辛い) • windows/macOS/iOS/Android/Web Bluetooth • 多接続ができない(用途が限られる) • Surface Book(2015)でBTマウスをつないだ状態だと動作しない • LANでつないでWebSocketとかRPCで処理った方がよくない?

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

以上です