「キーボードの見た目の大きさと位置が同じでも、奥行きによって入力のしやすさが変わるのか」
以前、既存のOculusGoアプリのキーボードの「大きさと位置の平均」を取りました。
それを元に自分のアプリにその大きさと位置のキーボードを再現しようとしたのですが、問題は奥行きをどこにするかでした。
Goのスクショベースで大きさと位置を取ったので、奥行きはわかりません。
ぶっちゃけどこでもいい。大きさを変えればいいだけだから。
Goは3Dofなので動けないから、キーボードに近づくことはできない。
でもその平均で取ったものを実装したのに、利用者から「近い!」って言われました。
遠い方が入力しやすいとも言われました。
そもそも平均とって実装して比べて本当何の意味があるんだ。
大きさ恒常性・奥行き恒常性
「物体までの距離変化に関わらず大きさが一定に見える知覚現象」のことを「大きさ恒常性」というそうです。
私たちは、多くの視覚手がかりを用いて物体までの距離を推定します。視覚的距離手がかりは以下の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
奥行き恒常性という言葉もあるらしい
デザインガイドライン的には??
少ないながらもXRのデザインガイドラインを作っているところや、知見を出しているところがあります。
【Unite Tokyo 2018】XRで心地よい3D体験を生むための、絵画的空間構成手法とUnityへの実装
パーソナルスペース的に45cm~3.6m
UI操作ゾーンは0.8m~1.5m
コンテンツ表示最適ゾーン1.2m~3.6m
角度は横が30、縦が20度以内だと見やすい?
これを元にホロレンズの視野角だと下の大きさが良さげなのかな?
あとで出てくるdmmという単位だと高さが500dmm幅が300dmm
この動画の8分あたりから、距離と大きさの定義について語っていた。
dmmという単位を作った
distance-indipendent millimeter
1m離れた時に1mm、2m離れたら2mmになる。
つまり距離を指定されず「入力欄は幅400dmmで実装してね!」って言われたら、1m離れたところでは400mmになるようにして、2m離れたところにウィンドウを出すなら800mmになるようにする、という単位だと思われる
文字の大きさは同じだけど、アニメーションさせた時に大きいやつは遅く感じる?とか言ってるっぽい。
あとテクスチャとかでは大きくするとボケてしまうよ
ちょっとまじで英語わからないし、自動翻訳出してもよくわからない
角度は人間の目は30~35度ぐらいまで自然に見れる。
首は120度
HitSizeは96dmm
多分一つのキーの大きさが96mmぐらいだと快適で64mmぐらいが最低の大きさってことかな?
つまり大きさとしては30度いないの視野に収まるぐらいにキーボードを置いたらいいかな?
これなんだろう?なんかよくわからない
Unityで親canvasの大きさを0.001にしたら、子のパネルとかはmmの単位を使える。
Unityでやるときはfovで変わってくる。
どうしたらいいんだろう
作った
とりあえず奥行きは違うのに見た目の大きさは同じキーボードを作りました。
0位置からそれぞれ、0.5,1,1.5m離れています。
カメラは(0,0,0)にあります。
1m離れているキーボードがこれです。
これのscaleに1.5m離れているものは×1.5をして、0.5mのものは×0.5をしました。
インスペクタに0.00095×1.5と打ち込んだら勝手に計算してくれます。(初めてこの機能を使った)
これで本当に見た目の大きさが同じになるのか不安でしたが、Gameビューで見たらちゃんと同じ大きさになっていました。
じゃん!
実際にやってみると、なんか変化している気はするのですが、スクショを見ると同じ大きさでびっくりします。
ただし位置を合わすには高さをカメラと同じにしないと、見た目が同じ位置になりません。
キーボード同士は同じ高さでも、カメラと違うとこんな感じに見える。
まあそうなるのか・・・?図解して理解しようとしたけど図が下手すぎる。
う~ん。でも同じ高さだと高すぎるんだよね~斜めにするか?
斜めにしました。
少し斜めにして3パターン pic.twitter.com/KcaVEFF4W5
— トマシープ (@tomasheep) December 29, 2018
斜めにしたら明らかに0.5mのだけ打ちにくかった。
コントローラーをめっちゃ上にしないといけない。
スライダー
スライダーで任意の奥行きにできるようにしました。
こんな感じです。
シーンではちゃんと大きさと奥行きが変化しているのがわかる。
— トマシープ (@tomasheep) December 29, 2018
でもゲームビューでは大きさは変化しない pic.twitter.com/itCT8DHWZe
不思議な感じ!
入力できない
で、肝心の入力のしやすさですが、現在キーが押せない状態となっており、実験ができません。
意味が分かりません。
入力出来ないいいいい。ボタンが押せない・・・
自作アプリ側の問題
スクリプトいじってないから、UIにつけているコンポーネントの干渉とかが原因かな??
このシステム、作ったのが昔すぎてどうやって入力をしてるかもう忘れた。
入力できるようになりました。