きゃべログ

Apple公匏ドキュメントの「AR Human Interface Guidlines」を日本語化した

iOSAR

はじめに

こんにちは。cabbage(@cab_kyabe)です。 本蚘事はARKit Advent Calendar 2017 - Qiitaの13日目の蚘事です。 この内容に近い蚘事は元々公開しおいた時期があったのですが、完成床が䜎かったので、Advent Calendar甚にリファむンしお再投皿したした。

Augmented Reality - Technologies - iOS Human Interface Guidelines を䞀通り読み、日本語ずしお芁玄したした。内容は厳密に1察1察応させおいたせん。平易な衚珟で芁点がわかりやすいように衚珟した぀もりです。原文を読んで解釈が明らかにおかしいずいうのを芋぀けた方がいらっしゃればご指摘ください。異論は認めたす。原文を読むのは結構骚が折れる䜜業だず私は感じたので、少しでも皆さんのお力になれれば幞いです。

抂芁

珟実ず仮想物䜓をシヌムレスに重ねお、没入感があり、魅力的な䜓隓を実珟するために、iOSアプリではAppleのARKitを䜿うこずができる。 カメラはスクリヌン䞊のビュヌに珟実䞖界を衚瀺するのに䜿甚する。3次元の仮想物䜓はそのビュヌに重畳され、物䜓が本圓に存圚するように錯芚させる。もしその䜓隓が正確であれば、ナヌザはiOSデバむスの向きを倉えお仮想物䜓を様々な角床から調べるこずや、ゞェスチャや動きを䜿ったむンタラクションが可胜である。

魅力的な蚭蚈

人々を惹き぀けるに画面党䜓を䜿うこず

珟実䞖界を衚瀺したり仮想物䜓を衚瀺するために出来る限りスクリヌンを倧きく䜿うこず。たた、没入䜓隓を損なうのでスクリヌン䞊をコントロヌルのパヌツや情報で散らかさないこず。

物䜓を配眮するずきは説埗力のある錯芚を生み出すようにするこず

すべおのAR䜓隓に珟実に近い仮想物䜓が必芁なわけではない。しかし配眮される仮想物䜓はあたかも珟実䞖界に存圚するようにしなければならない。ベストプラクティスは本物そっくりのテクスチャが貌り付けられた詳现なDアセットを䜜成するこず、たたARKitが提䟛する珟実䞖界の平面認識を䜿甚しお仮想物䜓の照明の圓たり方に適甚し、珟実䞖界の画面に仮想物䜓の圱を぀けるこず、カメラの䜍眮倉化に仮想物䜓の䜍眮を適応するこずである。

物理的な制玄を考慮するこず

ARがうたく動かない環境でも人々はアプリを䜿おうず詊みるこずを心に留めおおくこず。䟋えば、動き回るこずが出来るほどのスペヌスがなかったり広い平らな郚分がないような堎所でも人々はアプリを開くかもしれない。難題を課せられるシナリオを想定しお、明確に制玄や䟋倖を人々に率盎に䌝えるよう詊みるこず。

ナヌザが心地よくなるように心がけるこず

長期間に枡っおデバむスを特定の距離、あるいは角床に保぀のは骚の折れる䜜業である。そのためナヌザがアプリを䜿う際にどんなふうにデバむスを持぀のかを考慮し、䞍快感を匕き起こさない楜しい䜓隓を目指すこず。䟋えば、仮想物䜓を近くに移動させおくる必芁がないように、最初から仮想物䜓を配眮するこずができる。

ナヌザの動きを促進するなら、動きを埐々に玹介するこず。

䟋えばゲヌムにおいおはARに入り蟌んですぐに仮想䞖界を芋せないようにする。たずは䜓隓に順応するための時間をナヌザに䞎えるこず。そしお、埐々に動きを促進しおいくこず。

ナヌザの安党に配慮するこず

近くに他の人や物䜓があったら、あちこち歩き回る行為は危険ずなり埗る。アプリの操䜜が安党になるような方法をよく考えるこず。たずえば、ゲヌムにおいお倧幅な動きや急な動きを避けるように仕向けるこずが挙げられる。

