MOVERIO
BT-30C ドキュメント

3. Windowsアプリ開発

3.1. Windowsアプリ開発の概要

Moverio向けのWindowsアプリケーションを開発するために必要となる手順について以下に記載します。

Windows SDKの導入

アプリケーションの作成

Visual Studioドキュメント

3.1.1. Windows SDKの導入

以下の項目ではWindows10を搭載したパソコンにWindows SDKを導入する方法について記載します。

3.1.1.1. Visual Studio 2019の入手

Visual Studio 2019を下記のサイトからダウンロードします。(2019年5月時点の最新バージョンは、Visual Studio 2019)

https://visualstudio.microsoft.com/ja/vs/

3.1.1.2. Visual Studio 2019のインストール

Visual Studio Installerを起動し、指示に従いVisual Studio 2019をインストールします。

3.1.1.3. ワークロードの追加

Visual Studio Installerを起動し、ワークロードの画面で「Universal Windows Platform development」と「.NET desktop development」と「Desktop development with C++」を追加してインストールします。下記のサイトで詳細な手順を確認してください。

https://docs.microsoft.com/ja-jp/visualstudio/install/modify-visual-studio?view=vs-2019

3.1.1.4. 困ったときは

Microsoft社のVisual Studioドキュメントを確認してください。

https://docs.microsoft.com/ja-jp/visualstudio/?view=vs-2019

3.1.2. アプリケーションの作成

本ドキュメントにおけるアプリケーションの作成は、デスクトップアプリの作成について記載します。お客様の開発するアプリケーションに合わせてワークロードを選択してください。

3.1.2.1. デスクトップアプリの作成

下記のサイトで詳細な手順を確認してください。

https://docs.microsoft.com/ja-jp/windows/desktop/index

3.2. ディスプレイ制御

Moverioはシースルー型(透過型)のディスプレイを搭載しています。Windowsデスクトップアプリでのディスプレイ制御は、Windows標準のCOMポートアクセスAPIであるSystem.IO.Ports.SerialPortを使用し、専用のコマンドを送信することで制御することができます。専用のコマンドを使用することで、ディスプレイの明るさや2D/3D表示モードの切り替えなどを制御することができます。ディスプレイの明るさは専用のコマンドからの調整と周辺環境の照度に合わせた自動調整の方法を使用することができます。また、Side-by-Side方式の3Dコンテンツの表示に対応することが可能です。

関連する情報を参照してください。

ディスプレイの明るさの調整

2D/3D表示モードの切り替え

ディスプレイ制御機能の機種対応表

3.2.1. ディスプレイの明るさの調整

Moverioはシースルー型のディスプレイを搭載しており、周辺環境の明るさの影響により表示映像の見やすさが変化します。周辺環境が明るい場合はディスプレイの明るさを強くし、周辺環境が暗い場合はディスプレイの明るさを弱くすることで表示映像を見やすくすることができます。

ディスプレイの明るさを調整するには、Windows標準のCOMポートアクセスAPIであるSystem.IO.Ports.SerialPortを使用し、専用のコマンド"setbright xx" (xxは0~20を指定)を実行してください。ディスプレイの明るさは、0~20の21段階で調整可能です。

また、現在のディスプレイの明るさを取得するには、専用のコマンド”getbright”を実行してください。

3.2.2. 2D/3D表示モードの切り替え

Moverioのディスプレイは、Side-by-Side方式の3Dコンテンツの表示に対応しています。Moverioで表示する映像がSide-by-Side方式の3Dコンテンツの場合でアプリから制御する場合は、Windows標準のCOMポートアクセスAPIであるSystem.IO.Ports.SerialPortを使用し、専用のコマンド”set2d3d 0”(2D表示モード)、または、専用のコマンド”set2d3d 1”(3D表示モード)を実行してください。

Side-by-Side方式とは一つの画面に左右の画像を並べて格納する方式です。

Side-by-Side方式の映像を作成する場合は、映像の左半分と右半分に、それぞれ左目用映像と右目用映像を配置してください。

例えば、1280x720(HDサイズ)のSide-by-Side方式の映像を作成する場合は、下図のように左目用映像に640x720の映像を、右目用映像に640x720の映像を配置することでSide-by-Side方式の映像とすることができます。

ディスプレイの2D/3D表示モードの切り替えには、Windows標準のCOMポートアクセスAPIであるSystem.IO.Ports.SerialPortを使用し、専用のコマンド"set2d3d 0"(2D表示モード)、または、専用のコマンド"set2d3d 1"(3D表示モード)を実行してください。

また、現在のディスプレイの2D/3D表示モードを取得するには、専用のコマンド”get2d3d”を実行してください。ディスプレイの2D/3D表示モードが2D表示モードの場合はコマンドが0を返却し、3D表示モードの場合はコマンドが1を返却します。

3.2.3. シースルーを活かした映像の作り方

Moverioはシースルー型のディスプレイを搭載しており、Moverioの装着者は実空間で見えている景色を見ながら表示される映像を重ね合わせてみることができます。実空間で見えている景色にMoverioで表示したいオブジェクトの映像を重ね合わせて見る場合は、表示したいオブジェクトの背景を黒にすることで、シースルーを活かした映像を作ることができます。

