トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

奥行きの変化でキーの入力のしやすは変わるのか【大きさ恒常性】

 

 

「キーボードの見た目の大きさと位置が同じでも、奥行きによって入力のしやすさが変わるのか」

以前、既存のOculusGoアプリのキーボードの「大きさと位置の平均」を取りました。

bibinbaleo.hatenablog.com

f:id:bibinbaleo:20181126215716p:plain

 それを元に自分のアプリにその大きさと位置のキーボードを再現しようとしたのですが、問題は奥行きをどこにするかでした。

f:id:bibinbaleo:20181226204945p:plain

Goのスクショベースで大きさと位置を取ったので、奥行きはわかりません。

ぶっちゃけどこでもいい。大きさを変えればいいだけだから。

Goは3Dofなので動けないから、キーボードに近づくことはできない。

でもその平均で取ったものを実装したのに、利用者から「近い!」って言われました。

遠い方が入力しやすいとも言われました。

f:id:bibinbaleo:20181127105344p:plain

そもそも平均とって実装して比べて本当何の意味があるんだ。

大きさ恒常性・奥行き恒常性

「物体までの距離変化に関わらず大きさが一定に見える知覚現象」のことを「大きさ恒常性」というそうです。

私たちは、多くの視覚手がかりを用いて物体までの距離を推定します。視覚的距離手がかりは以下の5つのカテゴリーに分けることができます:(i)両眼視差、(ii) 筋肉の収縮状態(輻輳焦点距離調節)、(iii)運動視差、(iv) 大気遠近法、(v) 単眼投影像(線遠近、きめの勾配、陰影)

距離が変わっても物体の大きさが一定に見える謎 「大きさ恒常性」の神経メカニズムを解明 — リソウ

 

GOではiiの筋肉の収縮状態は変わらないけど、他は変えれますよね?

ピントを合わせられるHMD()ではiiも使うのかな?

キーワードがあるのはありがたいですね。

研究を検索しやすい!

Virtual reality 大きさ恒常性」でGoogleScholor検索したら少しだけヒットしました。

http://www.kochi-tech.ac.jp/library/ron/2014/20/1175068.pdf

奥行き恒常性という言葉もあるらしい

 

qiita.com

デザインガイドライン的には??

少ないながらもXRのデザインガイドラインを作っているところや、知見を出しているところがあります。

bibinbaleo.hatenablog.com

【Unite Tokyo 2018】XRで心地よい3D体験を生むための、絵画的空間構成手法とUnityへの実装

パーソナルスペース的に45cm~3.6m

UI操作ゾーンは0.8m~1.5m

コンテンツ表示最適ゾーン1.2m~3.6m

f:id:bibinbaleo:20181226224700p:plain

角度は横が30、縦が20度以内だと見やすい?

f:id:bibinbaleo:20181226232545p:plain

これを元にホロレンズの視野角だと下の大きさが良さげなのかな?

f:id:bibinbaleo:20181226232638p:plain

あとで出てくるdmmという単位だと高さが500dmm幅が300dmm

この動画の8分あたりから、距離と大きさの定義について語っていた。

www.youtube.com

dmmという単位を作った

distance-indipendent millimeter 

f:id:bibinbaleo:20181226225127p:plain

1m離れた時に1mm、2m離れたら2mmになる。

f:id:bibinbaleo:20181226225122p:plain

つまり距離を指定されず「入力欄は幅400dmmで実装してね!」って言われたら、1m離れたところでは400mmになるようにして、2m離れたところにウィンドウを出すなら800mmになるようにする、という単位だと思われる

f:id:bibinbaleo:20180206232656p:plain

 

文字の大きさは同じだけど、アニメーションさせた時に大きいやつは遅く感じる?とか言ってるっぽい。

あとテクスチャとかでは大きくするとボケてしまうよ

ちょっとまじで英語わからないし、自動翻訳出してもよくわからない

 

角度は人間の目は30~35度ぐらいまで自然に見れる。

首は120度

f:id:bibinbaleo:20181226230819p:plain

f:id:bibinbaleo:20180206232906p:plain

HitSizeは96dmm

多分一つのキーの大きさが96mmぐらいだと快適で64mmぐらいが最低の大きさってことかな?

つまり大きさとしては30度いないの視野に収まるぐらいにキーボードを置いたらいいかな?

f:id:bibinbaleo:20181226231105p:plain

これなんだろう?なんかよくわからない

f:id:bibinbaleo:20181226231100p:plain

 

Unityで親canvasの大きさを0.001にしたら、子のパネルとかはmmの単位を使える。

f:id:bibinbaleo:20181226231355p:plain

 

Unityでやるときはfovで変わってくる。

どうしたらいいんだろう

作った

とりあえず奥行きは違うのに見た目の大きさは同じキーボードを作りました。

f:id:bibinbaleo:20181227161705p:plain

0位置からそれぞれ、0.5,1,1.5m離れています。

カメラは(0,0,0)にあります。

1m離れているキーボードがこれです。

f:id:bibinbaleo:20181227161852p:plain

これのscaleに1.5m離れているものは×1.5をして、0.5mのものは×0.5をしました。

インスペクタに0.00095×1.5と打ち込んだら勝手に計算してくれます。(初めてこの機能を使った)

これで本当に見た目の大きさが同じになるのか不安でしたが、Gameビューで見たらちゃんと同じ大きさになっていました。

f:id:bibinbaleo:20181227161659p:plain

じゃん!

f:id:bibinbaleo:20181227161702p:plain

実際にやってみると、なんか変化している気はするのですが、スクショを見ると同じ大きさでびっくりします。

 

ただし位置を合わすには高さをカメラと同じにしないと、見た目が同じ位置になりません。

キーボード同士は同じ高さでも、カメラと違うとこんな感じに見える。

f:id:bibinbaleo:20181227161659p:plain

まあそうなるのか・・・?図解して理解しようとしたけど図が下手すぎる。

f:id:bibinbaleo:20181227162756p:plain

う~ん。でも同じ高さだと高すぎるんだよね~斜めにするか?

f:id:bibinbaleo:20181227162453p:plain

斜めにしました。

 斜めにしたら明らかに0.5mのだけ打ちにくかった。

コントローラーをめっちゃ上にしないといけない。

スライダー

スライダーで任意の奥行きにできるようにしました。

f:id:bibinbaleo:20181227163731p:plain

f:id:bibinbaleo:20181227163734p:plain

こんな感じです。 

 不思議な感じ!

入力できない

で、肝心の入力のしやすさですが、現在キーが押せない状態となっており、実験ができません。

意味が分かりません。

入力出来ないいいいい。ボタンが押せない・・・

自作アプリ側の問題

スクリプトいじってないから、UIにつけているコンポーネントの干渉とかが原因かな??

f:id:bibinbaleo:20181227163559p:plain

このシステム、作ったのが昔すぎてどうやって入力をしてるかもう忘れた。

入力できるようになりました。