MRTK Docsの視線追跡のSampleの概要を読む

 

 

eye tracking Sceneの概要

 

docs.microsoft.com

 

学ぶこと

暗黙的な目ベースのアクティブ化

見ている内容に関する情報を音声と手入力とシームレスに組み合わせる方法

目の視線入力方向のスクロール

・スレート上のテキストと画像のパンとズーム

 

使用例

ユーザーは、ターゲットを見て "選択" と言ったり、手のジェスチャを実行したりするだけで、ホログラフィック コンテンツをすばやく簡単に選択してビュー全体を移動

 

f:id:sbubu:20211120175506p:plain

含まれるDemoScene

 

## Demo02

docs.microsoft.com

#### 紹介しているもの

・eye gaze Dataにアクセスする方法

・ターゲットを選択するためのeye gaze event

  • Look & Say "Select" (default voice command)
  • Look & Say "Explode" or "Pop" (custom voice commands)
  • Look & Bluetooth button
  • Look & Pinch (i.e., hold up your hand in front of you and bring your thumb and index finger together)

 

1.視線はメインのポインターとして使用できる

例:ハンドがViewに存在するときは、hand rayをmain pointerとし、ハンドがviewに存在しないときはeye gazeをmain pointerとする

 

2.視線とhand rayを同時に使用する

例:手で作業をしながら、視線で説明書をスクロールし、完了したら「チェックして」と言う

 

* eye trackingの基本的な設定

docs.microsoft.com

 

視線は、ほかのフォーカス入力と同じように利用できる。

つまり、コードを変更せずに、MRTKの入力pointer profileでmain focus typeを選択することができる。

 

* ホログラムに焦点をあてる

ホログラムの焦点が合っていることを検出するには、OnFocusEnterOnFocusExitの2つのインターフェイスメンバーを提供する「IMixedRealityFocusHandler」インターフェイスを使用する

sample code

public class ColorTap : MonoBehaviour, IMixedRealityFocusHandler { void IMixedRealityFocusHandler.OnFocusEnter(FocusEventData eventData)

{

material.color = color_OnHover;

}

void IMixedRealityFocusHandler.OnFocusExit(FocusEventData eventData) {

material.color = color_IdleState;

} ... }

 

docs.microsoft.com

 

つづき

Eye Tracking Target Selection - Mixed Reality Toolkit | Microsoft Docs

 

*焦点のあったホログラムを選択する

IMixedRealityPointerHandlerを使用する。

 

*視線に特化したフォーカス

docs.microsoft.com

 

BaseEyeFocusHandler

 an example is EyeTrackingDemo-03-Navigation

 

*下のやつは今度みる

docs.microsoft.com

 

 

unity猫本勉強中(*'ω'*)

昨日はホロ元さんのこちらの記事を勉強していたのですが、

codeが難しいなあと思い、

https://redhologerbera.hatenablog.com/entry/2020/03/31/100000

 

ワンランク下の勉強をしようと思って

udemyで「3D迷路ゲーム開発入門」というレクチャーをみて、進めていました。

なのですが、レクチャー39でまたまたコードがわからなすぎてつまずき。。。

 

さらに、ワンランク下げて、もっとコードの基礎を学習しないといけないと思い

Unityの教科書(猫本)を読んでいます。

 

この本のp.91 平均値を求めるサンプルのコード解釈でまたまたつまずきました。

 

 

誰のためのデザイン?

〇理解

→内的な記憶のより強力な在り方の1形態

 

説明と解釈にはメンタルモデルが重要な役割を果たしている。

・必要とされる行動の詳細をメンタルモデルに基づいて引き出すことができる

・メンタルモデルさえあれば、自分で経験したことではなくても、何が起こるかということを引き出すことができる。

・行動の詳細を引き出す作業には、時間と心的資源が必要になるが、メンタルモデルを使用することでそれらを滑らかに実行することができる

 

メンタルモデルとは、そのできごとの一連の流れ、原因、と結果。実際に作業をしていて問題にあたったとき、メンタルモデルがあれば新しい場面で何が起きるか推測することができる。

しかし、ユーザーは間違ったモデルを勝手に作ってしまうので、モデルがわかるように提供することが必要である;。

 

〇思い出すこと

思い出させるものには、シグナルとメッセージが必要。

何か思い出さなくてはいけないことがあるというシグナルと、それが何であるかというメッセージ

メモはいつ見たらよいのかについて思い出させてくれない。

アプリ案:毎日の予定や約束を思い出させてくれるもの

 

 

Shader勉強5日目_Tag、Pragma構造体

今日もホロ元さんのコチラの記事を学習していきます。

https://redhologerbera.hatenablog.com/entry/2020/03/31/100000

 

〇Tag

Tagには、subchader内のTagと、GameobjecyにつけるTagがあります。