没入䜓隓を促進するには聎芚ず觊芚フィヌドバックを䜿うこず

音声や衝突感は物理的衚面や他の仮想物䜓に接觊するようになったず確信を埗るための重芁な方法である。没入感のあるゲヌムでは、BGMはナヌザが仮想䞖界に包み蟌たれるのを手助けする。

参考

可胜な限りコンテキストヒントを提䟛するこず

䟋えば、物䜓の次元回転のむンゞゲヌタ矢印などを瀺すこずはテキストベヌスの指瀺を配眮するよりも曎に盎感的な方法である。しかし、ARKitが平面を怜出する前やナヌザがコンテキストヒントに反応しおいない堎合はテキストヒントを衚瀺する方が確実である。

/説明テキストを衚瀺しなければならない堎合、芪しみやすい専門甚語を䜿うこず

ARは先進的な抂念であるため、怖がる人がいるかもしれない。ARを芪しみやすいものにするために、技術的な蚀葉やARKitWorld detection, trackingのような技術者向けの蚀葉を䜿甚しないこず。代わりにほずんどの人たちが理解できる䌚話䜓の蚀葉を䜿うこず。

AR䜓隓を䞍必芁に劚げるこずを避けるこず

ナヌザヌがARを終了したり再開する床に、環境は解析されお平面が怜出される。さらに端末ずカメラの䜍眮は倉わるかもしれない。結果ずしお、以前に配眮された物䜓の配眮堎所が倉わるおそれがある。物䜓はもはや実䞖界の平面䞊に配眮されたたたである保蚌もない。こういった䜓隓の劚害を防ぐ方法の1぀ずしお、ナヌザに物䜓の䜍眮や蚭定をAR䜓隓を抜けずに倉曎出来るようにさせるこずが挙げられる。䟋えば、ナヌザがリビングに眮くための怅子の賌入を怜蚎しおいるずする。AR䞊で怅子を配眮したずしお、ナヌザは他の生地の怅子を色々詊すような機胜が欲しいず思うかもしれない。

ARの䞖界に入りこむ

初期化が実行されおいるこずを瀺し、ナヌザを巻き蟌むこず

呚囲の環境を評䟡する初期化凊理はアプリがAR機胜を開始するずき毎回実行される。この凊理には数秒かかる。ナヌザの混乱を枛らしお凊理を早くするために、初期化の際にする行動を瀺すこず。䟋えば衚面を芋぀けられるように呚囲をあちこち映すように勧める。

ARKitが平面を芋぀けたタむミングや物䜓を眮くタむミングをナヌザがわかるように助けるこず

芖芚的なむンゞゲヌタは平面怜出がアクティブになっおいるこずを䌝えるのにずおも有効な手段である。䟋えば、画面䞭倮に台圢ず十字線を眮くこずで、ARKitが平面を探しおいるだろうずいうこずをナヌザは掚枬できるだろう。ひず床平面が芋぀かれば、珟圚物䜓を眮くこずができるこを瀺すために芋た目を倉えるべきである。あなたが䜜るアプリに銎染むような芖芚的なむンゞゲヌタをデザむンするこず。

ナヌザが物䜓を配眮したずきには適切に反応するこず

平面怜出の粟床は、かなり短い時間でしだいに良くなっおいく。ナヌザが物䜓を配眮するために画面をタップするず、珟圚䜿える平面情報を甚いお物䜓を即座に配眮する。そしお平面怜出が完了するず、埮劙に物䜓の䜍眮を調敎する。もし物䜓が怜出された平面領域からはみ出お配眮されおいたら、ARKitは物䜓を平面䞊にそっず動かす。

怜出された平面の端に敎然ず物䜓を䞊べようずしないこず

ARでは平面の境界線は近䌌的なもので、呚囲環境の解析が曎に進むず倉わるかもしれないためである。

仮想物䜓に察するナヌザむンタラクション

スクリヌン䞊に別のUIを蚭けるよりは盎接操䜜するこずが奜たしい

物䜓に働きかける際、画面䞊に別にボタンなどのコントロヌラを蚭けるよりは、ナヌザがスクリヌン䞊の物䜓にタッチしお働きかけるこずができる方がより没入感があり、盎芳的である。

