HololensでAirTapしてみる2017-05-15HololensでAirTapしてみるHoloLensこんにちは、情報システム部の高野です。なんだかんだあって着手できなかったHololensの開発ですがようやく少しずつ触れるようになりました。Unity初心者の私がなんとか動かせるようになるまでの記録を残しておこうかと思います。私同様にHololensで初めてUnity触る方々の一助になれば幸いです。今回は、タイトルの通りAirTapでオブジェクトに触れてみようかと思います。HoloToolkitをパッケージ化しておくmatatabi-ux.hateblo.jpこちらの記事を見てHoloToolkitをパッケージ化しておくことをお勧めします。パッケージ化しなくてもAssetをコピーすれば同様のことはできます。HoloToolKitが更新されておりExportする時に選択を外す項目が上記の記事とは変わっています。Unityでプロジェクトを作成するUnityを起動してプロジェクトを新規に作成します。project」ボタンをクリックします。Package」を選択します。作成しておいたHoloToolkitのPackageファイルを開きます。Importダイアログが出るのでそのまま「Import」ボタンをクリックします。インポートが終わるとProjectウィンドウのAssetsフォルダが下図のようになります。Settings」を選択します。全ての項目にチェックがある状態で「Apply」ボタンを押下します。Unityの再起動が求められるので再起動します。Settings」を選択します。全ての項目にチェックがある状態で「Apply」ボタンを押下します。Settings」を選択します。Perception」にチェックを入れて「Apply」ボタンを押下します。これは常に必要ではありませんが、今回のアプリでは必要になります。Lightを右クリックし「Delete」メニューで削除します。Projectウィンドウで「Assets」→「HoloToolkit」を選択しCameraと入力し検索します。HololensCameraが検索されるのでHierarchyウィンドウのシーンの直下にドラッグ&ドロップします。※今後特に指定しない場合はシーンの直下を指します。Ctrl+SでSceneを保存します。ここではScene名を「Main」とします。3Dオブジェクトを配置する配置するオブジェクトはなんでも良いのですが、ここではSphereを配置することにします。Object」→「Spehre」を選択します。Inspectorウィンドウで位置と大きさを調整します。0.2デフォルトのMaterialだと味気ないので変更します。ProjectウィンドウのAssetsフォルダで右クリックし「Create」→「folder」を選択します。作成されたフォルダの名称をMaterialsに変更します。Materialsフォルダを右クリックし「Create」→「Material」を選択します。作成されたマテリアルの名称をBlueに変更します。Blueマテリアルを選択した状態でInspectorウィンドウを開き「Albedo」の白い部分をクリックします。ColorPickerが表示されるので青っぽく変更します。HierarchyウィンドウでSphereを選択しProjectウィンドウからBlueマテリアルをInspectorウィンドウの空き領域にドラッグ&ドロップします。この状態で一度ビルドしてみます。Settings」を選択します。Projects」にチェックをします。それ以外はデフォルトのままで大丈夫です。Scenes」ボタンをクリックしMainシーンを登録します。「Build」ボタンをクリックするとフォルダ選択ダイアログが表示されます。ここでは新規フォルダAPPを作成し選択します。ビルドが終わるとプロジェクトフォルダが開きますので先ほど作成したAPPフォルダを開きます。ソリューションファイルがあるのでVisualStudioで開きます。VisualStudioでソリューションを開いたらビルド設定の「プラットフォーム」をx86に「実行環境」をリモートコンピュータに変更します。リモート接続ダイアログが表示されるのでHololensのIPアドレスを入力し「選択」ボタンをクリックします。デバッグを実行するとHoloLensへの配置が開始されます。初回配置時はかなり時間がかかります。アプリケーションが起動されると下図のように青い球体が表示されます。オブジェクトをAirTapするUnityに戻ります。ProjectウィンドウのHoloToolkitフォルダを選択しCursorと入力し検索します。今回はDefaultCursorを使用しますのでDefaultCursorプレハブをHierarchyウィンドウにドラッグ&ドロップします。ちなみにプレハブはこんなアイコンです。次にもう一度Projectウィンドウでinputと入力し検索します。InputManagerプレハブが検索されるのでそれをHierarchyウィンドウにドラッグ&ドロップします。これでカーソルが目線の位置に表示されます。AirTapでオブジェクトが反応するようにするにはスクリプトを書く必要があります。ProjectウィンドウのAssetsフォルダ内にScriptsというフォルダを作成します。Script」を選択します。作成されたScriptファイルの名称をSphereManagerに変更します。HierarchyウィンドウでSphereを選択しInspectorウィンドウを開きます。Managerを検索して選択します。Component」ボタンをクリックしRigidbodyを検索して選択します。Gravity」のチェックを外します。このチェックが付いていると起動した瞬間に下に落ちてしまいます。Script」を選択します。VisualStudioが起動します。ターゲットフレームワークの選択ダイアログが出たらそのまま「OK」ボタンをクリックします。.Editorが付いていない方のプロジェクトで「Assets」→「Scripts」→「SphereManager.cs」を開きます。下記の様に修正します。}}AirTap時にOnInputClickedメソッドが呼ばれるのでここでuseGravityをtrueにし球体に重力を与えます。※以前のHoloToolkitだとOnSelectでAirTapを拾えたようですが現在は動作しないようです。ファイルを保存しUnityに戻り上記と同じ手順でビルドします。現在2つVisualStudioが開いていると思いますが、Appフォルダ内のソリューションを開いている方を選択します。ソリューションの再読み込みを促されるので実行します。デバッグを開始して起動するとAirTapができるようになっています。AirTapして球体が下に落ちれば成功です。床を認識するUnityに戻ります。ProjectウィンドウのHoloToolkitフォルダ内でSpatialMappingを検索します。SpatialMappingプレハブをHierarchyウィンドウにドラッグ&ドロップします。再度ビルドしVisualStudioでHololensに配置します。アプリが起動したらワイヤーフレームが表示されてからAirTapします。*3床の上で止まれば成功です。*4最終的にはこのような動きになります。今回はここまでになります。次回は何をやろうかな?弊社ではエンジニアを募集しています。興味がある方は下記からエントリお願いします。空間の認識がされないので注意が必要です。12:00HololensでAirTapしてみるTweet関連記事2019-04-05AngularでAtomicDesign的にコンポーネントを作ってみた1こんにちは、情報システム部の高野です。Coreの汎用ホストを使ってバッチを作ってみるこんにちは、情報システム部の高野です。StudioでC#とTypeScriptのUnitTestを一覧してみる。WebForm系システムの駆逐まであと一歩。情報システム部...2017-06-21HoloLensでオブジェクトを回転してみるこんにちは、情報システム部の高野です。間が空いてし...2017-06-08HoloLensでオブジェクトを変倍してみるこんにちは、情報システム部の高野です。新卒採用スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。