ファースト HoloLens MRTK リハビリ・その1

久しぶりの投稿である。

国内販売前に、HoloLens に触れる機会があり、初めて体験した感動は今でも忘れていません。
3D モデルが現実空間に存在している感、少々首を動かしても、そのままの位置にあるという制度の高さ。 本当に驚きました。
そして国内販売と同時に会社で購入し、いくつかのサンプルも作ってみました。  その後、社内では実業務に追われてしまい、
実機も別担当の手に渡り、xR 系からは遠ざかってしまっていました。
そんな折、HoloLens 初号機を手にすることができたので、自身のリハビリを兼ねて、記事にしていきたいと思います。
(久しぶりゆえに、文章が書けない。。。)


前置きが長くなりましたが、さっそく始めていきたいと思います。

今回は、以下のインストールガイドに沿って、進めていきます。
hololabinc.github.io


準備作業

  • MRTKをダウンロード (今回は、v2.6.1 を使用)

プロジェクト作成

  • Unity を起動し、プロジェクトを新規作成

 f:id:Omatchan:20210419235804p:plain:w300

  • テンプレートは「3D」を選択する。

 f:id:Omatchan:20210420000115p:plain:w300
 f:id:Omatchan:20210420000237p:plain:w300

  • MRTK パッケージを import する。

 Assets で右クリックし、[Import Package] - [Custom Package...] を選択する。
 f:id:Omatchan:20210420000635p:plain:w300
 準備作業でダウンロードした "Microsoft.MixedReality.Toolkit.Unity.Foundation.2.6.1.unitypackage" をインポートする。
 f:id:Omatchan:20210420000814p:plain:w300
 すべて選択されている状態で、"Import"ボタンを押す。
 f:id:Omatchan:20210420001038p:plain:w300
 Import が完了すると、Configurator 画面が起動する。
 f:id:Omatchan:20210420001950p:plain:w300
  Apply Default Settings?
  デフォルト設定を適用しますか?
  The Mixed Reality Toolkit would like to auto-apply useful settings to this Unity project
  Mixed Reality Toolkitは、このUnityプロジェクトに便利な設定を自動適用したいと考えています。

  Modify Configurations
  構成の変更
  Enabled options will be applied to the project. Disabled items are already properly configured.
  有効なオプションがプロジェクトに適用されます。 無効化されたアイテムはすでに適切に構成されています。
  Project Settings
  プロジェクト設定
  * Force text asset serialization
  * テキストアセットのシリアル化を強制する
  * Enable visible meta files
  * 表示されるメタファイルを有効にする
  Set Single Pass Instanced rendering path (legacy XR AP)
  シングルパスインスタンスレンダリングパスの設定(レガシーXR AP)
  Set default Spatial Awareness layer
  デフォルトのSpatialAwarenessレイヤーを設定する
  * Enable old input system for input simulation (won't disable new input system)
  *入力シミュレーション用に古い入力システムを有効にします(新しい入力システムを無効にしません)
  * Audio spatializer:
  *オーディオスペーシャライザー:

  ※Default のまま、"Apply"ボタンを押す。

  • MRTK の設定を行う。

 f:id:Omatchan:20210420003906p:plain:w300
 f:id:Omatchan:20210420004240p:plain:w300
 特に値は変更しない。
 シーンの内容が変更される。
 f:id:Omatchan:20210420004404p:plain:w300

  • シーンに平面と球を配置する。

 f:id:Omatchan:20210420004515p:plain:w300
 f:id:Omatchan:20210420004816p:plain:w300
 f:id:Omatchan:20210420004604p:plain:w300
 f:id:Omatchan:20210420004833p:plain:w300
 f:id:Omatchan:20210420004922p:plain:w300

  • 球に重力を付加する

 f:id:Omatchan:20210420005053p:plain:w300
 f:id:Omatchan:20210420005121p:plain:w300
 特に値は変更しない。

  • 実行してみる。

 "Play"ボタンを押すと、実行され、球が落下する。
 f:id:Omatchan:20210420005404p:plain:w300
 
 画面下部の表示は、診断プロファイラ表示であり、fps などの情報が表示されます。
 非表示にしたい場合は、
f:id:Omatchan:20210420010909p:plain:w300
f:id:Omatchan:20210420011041p:plain:w300
f:id:Omatchan:20210420011121p:plain:w300
f:id:Omatchan:20210420011146p:plain:w300
もしくは
f:id:Omatchan:20210420011228p:plain:w300
f:id:Omatchan:20210420011336p:plain:w300
f:id:Omatchan:20210420011850p:plain:w300

  • HoloLens で実行してみる。

 f:id:Omatchan:20210420012049p:plain:w300
 "Universal Windows Platform" に変更し、芯を選択する。
 f:id:Omatchan:20210420012212p:plain:w300
 f:id:Omatchan:20210420012430p:plain:w300
  UWP Capabilities
  UWPの機能
  * Enable Microphone Capability
  * マイク機能を有効にする
  * Enable Internet Client Capability
  * インターネットクライアント機能を有効にする
  * Enable Spatial Perception Capability
  * 空間知覚機能を有効にする
  Enable Eye Gaze Input Capability
  視線入力機能を有効にする
  Avoid Unity 'PlayerSettings.graphicsJob' crash
  UnityのPlayerSettings.graphicsJobのクラッシュを回避する

 f:id:Omatchan:20210420013406p:plain:w300
 ソースの出力先フォルダを作成し、指定する。
 f:id:Omatchan:20210420013610p:plain:w300
 f:id:Omatchan:20210420013744p:plain:w300
 出力先の .sln(ソリューションファイル)を Visual Studio 2019 で開く
 f:id:Omatchan:20210420014009p:plain:w300
 プラットフォームとデプロイ先を変更する。
 f:id:Omatchan:20210420014132p:plain:w300
 リモートコンピューターを設定する
 f:id:Omatchan:20210420014230p:plain:w300
 f:id:Omatchan:20210420014338p:plain:w300
 f:id:Omatchan:20210420014515p:plain:w300
 f:id:Omatchan:20210420014555p:plain:w300
 f:id:Omatchan:20210420015920p:plain:w300

 マイクへアクセス許可は " Player Settings..."
で変更できる。
 f:id:Omatchan:20210420015827p:plain:w300
 f:id:Omatchan:20210420015815p:plain:w300
 "Supported Device Famillies" で "Holographic" にチェックを入れないと、Windows 表示となる。
 f:id:Omatchan:20210420020812p:plain:w300

 駆け足ではありましたが、HoloLens で表示できるところまでを駆け抜けました。
リハビリの第一弾としては、ここまでで終了します。

では、また。



 

Alexa Day 2019 に行ってきた!!

 もう、一週間もたってしまいましたが、2019/04/06 に Alexa Day 2019 に参加したので、気づいた点などを備忘録としてメモを残しておきます。 

 

たどり着くまで…

開催場所は、スペースアルファ三宮さんでした。 行ったことはなかったんですが、センタープラザは知っていたので、分かるだろうと思っていったら、迷ってしまいました。 そもそも、アーケードの中を通って、東館と西館の間あたりから入ったのがいけませんでした。 掃除のおばちゃんに教えられても、少し迷いましたが、再度、守衛のおじさんに聞いてたどり着けました。

スペースアルファ三宮さんのホームページには親切な案内があったので、こちらを確認しておいたら良かった。

受講したセッションのタイムスケジュール

時間 セッション
9:30 開会の挨拶
10:00 Alexa Skills Kit 最新アップデート
 吉田 一茂(KAZUSHIGE YOSHIDA)さん
12:00 ランチセッション
 株式会社サーバーワークスさん
 株式会社ISAOさん
 株式会社ウフルさん
13:00 alexa for backlog enhance を 全部見せます
 伊東 知治(TOMOHARU ITO)さん
14:00 Deep Dive Development Alexa Skill by Node.js
 岡本 秀高(HIDETAKA OKAMOTO)さん
15:00 隣の芝生は青かった?!VoiceUI/UXデザイナーがスキル解剖して気づいたいくつかのこと
 元木 理恵(RIE MOTOKI)さん
16:00 Alexa x 機械学習でスキルをよりリッチにする方法
 清野 剛史(TSUYOSHI SEINO)さん
17:00 Alexa Developer Meeting -スキルのその後とVUXの未来-
 馬勝 淳史(ATSUSHI UMAKATSU)さん
 坂本 知子(TOMOKO SAKAMOTO)さん
 清野 剛史(TSUYOSHI SEINO)さん
 小栁津 麗欧(REO KOYAIZU)さん
18:00 閉会

 

メモした事

Alexa Skills Kit 最新アップデート
  • Alexa 搭載デバイスは、1憶台!
  • Alexa for Windows10 も Microsoft Store にあるよ
     → 「Amazon Alexa」って名前であった
  • Skill は 2500+
  • スマホの Alexa なら、Location API を使用することで、位置情報も取れる
  • Automotive Property で車の中か、外化の判別も可能
  • スキル内課金:日本は未対応
  • Blueprints 日本では 8 種類のみ対応 (徐々に増えていくと思われる)
  • Blueprints の カスタムQ&A では呼び出し名がない = スキルを名前で開く必要がない
  • 開発支援も続々強化中
     Alexa-hosted スキル (Cloud Watch、S3 も制限はあるが利用可能)
     発話プロファイラ
     インテントチェーン
     動的エンティティ
  • Alexa 開発者サイト

  • 入門者向けおすすまコンテンツ

  • Alexa は「人 と IT の新しい接点」
ランチセッション(株式会社ISAOさん)
  • Design Sprint は相性がいいかも。
  • Design Sprint とは、新製品、サービスや機能を市場に投入する際にリスクを減らすことを目的に、デザイン志向をベースに開発された

    もっと深く知る必要があるなと、検索してみた

ランチセッション(株式会社ウフルさん)
  • 来客を m5Stack で検知して、Alexa と組み合わせた受付管理システム
alexa for backlog enhance を 全部見せます
  • Backlog for Amzon Alexa(課題管理ツール 「バックログ」を音声で操作するためのスキル

  •  

    自身の進捗や全体の進捗を教えてくれる
  • 「アシスタントが実装すべきは、機能ではなくノウハウ」
    Be a Adviser!
  • Code Star、いいよ

Deep Dive Development Alexa Skill by Node.js
  • もう、すごいボリュームでした。 Speaker Deck で公開されています。
    メッチャ有難い!! ありがとうございます。

隣の芝生は青かった?!VoiceUI/UXデザイナーがスキル解剖して気づいたいくつかのこと
  • ユーザーへのサジェストは大事
    どう話しかけたらいいか、言い方の例や後いくつ登録できるとか
    簡潔にすべきだが意識しすぎると使い方がわからなくなる
  • ワンショット起動や目的に沿った発話は大事
  • 対象者に使ってもらったり、直接聞いて改善していく
  • 途中で、ワークもあって楽しかった
  • スキルを使って、解剖して、再構築することは、すっごく勉強になるし、実践に使える
  • 目指せ! 三高!!
      クオリティが高い ・ リテンション率が高い ・ 独自性が高い
Alexa x 機械学習でスキルをよりリッチにする方法
  • さすがに、せーのさん、笑いどころ満載でした
  • 主な AI クラウドサービス
    Google Google Cloud Machine Learning
    Amazon Amazon AI
    Microsoft Azure Machine Learning
    IBM Watson Data Platform
  • Alexa はボイスの入り口として特化させて、他ソリューションと連携させる
  • ユーザーが求めているモノ = 便利さ
     自分だけのモノ、趣味嗜好に合わせる

最後に

  • 新名称は、「Voice Con Japan」に決定!!
     Alexa に限らず、VUI/VUX 全般を網羅していくのかな?
     期待が高まります。
  • 今回は、楽しい時間をありがとうございました。
  • 知り合いが務めている  TRAINOCATE の「とれのCAT」で締めくくり。f:id:Omatchan:20190414220328j:plain

 

 

 

 

 

Firebase:サンプルから学ぶ (FriendlyChat:web)

# 本ブログの内容は、2019/03/30 時点の内容となります。

 

先日、Firebase のイベントに行く機会があり、事前学習のために Forebase の公式サンプル Firebase を試してみました。

今回は、その中から「FriendlyChat」を選んでみました。

 

15 のセクションに分かれていて、目安時間は 74 分となっています。 すべて英語なので、英語サイトと翻訳結果を見比べながら進めました。

 

エディタは、Visual Studio Code を利用します。 非常に使い勝手がよく、拡張機能も豊富です。 技術評論社Software Design でも 連載があり、2019年 4月号では特集も組まれています。 人気の高さを物語るかのように、出版社の在庫はない状態のようです。

 


解説は丁寧に書かれているので、概ねはハマるところはありませんでした。

唯一ハマったのは、端末への通知を許可するための cURL コマンドの発行部分でした。

 

ハマりポイント: Windows からの cURL 発行

コマンドプロンプトからの実行では、SERVER KEY や DEVICE TOKEN が長いためなのか、実行すると以下のようなエラーとなった。

 

curl: (6) Could not resolve host: notification
curl: (3) [globbing] unmatched brace in column 1
curl: (6) Could not resolve host: title
curl: (6) Could not resolve host: New chat message!,
curl: (6) Could not resolve host: body
curl: (6) Could not resolve host: There is a new message in FriendlyChat,
curl: (6) Could not resolve host: icon
curl: (3) <url> malformed
curl: (6) Could not resolve host: click_action
<!doctype html>
<!--
Copyright 2015 Google Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0

・・・・・

</div>

<!-- Import and configure the Firebase SDK -->
<!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
<!-- If you do not want to serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup -->
<script src="/__/firebase/5.7.3/firebase-app.js"></script>
<script src="/__/firebase/5.7.3/firebase-auth.js"></script>
<script src="/__/firebase/5.7.3/firebase-storage.js"></script>
<script src="/__/firebase/5.7.3/firebase-messaging.js"></script>
<script src="/__/firebase/5.7.3/firebase-firestore.js"></script>
<script src="/__/firebase/init.js"></script>

<script src="scripts/main.js"></script>
</body>
</html>
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (6) Could not resolve host: to
curl: (3) [globbing] unmatched close brace/bracket in column 153
JSON_PARSING_ERROR: Unexpected character (') at position 0.

 

色々調べてみると、Postman(https://www.getpostman.com/*1というツールがあるのを知り、さっそくインストール。


インストールして、以下のように入力を行い・・・

f:id:Omatchan:20190330141825p:plain

f:id:Omatchan:20190330141852p:plain


[Send]ボタンを押すと、正常に処理されました。

f:id:Omatchan:20190330142159p:plain

 

最終的に外部公開により、スマホとのやり取りができるようになりました。

f:id:Omatchan:20190330145209p:plain

 

まだまだ、写経レベルで、意味を把握しているわけではないですが、非常に便利なので、今後もいろいろ試していきます。

 

 

*1:Postman は Chrome のアプリも存在するようです。 別に機会にこちらも試してみたいと思います。