暙準的で芪しみやすいゞェスチャヌを䜿っお物䜓に働きかけられるようにするこず

䟋えば物䜓を動かす際に本指のドラッグをサポヌトしたり、本指の回転ゞェスチャで物䜓を回転させるようにするなどが挙げられる。関連情報はゞェスチャヌの項目を参照。

䞀般に物䜓ぞの䜜甚はシンプルであるこず

AR䜓隓は珟実䞖界の3次元に関わっおいるが、タッチゞェスチャはそもそも次元である。 仮想物䜓に察するナヌザの䜜甚を簡易化するために次のようなアプロヌチを怜蚎するこず。

  • 移動する方向を物䜓が眮かれおいる次元平面䞊に制限する
  • 回転方向を䞀軞に制限する

物䜓近くぞ䜜甚する劥圓なゞェスチャにも反応するこず

小さかったり、薄かったり、遠くにある物䜓䞊のある点を正確にタッチするのは難しいかもしれない。あなたのアプリが䜜甚できる物䜓に近い䜍眮のゞェスチャを怜知したら、ナヌザはその物䜓に働きかけたいのだず掚定するのがふ぀うは最善である。

ナヌザが配眮したオブゞェクトのスケヌリング機胜が必芁かどうかよく考えるこず

おもちゃやゲヌムキャラクタヌのように物䜓が固有のサむズがなく、ナヌザがそれを倧きくしたり小さくしたりしたいず思う堎合サむズのスケヌリングは䞀般に適切である。しかし珟実䞖界においお固有のサむズを持぀家具のような物䜓を正確なサむズで配眮しようずする堎合には䞍適切である。スケヌリングは物䜓の距離を調敎する方法ずしおは䜿えない。䟋えば物䜓が近くに芋えるように物䜓を倧きくしおも、単に遠くにより倧きい物䜓あるように芋えるだけである。

ゞェスチャの衝突には気を぀けるこず

䟋えば本指のピンチゞェスチャは本指の回転ゞェスチャずずおも䌌おいる。もしこのような぀のゞェスチャを実装するならば、アプリはそれらを正確に解釈できるのかをテストしお確かめるこず。

仮想物䜓の移動は滑らかであるか確認するこず

ナヌザが物䜓をリサむズしたり回転させたり新しい䜍眮ぞ移動するずき、物䜓がゞャンプしおいるように芋えおはいけない。

より魅力的な物䜓ぞの䜜甚方法を探求するこず

ゞェスチャだけがARにおいお仮想物䜓に働きかける唯䞀の方法ではない。アプリでは端末の動きや物䜓ぞの接近などの他の芁玠を䜿うこずができる。䟋えばゲヌムキャラクタにナヌザが近づくず、ゲヌムキャラクタがナヌザの方向を向くようにするなどである。

問題を解決する

AR䜓隓がナヌザの期埅に沿っおいない堎合、ナヌザ自身でリセットできるようにするこず。

状態が改善するたで埅たせたり、物䜓の配眮に苊劎させおはいけない。ナヌザにもう䞀床やり盎しおより良い結果が埗られるか確認できる方法を提䟛するこず。

問題が起こったら改善方法を提瀺するこず

暗かったり、平面が光を反射しなかったり、平面のディテヌルが十分でなかったり、カメラの動きが過剰すぎるなど様々な理由によっおナヌザの環境分析や平面怜出は倱敗するこずがある。アプリが平面のディテヌルが䞍十分だったりカメラの動きが過剰であるず知っおいたら、あるいは平面怜出に時間がかかりすぎおいれば、問題解決の方法を提案するこず。

問題ず改善案の䟋

  • 怜出されるディテヌルが䞍十分→光をもっず照らし、端末を動かしお呚囲を映しおください
  • 過剰な動きを怜出→端末をもっずゆっくり動かしおください
  • 平面怜出に時間がかかりすぎおいる→端末を動かしお呚囲を映しおください。たた、端末が十分ざらざらした平面を映しおいるかを確認しおください。

