RSSWordPress.orgBlogをいつもご覧いただきありがとうございます。先日「Myo」のジェスチャーでゲームを作ってみましたので今回はここでジェスチャーの使い方を紹介しようと思います。下記のURLはゲームの映像です。Myoってどんなもの?Myoアームバンドは、腕、手首、指のジェスチャーで、デバイスをワイヤレス操作することができます。下記のURLはMyoの公式サイトです。Myoのジェスチャーの紹介デフォルトで認識するプリセットジェスチャーは下記のとおりです。リラックス(Rest)「グー」と「パー」を合わせて、モミモミすることができそうなので、私はこの二つのジェスチャーを利用して牛乳を搾るゲームを作りました。それでは、ジェスチャーの部分に入りましょう。1.5.1970https://developer.thalmic.com/downloadsSDKを持っていない人は上記のサイトからダウンロードできます。SDKをダウンロードして、Unityにインポートしましたが、エラーが三つ出ました。エラーが発生しているスクリプト(ColorBoxByPose)をチェックしたら、レンダリングの設定の書き方が古すぎますので、Unity2018.1.0f2(恐らくUnity2017以降のバージョン)では、書き方を変える必要がありますね。そこの書き方を変えましょう!上記のように修正してエラーが消えるはずです。次はMyoをコントロールするために、SDKが用意してくれたプリハブをシーンに入れます。サンプルシーンの中で「Joint」というGameObjectがあります。このGameObjectに存在するスクリプト(JointOrientation)がMyoデバイスの方向を管理しています。これをプリハブにして、自分のシーンに適用します。方向を制御するスクリプトできたので、次はジェスチャー検出のコードですね。それでは、ジェスチャー検出用のスクリプトを作りましょう。そのオブジェクトに自分が作った「gManager」を入れて、ジェスチャー検出のコードを全部このスクリプト内に記述することにします。これで、SDKのプラグインの導入が完了しました。}}「撫でる」機能は正確に言うと「パー」かリラックスの状態で手首や腕を振るという動作です。Stroke()関数の中にMyoのジャイロの処理を埋め込めば「撫でる」ができます。//(速く腕を振ると簡単に120を超えます。}}ここまではもう方向変更と簡単な「グー」と「パー」の処理が実現できるようになりました。Myoのもう一つのスクリプト(ThalmicMyo)の内容をみていきましょう。ThalmicMyoThalmicMyoはMyoのSDKの中でコアの部分です。下記に主要な変数名を説明します。ArmSynced:boolタイプの変数で、trueになったらMyoデバイスが検出できます。·arm:左の腕と右の腕どちらかと設定できます。·pose:Myoが検出したジェスチャを保存します。UnKnowは今のジェスチャーです。·accelerometer:加速度の計算用のVector3タイプの変数です。·gyroscope:今のジャイロの軸のスピードを検出できます。·isPaired:trueの時にMyoのデータが読み込めます。·Vibrate:Myoが提供しているバイブレーションタイプです。三つの種類があります。}バイブレーションの書き方は下記の通りです。thalmicMyo.Vibrate(Vibrate.Short);}上記の「撫でる」機能はThalmicMyoの変数を利用して実装してみました。実装して気づいたこと1.実装してみて素早いジェスチャでは認識までに若干のディレイをかんじました。デバイスの特性上仕方がない点かとおもいますが、頻繫にジェスチャーを素早くおこない操作するゲームはわりと不向きかもしれません。Connect(Mac/Windows上のデフォルトマネージャー)をつかってキャリブレーションを行ったほうがやはり操作感が向上します。(PC用にビルドしたアプリのみで利用可能)3.キャリブレーションをする時にゲームをする際と同じ腕のポジションでキャリブレーションするとジェスチャの認識向上におすすめです。4.UnityでAndoroid用のビルドをためすために、有志の方が開発したandroid+UnityのSDKのGitHubにアップされたパッケージを利用してためしました。Connectのような、マネージャーソフトがない為キャリブレーション、個人のプロファイルの設定ができないの理由で、腕の方向やコントロール精度は満足いくものにはなりませんでした。Unityでのアプリ内のムービー表示方法と、常に正しい解像度と比率を維持するように設定する方法。