コンテンツにスキップ

キャンバスゾーン

キャンバスゾーンは、Plane(検出面)の中で「ここをタッチ領域として扱う」という矩形を定義する機能です。このページでは、ゾーンの新規作成、ビューワーでの編集、各パラメータの設定、そして台形に投影された面を正規化する自由四角形の使い方を説明します。

キャンバスゾーンは、Plane の座標上に置く矩形(または四角形)の領域です。ゾーンの内側に入ったプレイヤーが検出対象となり、その位置はゾーン内の 正規化UV座標(0〜1)として OSC で送信されます。受信側は解像度に依存しない 0〜1 の値で位置を扱えるため、プロジェクション面やコンテンツ側のサイズが変わっても扱いやすくなります。

1 つの Plane に複数のゾーンを置けます。ゾーンごとに OSC の送信アドレスを分けられるので、「床の左半分」「壁の中央」など、領域単位で別々のコンテンツへ座標を流すことができます。

ゾーンの作成・編集は、メインタブのビューワー画面で行います。

  1. メインタブを開き、パラメータパネルの ゾーン一覧 セクションを表示します。

  2. ゾーン一覧の 「+」 を押します。新しいゾーンが 1 つ追加されます。

  3. 追加直後のゾーンは、中心 (0, 0) / 幅 1m / 高さ 1.5m の矩形です。ビューワーの中央付近に表示されます。

  4. 続けてビューワー上でドラッグするか、パラメータを直接入力して、目的の位置・サイズに合わせます。

ビューワーには、ゾーンの輪郭と四隅のハンドルが表示されます。マウス操作で直感的に位置とサイズを変えられます。

操作結果
四隅のハンドルをドラッグ角を動かしてゾーンのサイズ・形を変える
ゾーンの内側をドラッグゾーン全体を平行移動する

ビューワーでの編集に加えて、パラメータパネルで数値を直接指定できます。実測値に基づいて正確に配置したいときは、こちらが確実です。

パラメータ意味単位初期値
centerゾーン中心の座標(x, y)m(0, 0)
widthゾーンの幅m1.0
heightゾーンの高さm1.5
rotationゾーンの回転角0
osc_prefixOSC送信アドレスの基点(例 /zone/1
  • center / width / height: 矩形の位置と大きさを決めます。設置面の実寸が分かっている場合は、定規や図面の値をそのまま入れると合わせやすくなります。
  • rotation: ゾーンを傾けて配置したいときに使います。センサ座標に対して面が斜めを向いている場合に調整します。

osc_prefix(送信アドレスの基点)

Section titled “osc_prefix(送信アドレスの基点)”

osc_prefix は、このゾーンから送られる OSC メッセージの アドレスの先頭 になる文字列です。たとえば osc_prefix/floor/a にすると、プレイヤー数は /floor/a/player/count、各プレイヤーの位置は /floor/a/player/{id}/position というアドレスで送信されます。

ゾーンごとに異なる osc_prefix を付けることで、受信側はどのゾーンからのデータかをアドレスで判別できます。複数ゾーンを運用するときは、/floor/a/floor/b のように区別しやすい名前を付けてください。

送信される具体的なアドレスと引数の一覧は、OSCアドレス仕様のページにまとめています。

プロジェクション面に対してセンサを斜めから見るような設置では、ゾーンを正確な矩形にできないことがあります。このような場合は、四隅をそれぞれ独立した位置に動かして 自由な四角形 を作れます。

ビューワーで四隅のハンドルを個別にドラッグすると、4 点(corners)が矩形ではなく台形などの形に変わります。LiTouch はこの 4 点から ホモグラフィ(射影変換)を計算し、ゆがんだ四角形の内部を 0〜1 の 正規化UV座標 に変換します。

これにより、台形にゆがんで見える面でも、ゾーン内の位置を「左上 (0, 0) 〜 右下 (1, 1)」のきれいな矩形座標として OSC 送信できます。受信側のコンテンツは、ゆがみを意識せずに正規化座標をそのまま使えます。

ゾーンの内側に柱や什器など「検出したくない部分」がある場合は、ゾーンの配下にマスクを追加して除外できます。多角形で囲む方法と、白黒画像で指定する方法があります。