ARの機胜は䜿える端末だけに提䟛するこず

もしあなたのアプリの䞻な目的がARであれば、ARKitをサポヌトしおいるデバむスのみでしかアプリを利甚できないようにするこず。たた、もしあなたのアプリが補品の写真を含む家具のカタログのようなARを二次的な機胜ずしお䜿甚し、いく぀かの補品をARで芋られるようにしおいる堎合、ARをサポヌトしおいないデバむスでその機胜を䜿甚しようず詊みたずきに゚ラヌを衚瀺しないようにするこず。もしデバむスがARKitをサポヌトしおいない堎合、最初からオプションのAR機胜を提瀺しないこず。開発者の手匕ずしお、ARKitキヌに぀いおはInformation Property List KeyのUIRequiredDeviceCapabilitiesを参照のこず。たた、ARConfigurationのisSupported - ARConfiguration | Apple Developer Documentationも参照のこず。

ARのピクトグラム

アプリはAR䜓隓を開始するボタンなどのコントロヌルにARピクトグラムを衚瀺するこずができる。ARピクトグラムは Resourceからダりンロヌドできる。

ARピクトグラムは本来意図されたずおりに䜿うこず

ARピクトグラムはARKitを甚いたAR䜓隓を開始する堎合のみに限っお䜿われるべきである。サむズや色を倉曎するなど以倖の倉曎をピクトグラムを適甚したり、他の甚途に䜿甚したり、ARKitで䜜られおいないAR䜓隓の開始に䜿甚しおはならない。

最小限の䜙癜を保぀こず

ピクトグラムの呚りに最小限の䜙癜ずしお、ピクトグラムの高さの10%を確保しなければならない。他の芁玠でそのスペヌスを䟵害したり、ピクトグラムを隠しおはならない。

ARバッゞ

補品やその他のアむテムのコレクションを含むアプリにおいお、ARKitを䜿ったARで芋るこずができる特定のアむテムを識別するために、ARバッゞを䜿うこずができる。䟋えば、デパヌトのアプリでは家具を賌入前に自分の家でその芋た目をプレビュヌできるようになるかもしれない。

ARバッゞは本来意図された通りに䜿うこず

ARバッゞはResourceからダりンロヌドできる。これらの画像はARKitを䜿っおARで補品やその他の物を芋るこずができるこずを識別するためにのみ䜿われるべきである。バッゞを倉曎したり、色を倉えたり、他の甚途で䜿甚したり、ARKitを䜿っおいないAR䜓隓ず関連づけお䜿甚したりしおはならない。 ARピクトグラムよりARバッゞを䜿甚するこずが望たしい。䞀般的に、ピクトグラムだけのバッゞは画面のスペヌスが限られおいるずきや、ARバッゞを配眮しきれない堎合に䜿われるべきである。いずれのバッゞもデフォルトサむズでうたく動䜜する。

ARバッゞはARで芋るこずができるものずそうでないものが混ざっおいる堎合にのみ䜿うこず

もしアプリの䞭のオブゞェクトすべおがARで閲芧できるずすれば、そのずきバッゞは冗長で䞍芁なものである。

バッゞの䜍眮は䞍倉で明確に保぀こず

バッゞは物䜓の写真のある隅に衚瀺されるのが最も良い。垞に同じ角に配眮し、バッゞがはっきりみえるのに十分倧きいこずを確認するこず。ただし倧きすぎお倧事な写真の詳现を芆っおしたうようではいけない。

最小限の䜙癜を保぀こず

ピクトグラムの呚りに最小限の䜙癜ずしお、ピクトグラムの高さの10%を確保しなければならない。他の芁玠でそのスペヌスを䟵害したり、ピクトグラムを隠しおはならない。

たずめ

さお、日本語でもかなり読むのに苊劎する蚘事だったず思いたすがいかがでしょうか。 ナヌザにやさしいAR䜓隓にはずおも倧事な項目が倚いです。 初めお䜿うナヌザがストレスフリヌにアプリを利甚できるよう、ポむントを抌さえお眮きたいずころです。


きゃべ (@cab_kyabe)
piyo piyo software engineer