拡張現実でデバイスの物理カメラの焦点を調整したい。 (私はSCNCamera
オブジェクトについて話していません。)
Apple Devフォーラムの投稿 で、オートフォーカスがARKitのオブジェクト検出に干渉することを読みました。これは私にとって理にかなっています。
今、私はユーザーが見ているオブジェクトに近づくアプリに取り組んでいます。カメラの焦点はデフォルトで、約10cmよりもオブジェクトに近づくと、すべてが非常にぼやけて見えます。
シーンを初期化する前に、またはできればシーン内でカメラのフォーカスを調整できますか?
20.01.2018
どうやら、この問題の解決策はまだありません。プライベートAPIの回避策やその他の(役に立たない)情報については、 このredditの投稿 および この開発者フォーラムの投稿 で詳細を読むことができます。
2018年1月25日
@ AlexanderVaseninは、Appleのドキュメントを指す便利なアップデートを提供しました。これは、iOS 11.3以降、ARKit
がフォーカスだけでなく、autofocusingもサポートできることを示しています。
以下の使用例を参照してください。
Alexanderによる記述 のように、iOS11.3はARKitにオートフォーカスをもたらします。
対応するドキュメントサイト は、それがどのように宣言されているかを示しています。
var isAutoFocusEnabled: Bool { get set }
次の方法でアクセスできます。
var configuration = ARWorldTrackingConfiguration()
configuration.isAutoFocusEnabled = true // or false
ただし、デフォルトではtrue
であるため、オプトアウトすることを選択しない限り、手動で設定する必要はありません。
更新:iOS 11.3以降、ARKitはオートフォーカスをサポートし、デフォルトで有効になっています( 詳細 )。マニュアルフォーカスはまだ利用できません。
IOS 11.3より前のバージョンでは、ARKitは手動フォーカス調整も自動フォーカスもサポートしていませんでした。
この件に関するAppleの回答は次のとおりです(2017年10月)。
ARKitは、平面検出に悪影響を与える可能性があるため、オートフォーカスを有効にした状態では実行されません。オートフォーカスをサポートする既存の機能リクエストがあり、追加のリクエストを提出する必要はありません。その他のフォーカスの不一致は、バグレポートとして提出する必要があります。デバイスモデルとOSバージョンを必ず含めてください。 ( ソース )
別のスレッド on Appleフォーラムでは、開発者がAVCaptureDevice.setFocusModeLocked(lensPosition:completionHandler:)
メソッドを呼び出してオートフォーカスを調整できたと主張していますprivateAVCaptureDevice
ARKitによって使用され、追跡に影響を与えていないようです。 メソッド 自体は公開されていますが、ARKitのAVCaptureDevice
はそうではないので、本番環境でこのハックを使用すると、AppStoreが拒否される可能性が高くなります。