subchader内のTagでは、どのように描画するか(点を打つか)を決めます。

<subchader内のTag 主要そうなものの種類>

  • Queue(キュー):描画する順序を指定する。
  • RenderType:不透明や半透明の機能を設定できます。

大庭さんのこちらの記事もとても参考になります。

https://www.shibuya24.info/entry/shader_pass_tag

 

GameObjectタグは、ゲーム内のオブジェクトを識別するために使用します。

<subchader内のTag 主要そうなものの種類>

 

〇Pragma構造体

Shaderをどのように出力するかを定義する。

 

さくたろうさんの記事も参考にしました。

https://soramamenatan.hatenablog.com/entry/2019/06/22/211220

 

 

Shader勉強4日目

今日はホロ元さんのブログ「UnityでShaderを勉強する その③ 実際にShaderの中身を見ていく」を学習します。

https://redhologerbera.hatenablog.com/entry/2020/03/31/100000

 

ホロ元さんの記事では、unity公式HPのビルトインのライティングモデルの使用方法を説明しているページを参照しています。

https://docs.unity3d.com/jp/current/Manual/SL-SurfaceShaderExamples.html

ビルトインは、内蔵(の)、組み込み(の)、作り付け(の)、生来の、本来備わっている、固有の、などの意味を持つ英単語のようです。なので、unityに備え付けられている光のモデルのような意味だとおもいます。

 

ここからは気合をいれて、

〇Diffuse SimpleShaderの中身をみていきます。((*'ω'*)

私がさっそくつまずいたのは、公式に記述されているこのプログラムがどこにあるのかということです。addcomponentでscriptを作成したときのコードとは違っています。

f:id:sbubu:20200503152708p:plain

 

 shaderをくっつけた、materialのInspectorの右上⚙マークをクリックすると、edit Shaderをという項目がありました。

f:id:sbubu:20200503153326p:plain

 

 Edit shaderをクリックして、さらにCombile and show codeをクリックすると

f:id:sbubu:20200503153656p:plain

 でてきました!なんだか思ったよりずっと長いですし、たぶん名称もsampleではないので、違うとおもうのですが、とりあえずこれで良しとします。

f:id:sbubu:20200503153834p:plain

私がみつけてきたshaderは激ムズだったので、勉強したいshaderを①から書くことにします。

 

とおもって、全部消して書いたのですがうまく実行されませんでした。方法を変えて、assets→create→shader でshaderを作成し、openから開いたスクリプトで作業すると、反映されました。open と Compile and show code の違いは何だろう?

f:id:sbubu:20200503161614p:plain

 

Shader勉強3日目

本日はホロ元さんの「unityでShaderを勉強する その②」をみていきます。

https://redhologerbera.hatenablog.com/entry/2020/03/30/100000

 

unityのShaderは、「shader Lab 」と「HLSL」という二つの言語の塊で構成されているようです。

また、shader Labの中身には、プロパティとプロパティの処理方法とプロパティの処理が上手くいかなかった場合の結果を記載するようです。

shader = shader Labのことで、shader lab がマテリアルとHLSLを結び付けていると理解しました。

 

 

Fintech協会主催「アフターコロナの世界に向けて」

Fintech協会主催「アフターコロナの世界に向けて」に聴講参加しました。

コロナをきっかけに、世界的に生活スタイルが変容していますが、これからの時代の諸々はどのようになるか、ということについてのパネルディスカッションです。

 

<トピック>

・シェアリングエコノミー時代における信頼→分散化された信頼

旧:厚労省による認定・上場基準クリア

新:使用者の集合による評価レビューシステム

 

セレンディピティの設計

源体験を持っているかどうかがクリティカルマスになるのではないか

AR/VR

 

・デジタル化にシフトしたい人、したくない人の差

明治維新(変革がうまくいったときの日本)は、変革のため教育や言語までをも変えた。教育機関をしてのマスコミが何ができるかも重要。

 

・out comeベース

テレワーク時代は、プロセスではなくアウトカムベースでのバリューをみる時代。

それなのに、ちゃんと在宅しているか監視するための謎のプロセス管理ツールがでてくるのでは意味がない。

 

ブロックチェーンはまだreadyの状態ではない

COVIDのコンタクトレースアプリも、既存は分散型の考えをもとに、アプリは集約型で作成している。

(分散型の考えってなに??って理解できなかったです)

 

マイナンバーカード

マイナンバーカードが普及するかどうか、というよりも、指標?(違う用語だったような)として使用できるかどうかが重要。たとえば、コロナウイルスの抗体をもっているかどうかが、将来発展途上国等に渡航する際に必要となる可能性がある。(証明できなければ、入国できない)そのようになれば、経済打撃が大きいので、あるウイルスの予防接収をうけているかを、マイナンバーカードと紐づける仕組みが必要。