toio 入門 (1) - 事始め
「toio SDK for Unity v1.4.0」をベースに、toioのプログラミング方法をまとめました。
1. toio
「toio」は、絶対位置をリアルタイムで正確に検出できる小さなキューブ型ロボットです。キューブ裏のセンサーで、プレイマット上の情報を読取ることで位置と向きを認識します。
2. 最小セット
「toio」に様々なパッケージが提供されていますが、プログラミングに必要な最小セットは、toioコアキューブと充電器になります。
toioコアキューブには「簡易プレイマット」が付属します。toioコアキューブのバージョンアップは「toioアップデートアプリ」でできます。
3. 開発環境の準備
開発環境の準備手順は、次のとおりです。
(1) Unityをインストール。
今回は、「Unity 2020.3」を利用しています。
(2) Unityの「3D」のプロジェクトを作成。
(3) メニュー「Window → Package Manager」で「Package Manager」を開き、「+ → Add package from git URL」で以下のURLを追加。
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask
Unityの非同期処理ライブラリ「UniTask」がインストールされます。
(4) 「toio SDK for Unity v1.4.0」のAssetsから「toio-sdk-for-unity.unitypackage」をダウンロードし、メニュー「Assets → Import Package → Custom Package」でインポート。
Projectウィンドウに以下の「toio-sdk」フォルダなどが追加されます。
◎ BLEプラグイン
macOSからtoioを直接操作するには、「BLEプラグイン」が必要になります。
(1) 「toio/ble-plugin-unity/Releases」から「bleplugin_XX.bundle.zip」をダウンロードして解凍。
(2) 「bleplugin_XX.bundle」をProjectウィンドウの「Assets → ble-plugin-unity → Plugins」にドラッグ&ドロップ。
4. シミュレータでのtoioの実行
「toio」をシミュレータで実行する手順は、次のとおりです。
(1) Hierarchyウィンドウの「Main Camera」と「Directional Light」を削除。
(2) Projectウィンドウの「/Assets/toio-sdk/Scripts/Simulator/Resources」の「Cube」と「Stage」を、Hierarchyウィンドウにドラッグ&ドロップ。
(3) Hierarchyウィンドウで「Stage→Mat」を選択し、Inspectorウィンドウの「Mat → Type」で利用するプレイマットを選択。
以下は、「簡易マット」を選択した時の見た目です。
(3) Hierarchyウィンドウで、「+ → Create → Empty Object」で空のオブジェクトを生成し、「RotateCube」という名前を指定。
(4) Hierarchyウィンドウで「RotateCube」を選択し、Inspectorウィンドウで新規スクリプト「RotateCube」を追加し、以下のように編集。
・RotateCube.cs
using UnityEngine;
using toio;
// キューブの回転
public class RotateCube : MonoBehaviour
{
public ConnectType connectType; // 接続種別
CubeManager cm; // キューブマネージャ
// スタート時に呼ばれる
async void Start()
{
// キューブの接続
cm = new CubeManager(connectType);
await cm.MultiConnect(1);
}
// フレーム毎に呼ばれる
void Update()
{
// キューブの回転
foreach (var cube in cm.syncCubes)
{
cube.Move(50, -50, 100);
}
}
}
(5) UnityエディタのPlayボタンで実行。
シミュレータ上でキューブが回転します。
マウスでの操作方法は、次のとおりです。
5. 現実世界でのtoioの実行
「toio」を現実世界で実行する手順は、次のとおりです。
(1) 作成したスクリプト「CubeRotate」の「Connect Type」を「Real」に変更。
(2) toioコアキューブの電源を入れる。
(3) UnityエディタのPlayボタンで実行。
現実世界でキューブが回転します。
【おまけ】 上級者向けセット
toioコアキューブの数や、プレイマットのサイズが足りなくなったら、以下で購入できます。