本サイトからスピンオフした姉妹サイトです。Motionのアプリケーションを開発する方法を解説する連載(2015年改訂版)。今回はC#の開発環境など、開発の基礎を紹介。Motionのアプリケーションを開発する方法について、サンプルコードを示しながら解説する。Motion開発のファースト・インプレッション」を参照していただきたい。連載は全5回を予定しており、内容としては同テーマC++編における以下の回をC#で記述した場合の解説だ。Desktopでの動作確認を行っている。SDKとC#を使うと、さまざまな環境で開発を行える。3.5および4.0に対応しており、このバージョンが動作する環境であればどこでもよい。X、Linux)での利用も可能だ。SDKがUnityへの対応がなされているためだ。SDKとC#を使った開発環境をまとめると次のとおり。Motionアプリケーションの開発環境を構築しておこう。Windowsでの開発環境の整備については、下記のリンク先を参考にしていただきたい。MotionのアプリケーションをC#で開発する際には、主にWPFもしくはUnityを利用した開発になるだろう。WPFで開発する際には一般的なアプリケーションとは少し異なるので、その点について解説する。Motionのデータを取得する方法は2種類ある。Controllerクラス(Leap名前空間)だけを使用した「ポーリング方式」と、ControllerクラスとListenerクラス(Leap名前空間)を利用した「コールバック方式」だ。Basic)での解説、Unityでの実装もポーリングを利用している。SDKへデータを取得する方式だ。WPFでは例えばCompositionTargetクラスのRenderingイベントに登録することで、WPFのレンダリング周期に合わせてイベントハンドラーが呼ばれる。SDKからデータを取得し、処理を行う。UnityについてはMonoBehaviourクラスの派生クラス内で呼ばれるUpdateメソッドのタイミングでデータの取得を行う。この方式のメリット/デメリットを以下に示す。Motionの更新周期(1秒間に100回以上の周期)よりも遅くなる(フレーム履歴にて処理は可能)Listenerクラスにある接続イベント(OnConnectメソッド)やフォーカスイベント(OnFocusLostメソッド)を自分で実装する必要がある(「Frameについて」の回で解説予定)コールバック方式でのデータ取得コールバック方式は、Listenerクラス継承の派生クラスを、ControllerクラスにAddListenerメソッドで登録し、Listenerクラスのメソッドをオーバーライドしてイベントを受け取る方法だ。オーバーライドしたメソッドには注意点があり、呼び出しスレッドがワーカースレッドになるため、WPFのUI(ユーザーインターフェース)をそのままでは扱えない。UIを扱うためにはスレッドをUIスレッドに戻す必要がある。メリットおよびデメリットについてはポーリング方式の逆になるので、アプリケーションの目的や実装方法によっていずれかの方式を選択していただきたい。ここでは1つの例としてSynchronizationContextクラスを使って同期的にUIスレッドに戻し、イベントを発行するようにしてみる。次のコードは、UIスレッドに同期的に処理を戻すListener派生クラスの実装例である。);}}}UIスレッドに同期的に処理を戻すListener派生クラス(LeapListener.cs)このクラスを利用することで、一般的なイベントドリブンの形で実装を行えるようになる。次のコードは、上記のListener派生クラスのインスタンスをControllerオブジェクトに登録し、さらにFrameReadyイベントのイベントハンドラーを実装している例である。このイベントハンドラー内では、UIスレッドに処理が戻っているため、WPFのUIオブジェクトも触ることができる。SDKをC#で利用する場合には事前に意識しておくことがいくつかある。これらは決まりごとのようなものなので、手段をいくつか持っておくことで問題なく対応することが可能である。Motionのアプリケーションを開発する方法を解説する連載(2015年改訂版)。今回はC#の開発環境など、開発の基礎を紹介。SDKを活用した開発方法を詳しく解説。※C++編の同名タイトルと基本的な内容は同じです。Motionでのタッチ操作はどう開発するのか?Leapアプリのタッチ操作の認識方法と開発方法を説明。※C++編の同名タイトルの記事と基本的な内容は同じです。Motionのカメラ画像を取得するLeapアプリのタッチ操作の認識方法と開発方法を説明。※C++編の同名タイトルの記事と基本的な内容は同じです。Motion公式のサンプルを題材に、さまざまなフレームの扱い方についてコードを交えて解説。SDKのいろいろな使い方」と基本的な内容は同じです。機械学習エンジニアを目指す人~初中級者のための技術情報サイトです。2023最適なビューへの切り替えを推奨します:スマートフォン用表示に。