SHOTech Blog

プログラミングに関する記録です

【デモ】HoloLens + Dynamics365 Guides でインクの交換をやってみた

f:id:syota-y1989:20190610235318p:plain
Dynamics365 Guidesでシナリオを作成し、実際にやってみたのでまとめておきます。

【前回】環境構築

環境構築は先日まとめているのでこちらを参照してください。 基本的には公式のドキュメントを読んでその通りにやっただけです。 sy0690.hateblo.jp

英語より日本語がよいという人はこちらを参考にするのが良いと思います。とても丁寧に書かれているので迷う要素ゼロです。

masashieguchi.hatenablog.com

シナリオ作成

f:id:syota-y1989:20190611000529p:plain
PC側での作業です。StoreからダウンロードしたDynamics365 Guides アプリでシナリオを作成していきます。
今回は保守をイメージしてプリンターのインク交換をシナリオにしてみます。
※家の中にあって、マーカーを張り付けられる大きさで、わりと誰でも作業がイメージしやすいハードウェアを探したらプリンター以外思いつかなかっただけです。

では、早速作っていこうと思います。サインインしたら上記のような画面になるので「Create new Guide」から作成を開始します。

f:id:syota-y1989:20190611000926p:plain
名前を入力して、右上の「Next」で次に進みます。作った後で思い出しましたが、preview版では作成した後は名前の変更ができないようなので注意してください。

f:id:syota-y1989:20190611001359p:plain これは3Dのオブジェクトを配置する際に基準となる位置を決めるものです。

  • Maker:印刷したマーカーを読み取って基準とします。同型の設備がたくさんある場合にお勧めです。
  • MAnual:作業者が基準となる位置を設定します。基準点の微調整が可能だが作業者に位置合わせを任せる必要がある

今回はマーカーを使うパターンにします。

f:id:syota-y1989:20190611002658p:plain
「Save to print」でマーカーを印刷します。

f:id:syota-y1989:20190607030502p:plain
実際に印刷されるマーカーのサイズの設定が結構細かいようなのでプリントアウトするときはプリンターの設定に気を付けてください。
私はEPSON EP-977A3を使っていて、拡大率109%で丁度良いサイズに印刷できました。

f:id:syota-y1989:20190607030640p:plain 今回はこのようにマーカーを印刷してプリンターに貼り付けました。貼り付けてみて思いますが、やっぱりでかい。GAのときはもう少し小さくなるといいですね。

f:id:syota-y1989:20190611003822p:plain あとはどんどん作っていきます。作業の1つ1つの工程を並べていきます。この時、一連の操作(ステップ)は横に並べていき、一連の操作の終わりで下の段に移動して作業を縦積みしていきます。 今回は4つの作業に分割しました。

  1. 開始
  2. 電源を入れる
  3. インクを交換する
  4. 後処理

ちなみに、左上のほうに「Save/Refresh」とあるので、こまめに保存しておきましょう。私は2回くらい突然アプリが落ちました。

f:id:syota-y1989:20190611004611p:plain 先ほどの一覧から各操作のボックスをクリックするとこのような画面になるので、1つ1つ操作の指示を書いていきます。この時、右下の「Import」をクリックするとローカルのファイルをアップロードできます。
アップロードしたサービスはCommon Data Service側で保管されているはずです。(自分で確認したわけではないので間違ってたらすみません)

  • 3Dモデル
  • 画像
  • 動画

がアップロード可能です。
※3DモデルはglTF, GLB, FBXフォーマットのみ受け付けるので、それ以外は変換の必要があります。
※プリセットとしてこれだけの3Dパーツは最初から入っています。 f:id:syota-y1989:20190611005140p:plain

f:id:syota-y1989:20190611005347p:plain
各操作で使用したい画像や3Dモデルは右側のウィンドウからドラッグアンドドロップで持ってくるだけです。画像は「Image or Video」へ、3Dモデルは「3D parts」へ持っていってください。
PC側で入れ忘れてもHoloLens側で配置することは可能なので心配しなくてもよいです。ただし、ローカルファイルのインポートだけはPC側で忘れずやってください。

これをすべての操作に対して行えばPC側での作業は終わりです。保存を忘れずに。 

アンカーの設定

ここからはHoloLens側での設定になります。

www.youtube.com

最初にプリンターに貼ったマーカーの検出をして初期位置を確定させます。複数台の同型機でマーカーを使う場合、マーカーを張る位置を間違えないようにしましょう。3Dモデルがずれます。
プリンターに貼ったマーカーをHololensで読み取ると位置が表示されるので、あとは前後の奥行などを微調整します。

www.youtube.com
アンカーの設置は言葉やキャプチャだとどんな感じで設定していくのか伝わらないと思ったので、こうして動画にしました。
まず、操作が視線カーソル(gaze)で操作可能です。視点を表す白い点が常に正面にあるので、それを使って操作をします。視点カーソルが3Dのオブジェクトにあたると、当たり判定が検出されて3Dモデルを操作したり、次のステップにページ送りをしたりできます。

アンカー設置で気づいたこと

  • 位置やスケールの微調整が難しい(「あとほんの少し左に…」が結構難しい)
  • アンカーの向きの調整がめんどくさい(Hololens2だともっと直感的に操作可能だがHololens1だと何度もエアタップを駆使しないといけない)
  • 視線カーソル(gaze)だけで操作可能なので楽
  • Unityとスクリプトでがりがりやる必要がないので開発期間を大幅に短縮できる
  • 両手の3Dモデルを配置する際、ある右手と同じスケールかつ同じ向きの3Dモデルを左手としてを複製したい(単純な複製は可能)
  • 四角形のzoneは縦横比を変えられるようになってほしい

実際に作業者として実行してみる

youtu.be

作成したシナリオを実際に自分で試してみました。これはその時に撮った動画です。
すこし駆け足気味なところはすみません。

実際に作業して気づいたこと

  • マニュアルや3D作業手順書に最適
  • エアタップしなくていいので作業に集中出来る
  • アンカーのサイズは小さめがいい(デフォルトだと大きすぎて邪魔になる)
  • アンカー設置しすぎると逆に邪魔(わかりやすくしたつもりが視界がごちゃごちゃして逆効果)
  • 視点が変わると3Dがずれてる(調整あるのみ?)
  • 録画して分かるアンカーのズレ(録画と比較する必要はないかもだが、個人差は確認したほうが良い)

実際に自分で環境を立てて動かしてみるといろんな気づきがあるし、使う上での勘所もなんとなく掴めたかなと思います。 次はSpatioal Anchorを試してみようかと思います。