web-dev-qa-db-ja.com

ARKitでカメラの焦点を調整する

拡張現実でデバイスの物理カメラの焦点を調整したい。 (私はSCNCameraオブジェクトについて話していません。)
Apple Devフォーラムの投稿 で、オートフォーカスがARKitのオブジェクト検出に干渉することを読みました。これは私にとって理にかなっています。

今、私はユーザーが見ているオブジェクトに近づくアプリに取り組んでいます。カメラの焦点はデフォルトで、約10cmよりもオブジェクトに近づくと、すべてが非常にぼやけて見えます。

シーンを初期化する前に、またはできればシーン内でカメラのフォーカスを調整できますか?


20.01.2018
どうやら、この問題の解決策はまだありません。プライベートAPIの回避策やその他の(役に立たない)情報については、 このredditの投稿 および この開発者フォーラムの投稿 で詳細を読むことができます。


2018年1月25日
@ AlexanderVaseninは、Appleのドキュメントを指す便利なアップデートを提供しました。これは、iOS 11.3以降、ARKitがフォーカスだけでなく、autofocusingもサポートできることを示しています。
以下の使用例を参照してください。

15
LinusGeffarth

Alexanderによる記述 のように、iOS11.3はARKitにオートフォーカスをもたらします。
対応するドキュメントサイト は、それがどのように宣言されているかを示しています。

var isAutoFocusEnabled: Bool { get set }

次の方法でアクセスできます。

var configuration = ARWorldTrackingConfiguration()
configuration.isAutoFocusEnabled = true // or false

ただし、デフォルトではtrueであるため、オプトアウトすることを選択しない限り、手動で設定する必要はありません。

3
LinusGeffarth

更新:iOS 11.3以降、ARKitはオートフォーカスをサポートし、デフォルトで有効になっています( 詳細 )。マニュアルフォーカスはまだ利用できません。


IOS 11.3より前のバージョンでは、ARKitは手動フォーカス調整も自動フォーカスもサポートしていませんでした。

この件に関するAppleの回答は次のとおりです(2017年10月)。

ARKitは、平面検出に悪影響を与える可能性があるため、オートフォーカスを有効にした状態では実行されません。オートフォーカスをサポートする既存の機能リクエストがあり、追加のリクエストを提出する必要はありません。その他のフォーカスの不一致は、バグレポートとして提出する必要があります。デバイスモデルとOSバージョンを必ず含めてください。 ( ソース

別のスレッド on Appleフォーラムでは、開発者がAVCaptureDevice.setFocusModeLocked(lensPosition:completionHandler:)メソッドを呼び出してオートフォーカスを調整できたと主張していますprivateAVCaptureDevice ARKitによって使用され、追跡に影響を与えていないようです。 メソッド 自体は公開されていますが、ARKitのAVCaptureDeviceはそうではないので、本番環境でこのハックを使用すると、AppStoreが拒否される可能性が高くなります。

3