見出し画像

toio 入門 (1) - 事始め

「toio SDK for Unity v1.4.0」をベースに、toioのプログラミング方法をまとめました。

・Unity 2020.3
・toio SDK for Unity v1.4.0
・macOS 11.4

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」をダウンロードして解凍。

・macOS 10.x : bleplugin_10.bundle.zip
・macOS 11.x/12.x : bleplugin_11.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コアキューブの数や、プレイマットのサイズが足りなくなったら、以下で購入できます。

次回



この記事が気に入ったらサポートをしてみませんか?