3.2.4. ディスプレイの明るさの範囲

調整できるディスプレイの明るさの範囲は、下表を参照してください。

機種 明るさの範囲
BT-35E/30E 0 ~ 20
BT-30C 0 ~ 20

3.3. センサー制御

Moverioは動き、向き、環境を検知する様々なセンサーをヘッドセットに搭載しています。Windowsデスクトップアプリでのセンサー制御は、標準のセンサー制御APIであるSensor APIを使用します。センサーデータを使用することで、装着者の頭の動きを推測したり、周辺環境の明るさを推測したりできます。

関連する情報を参照してください。

センサーの種類

センサーの軸

Sensor APIについて

センサー制御機能の機種対応表

APIリファレンス

サンプルコード

3.3.1. センサーの種類

Moverioは様々な種類のセンサーを搭載しています。センサーの中には、ハードウェアベースのセンサーとソフトウェアベースのセンサーがあります。ハードウェアベースのセンサーには、加速度、地磁気、角速度、環境照度などがあります。ソフトウェアベースのセンサーは、単体もしくは複数のハードウェアベースのセンサーの出力値を使用した仮想のセンサーです。ソフトウェアベースのセンサーには、回転ベクトルや重力などの推測が可能なものがあります。

センサー 種類 説明 使用例
SENSOR_TYPE_ACCELEROMETER_3D ハードウェア 重力を含むMoverioの加速度を3軸(x、y、z)の加速度[G]で測定します。 モーション検知(傾きなど)
SENSOR_TYPE_COMPASS_3D ハードウェア 周囲の地磁気を3軸(x、y、z)の地磁気[mG]で測定します。 方位検知
SENSOR_TYPE_GYROMETER_3D ハードウェア Moverioの角速度を3軸(x、y、z)の角速度[deg/s]で測定します。 モーション検知(回転など)
GUID_SensorType_GravityVector ソフトウェア 重力を3軸(x、y、z)の加速度[m/s²]で測定します。 モーション検知(傾きなど)
GUID_SensorType_LinearAccelerometer ソフトウェア 重力を除いた3軸(x、y、z)の加速度[m/s²]で測定します。 タップ、歩行の検出などへの応用
SENSOR_TYPE_AGGREGATED_DEVICE_ORIENTATION ソフトウェア Moverioの向きをクォータニオンで測定します。 ヘッドトラッキングなど

下記のサイトで詳細な情報を確認してください。

https://docs.microsoft.com/en-us/windows/desktop/sensorsapi/sensor-categories--types--and-datafields

https://docs.microsoft.com/en-us/windows-hardware/drivers/sensors/sensor-types

3.3.2. センサーの軸

Moverioのセンサーは、加速度センサーとそれ以外のセンサーで座標系が異なります。Moverioを装着した場合、加速度センサーのX軸は左方向を指し、Y軸は下方向を指し、Z軸は装着者の視線方向を指します。加速度センサー以外のX軸は右方向を指し、Y軸は上方向を指し、Z軸は装着者の方向を指します。

3.4. オーディオ制御

Moverioは音源の聴取や音声通話などの用途で使うためにCTIA準拠のイヤホン・マイクを接続できます。Windowsデスクトップアプリでのオーディオ制御は、Windows標準のオーディオ制御APIであるCore Audio APIsを使用します。このAPIでは、音源のイヤホン出力や音声のマイク入力、イヤホン・マイクの各種パラメータ設定などができます。

関連する情報を参照してください。

Core Audio APIsについて

音源のイヤホン出力

音声のマイク入力

各種パラメータ設定

ミュート設定

オーディオ制御機能の機種対応表

APIリファレンス

3.4.1. 音源のイヤホン出力

Moverioは、Core Audio APIsを利用して接続されたイヤホンから音源を聴取することができます。下記のサイトで詳細な情報を確認してください。

https://docs.microsoft.com/en-us/windows/desktop/coreaudio/rendersharedeventdriven

3.4.2. 音声のマイク入力

Moverioは、Core Audio APIsを利用して接続されたマイクから音声を入力することができます。下記のサイトで詳細な情報を確認してください。

https://docs.microsoft.com/en-us/windows/desktop/coreaudio/capturesharedeventdriven

3.4.3. 各種パラメータ設定

Moverioは、Core Audio APIsを利用して接続されたイヤホン・マイクの各種パラメータの設定が可能です。下記のサイトで詳細な情報を確認してください。

https://docs.microsoft.com/en-us/windows/desktop/CoreAudio/programming-guide

3.4.4. ミュート設定

Moverioは、Core Audio APIsを利用してイヤホン出力やマイク入力を一時的に停止(ミュート設定)することが可能です。下記のサイトで詳細な情報を確認してください。

https://docs.microsoft.com/en-us/windows/desktop/api/audiopolicy/nf-audiopolicy-iaudiosessionevents-onsimplevolumechanged

Go to Top