移行
7.1から7.2への移行
- JS API:
AR.InstantTracker
- 新規メソッド:
canStartTracking
- 新規コンストラクタパラメータ:
smartEnabled
- プラットフォームアシスタントトラッキングを実行している場合、一部の機能は利用できません。これらの機能は呼び出されたときにエラーコールバックによってエラーが発生します。
trackingplaneOrientation
- 新規メソッド:
AR.hardware.camera
- 新規プロパティ:
AR.hardware.smart.deviceSupported
- プラットフォームアシスタントトラッキングを実行しているときに利用できないメソッドを保護するために使用する必要があります。
- プラットフォームアシスタントトラッキングを実行している場合、一部の機能は利用できません。これらの機能は呼び出されたときにエラーコールバックによってエラーが発生します。
enabled
features
flashLight
flashlightAvailable
focusDistance
focusMode
manualFocusAvailable
position
zoom
- 新規プロパティ:
7.0から7.1への移行
- 変更は必要ありません。
6.1から7.0への移行
- iOS 9.0以上を搭載したデバイスが必要です。
- Plugins API:
- Plugin.h
- 非推奨:
void update(const std::list<RecognizedTarget>& recognizedTargets_)
の代わりにvoid update(const RecognizedTargetsBucket& recognizedTargetsBucket_)
を使用します。
- 非推奨:
- RecognizedTarget.h
RecognizedTarget
クラスは非推奨なので、ImageTarget
を使用します。
- Plugin.h
6.0から6.1への移行
- iOSシステムフレームワークの
AVKit.framework
が必要です。 WTArchitectView
- 新規メソッド
-registerPlugin:error:
- 非推奨メソッド
-registerPlugin
- 新規メソッド
- JS API:
- document.location("architectsdk://")による非推奨のjs->プラットフォーム通信
- js->プラットフォーム通信のための新規APIの
AR.platform.sendJSONObject
の追加。sendJSONObject
で渡されるオブジェクトは-architectView:receivedJSONObject
で受け取ることができます。
5.3から6.0への移行
- iOS8.3以上を搭載したデバイスが必要です。
-
次の2つの追加のiOSシステムフレームワークが必要です。
・SafariServies.framework(SFSafariViewController)
・Photos.framework(スクリーンショットがカメラロールアルバムにエクスポートされ、権限を要求する必要がある場合)
-
新規クラス
WTSDKBuildInformation
- 新規クラス
WTAuthorizationRequestManager
- 新規クラス
WTArchitectStartupConfiguration
-
新規
ArchitectViewDelegate
メソッド-architectView:didFailToAuthorizeRestrictedAppleiOSSDKAPIs:
-architectView:didSwitchToActiveCaptureDevicePosition:
-presentViewController:forArchitectView:
-shouldArchitectView:presentViewControllerAnimated:
-architectView:didPresentViewController:onViewController:
-shouldArchitectViewPresentSafariViewControllerInReaderModeIfAvailable:
-activityItemsForURL:title:usedBySafariViewController:
-
WTArchitectView
- 新規プロパティ
requiredFeatures
- 新規メソッド
-loadArchitectWorldFromURL:
- 非推奨メソッド
-loadArchitectWorldFromURL:withRequiredFeatures:
- 新規プロパティ
-
JS API:
- JS APIはSDK 5と完全に後方互換性があります
-
ポジショニング:
-
AR.Drawableこれらの変更はすべてのDrawablesに影響します(AR.ImageDrawable、AR.Modelなど):
-
削除:
roll
の代わりにrotate.z
またはrotate.global.z
を使用しますtilt
の代わりにrotate.x
またはrotate.global.x
を使用しますheading
の代わりにrotate.y
またはrotate.global.y
を使用します
-
非推奨:
rotate.tilt
の代わりにrotate.x
またはrotate.global.x
を使用しますrotate.heading
の代わりにrotate.y
またはrotate.global.y
を使用しますrotate.roll
の代わりにrotate.z
またはrotate.global.z
を使用します
-
削除:
-
AR.Drawable2D:
-
削除:
scaling
の代わりにscale.x
またはscale.y
を使用します
-
非推奨:
offsetX
の代わりにtranslate.x
またはtranslate.global.x
を使用しますoffsetY
の代わりにtranslate.y
またはtranslate.global.y
を使用します
-
削除:
-
AR.Drawableこれらの変更はすべてのDrawablesに影響します(AR.ImageDrawable、AR.Modelなど):
-
Trackers:
-
削除:
AR.Tracker
-
AR.Trackable2DObject
:- getDistance
- height
- width
-
非推奨:
AR.ClientTracker
の代わりにAR.ImageTracker
を使用してAR.TargetCollectionResource
を使用しますAR.CloudTracker
の代わりにAR.ImageTracker
を使用してAR.CloudRecognitionService
を使用しますAR.Trackable2DObject
の代わりにAR.ImageTrackable
を使用します-
AR.Trackable2DObject
:onEnterFieldOfVision
の代わりにonImageRecognized
を使用しますonExitFieldOfVision
の代わりにonImageLost
を使用します
-
削除:
-
AR.ActionRange:
-
削除:
- geoLocation
- positionX
- positionY
- width
-
削除:
5.2から5.3への移行
iOS 10からカメラの使用にPrivacy - Camera Usage Descriptionの定義が必要になったので、アプリケーションの.plistにNSCameraUsageDescription
キーが追加されていることを確認してください。Wikitude SDKを使用してスクリーンショットを取得後、iOSフォトライブラリに保存する場合はNSPhotoLibraryUsageDescription
キーが必要です。
Httpsを使用してARchitect Worldをロードする場合、architect.js
では<script src="https://www.wikitude.com/libs/architect.js"></script>
のようにInclude ステートメントに含む必要があります。以前のInclude ステートメント(<script src="architect://architect.js"></script>
)を使用することはできますが、https環境には対応していません。
-
WTArchitectView
-clearCache
。このメソッドはSDKで使用されたすべてのキャッシュデータをクリアします。
5.0から5.2への移行
-
WTArchitectViewDelegate
- 削除:
-architectViewNeedsHeadingCalibration:
。以前は非推奨ではありません。 - 新規メソッド:
-architectViewNeedsDeviceSensorCalibration:
。このメソッドは、デバイスがセンサーキャリブレーションが必要な場合に呼び出されます。 - 新規メソッド:
-architectViewFinishedDeviceSensorsCalibration:
。このメソッドは、デバイスのセンサーがキャリブレーションされた後に呼び出されます。 - 上記の2つのメソッドの組み合わせは、以前まで利用可能だった
-architectViewNeedsHeadingCalibration:の代わりになります。
- 削除:
4.1.1から5.0への移行
- iOS7以上を搭載したデバイスが必要です。
4.1から4.1.1への移行
Wikitude SDK 4.1.1では、新しいプロパティとメソッドがパブリックAPIに追加されました。
-
- 新規メソッド:
-reloadArchitectWorld
。このメソッドを呼び出すと、-loadArchitectWorldFromURL:withRequiredFeatures:
メソッドを使用して直近にロードされたArchitect Worldがリロードされます。そのとき、Architect Worldのロードが正常に完了したか失敗したかにかかわらず、どの場合もリロードが実行されます。
- 新規メソッド:
-
- 新規プロパティ:
isLoading
。このプロパティは、オリジナルのURLが現在ロードされているかどうかを示します。 - 新規プロパティ:
wasInterrupted
。このプロパティは、Architect Worldがロードされている最中にWTArchitectViewの-stopメソッドが呼び出されたかどうかを示します。
- 新規プロパティ:
4.0.2から4.1への移行
Wikitude SDK 4.1には、APIの使用を改善するさまざまな変更が加えられています。次回のメジャーリリースで非推奨のAPIはすべて削除されることに注意してください。
このバージョンでは、クライアント認識用のネットワーク接続を決定するため、iOS SDKフレームワークのSystemConfiguration.framework
が必須です。
-
WTArchitectView
- 新規:
+isDeviceSupportedForRequiredFeatures:error:
このメソッドでは、必要な機能のビットマスクを指定して、現在のデバイスがそれらの機能をサポートしているかどうかを判断できます。戻り値がNO
の場合、不足しているデバイス機能の詳細を記述するNSError
オブジェクトが返されます。 -
非推奨:
+isDeviceSupportedForAugmentedRealityMode:
-
新規:
+sdkVersion
-
非推奨:
+versionNumber
-
新規:
-loadArchitectWorldFromURL:withRequiredFeatures:
これは-loadArchitectWorldFromURL:withAugmentedRealityMode:
の代わりとなるメソッドです。新しいWTFeatures
ベースのAPIを使用し、必要な機能を指定してURLからARchitect Worldをロードします。 -
非推奨:
-loadArchitectWorldFromURL:withAugmentedRealityMode:
-
新規:
-start:completion:
この新しいSDK起動メカニズムを使用すると、SDKの起動時の動作を個別に変更できます。現時点では、起動時に使用するカメラとオートフォーカスモードを定義できます。最初のブロックでは、構成済みのWTStartupConfiguration
オブジェクトを指定します。このオブジェクトを使用して、現在存在する任意のメンバ変数に対してデフォルト値とは異なる値を定義できます。2番目のブロックはこれまでのisRunning
プロパティの代わりとなるもので、SDKが正常に起動したかどうかに関してより多くの情報を提供します。 - 非推奨:
-start
- 新規:
-
新規:
WTFeatures
。WTFeaturesが導入されたことで、Wikitude SDKの使用を今まで以上に使用事例に適合させることが可能となりました。この仕組みは将来的にSDKに新しい機能が追加された場合にも対応できるように考慮されています。WTFeatures
は、ビットマスクを使用して実装されています。機能を組み合わせるには、|=演算子を使用します。 -
非推奨:
WTAugmentedRealityMode
. 新しいWTFeatures
ベースのAPIを使用してください。
WTStartupConfiguration
この新しいクラスは、起動プロシージャを定義するために-start:completion:
から使用されます。現時点では、アクティブなカメラの位置とカメラフォーカスモードの範囲制限を設定できます。これら2つのプロパティの詳細については、Apple iOS SDKドキュメントを参照してください。
WTArchitectViewDebugDelegate
この新しいプロトコルは、SDK内部の警告やエラーに反応するためのフックを提供します。これらのメソッドは開発中に実装すると便利ですが、最終的なApp Storeビルドを作成するときには削除することを検討してください。
Wikitude SDK 4.1では、APIの変更に加えて、画像認識型AR用の新しいファイル形式も導入されました。この新しい.wtcファイルはWikitude SDKの旧バージョンに対応していませんが、バージョン4.1では古いファイル形式も読み取ることができます。新しい.wtcファイルを使用するとターゲット認識の正確さと速度が向上するため、既存の.wtcファイルから移行することを検討してください。
このバージョンのSDKにはMac OS X用のQuick Lookプラグインも付属しており、これを使用して.wtcファイルをイントロスペクションできます。このプラグインは.wtcファイルに含まれるすべてのターゲット画像を表示し、バージョン番号と対応するSDKを示します。Quick Lookプラグインは、SDKダウンロードパッケージに含まれるWikitude 3D Encoderアプリケーションにバンドルされています。
4.0から4.0.2への移行
Wikitude SDK for iOS 4.0.2では、AR体験のロードとエラー報告に関してAPIが一部改善されています。
-
WTArchitectView
-
新規:
-loadArchitectWorldFromURL:withAugmentedRealityMode:
このメソッドは、特定の
WTAugmentedRealityMode
を使用してAR体験をロードする場合に使用します。これまでは、WTArchitectView
の初期化中にのみ指定できました。ビューがストーリーボードによって作成されたときに指定できなかったので、AR体験のロード時に指定できるAPIが新しく追加されました。これにより、同じArchitectViewオブジェクトによってWTAugmentedRealityMode
の異なるAR体験をロードできます。このメソッドは
WTNavigation
型のオブジェクトを返します。WTNavigation
オブジェクトは、ロードされたArchitect World URLを表します。-loadArchitectWorldFromURL:withAugmentedRealityMode:
に渡されたURLは、ロード中にリダイレクトされる場合があります。返されたNavigationオブジェクトを使用して、-architectView:didFinishLoadArchitectWorldNavigation:
デリゲートが呼び出されたときにどの拡張現実体験のロードが完了したのかを確認できます。オリジナルのURLが同じで、最終的に解決されたURLが異なる場合、Navigationオブジェクトに対して-isEqual:
を呼び出すとYES
が返されます。単純なシナリオはショートURLです。-loadArchitectWorldFromURL:withAugmentedRealityMode:
メソッドにショートURLを渡した場合、以前に推奨されていた-architectView:didFinishLoad:
デリゲートメソッドには最終的に解決されたURLが返されます。ここで問題となるのは、初期ロードURLが最終的にロードされたURLと同じでないことです。新しい-architectView:didFinishLoadArchitectWorldNavigation:
メソッドは、-loadArchitectWorldFromURL:withAugmentedRealityMode:
メソッドによって返されたNavigationオブジェクトを提供します。単純に-isEqual:
を呼び出すと、オリジナルのURLが最終的なURLと同じかどうか、およびロード要求が正常に完了したかどうかに関する情報が提供されます。 -
非推奨:
-loadArchitectWorldFromUrl:
代わりに
-loadArchitectWorldFromURL:withAugmentedRealityMode:
を使用してください。WTAugmentedRealityMode
の使用方法については、ドキュメントを参照してください。
-
-
WTArchitectViewDelegate
- 新規:
-architectView:didFinishLoadArchitectWorldNavigation:
- 新規:
-architectView:didFailLoadArchitectWorldNavigation:withError:
- 非推奨:
-architectView:didFinishLoad:
- 非推奨:
-architectView:didFailLoadWithError:
- 新規:
-
WTAugmentedRealityMode
- 非推奨:
WTAugmentedRealityMode_IR
。代わりにWTAugmentedRealityMode_ImageRecognition
を使用してください。 - 非推奨:
WTAugmentedRealityMode_Both
。代わりにWTAugmentedRealityMode_GeoAndImageRecognition
を使用してください。
- 非推奨:
iOS 8でGPS位置情報のアクセス管理が変更され、ユーザーの位置情報を使用するすべてのアプリケーションでNSLocationWhenInUseUsageDescription
キーまたはNSLocationAlwaysUsageDescription
キーのどちらかを入力しなければならなくなりました。Wikitude SDKがユーザーの位置情報を使用するのはアプリケーションがアクティブなときだけなので、NSLocationWhenInUseUsageDescription
キーをアプリケーションのInfo.plistで設定する必要があります。このキーは、指定したWTAugmentedRealityMode
がWTAugmentedRealityMode_GeoAndImageRecognition
またはWTAugmentedRealityMode_Geo
の場合にのみ必要となる点に注意してください。WTAugmentedRealityMode_ImageRecognition
モードでは、GPS関連のAPIは使用されません。ソースコードでは、このキーと値のペアは以下のように記述されます。詳細は、iOSサンプルアプリケーションを参照してください。
<key>NSLocationWhenInUseUsageDescription</key>
<string>Accessing GPS information is needed to display POIs around your current location</string>
今後のリリースでさらに多くのAPIが変更される予定であり、Wikitude SDKバージョン3.xで非推奨になったメソッドは次回のリリースで削除されます。
3.3から4.0への移行
- SDK 4.0にはiOS
Accelerate.framework
が必須です。フレームワークをプロジェクトに追加する方法については、iOSセットアップガイドを参照してください。 - Wikitude SDK 4.0から、SDKを起動する際に有効なライセンスキーが必須になりました。ライセンスキーを空白にすると、SDKがブロックされます。ライセンスページで無償の試用キーを入手できます(無償のアカウントが必要)。
- Wikitude SDK 4.0では、ターゲットコレクション用の新しいファイル形式(wtc)が導入されています。新しいWikitude SDK 4.0のパワーをフル活用するため、このセクションを読んでターゲットを生成し直してください。
3.2から3.3への移行
WTArchitectView
-
WTARMode
がWTAugmentedRealityMode
になりました。これは+isDeviceSupportedForAugmentedRealityMode:
と-initWithFrame:motionManager:augmentedRealityMode
で使用されています。 -
-initializeWithKey:motionManager:
が非推奨になりました。新しく指定された-initWithFrame:motionManager:augmentedRealityMode
を使用してCMMotionManager
インスタンスをSDKに渡し、-setLicenseKey:
を使用してライセンスキーを設定してください。 -
これまでのインスタンスメソッド
-versionNumber
がクラスメソッドの+versionNumber
になりました。インスタンスメソッドはまだ存在しますが、非推奨になりました。
WTArchitectViewDelegate
新しいデリゲートメソッドの-architectView:didFinishLoad:
が追加されました。これはARchitect Worldのロードが完了したときに呼び出されます。
3.1から3.2への移行
SDK 3.2ではデリゲートプロトコルにメソッドが追加され、より一般的なCocoaTouchスタイルに合わせて既存のメソッドが更新されました。詳細については、WTArchitectView.hファイルを参照してください。
現在-urlWasInvoked:
を使用している場合は、-architectView:invokedURL:
を使用するように変更する必要があります。
3.0から3.1への移行
Wikitude SDK 3.1の画像認識エンジンが更新され、ターゲットを正しく認識するための時間間隔が短くなりました。結果として、ターゲットのデジタルフットプリントの形式が変更されました。この形式には後方互換性があります。Wikitude SDK 3.0で(2013年8月27日以前に)作成されたターゲットコレクション(.wtc)をSDK 3.1でも引き続き使用でき、その逆も可能です。
ただし、Wikitude SDK 3.1を使用するときは、Target Managerツールでターゲットコレクションを生成し直してファイルを更新することを推奨します。
HTML拡張オブジェクト
Wikitude SDK 3.1より前のプロジェクトでHTML拡張オブジェクトを使用していて、3.1にアップグレードしようとしている場合は、すでに定義されているviewportWidth
と同様にviewportHeight
を定義する必要があります。さらに、今後HTML拡張オブジェクトを作成するときに静的または動的のどちらかを指定する必要はありません。HTML拡張オブジェクトはすべて動的として作成されます。
2.0から3.0への移行
Wikitude SDKバージョン3.0でWikitude独自の画像認識およびトラッキングのソリューションが導入され、Vuforiaプラグインのサポートがなくなりました。
-
-[WTArchitectView loadArchitectWorldFromUrl:] このURLパラメーターは、NSStringではなくNSURLオブジェクトになりました。これにより、一貫性が向上するとともに、名前にスペースを含むバンドルからローカルのARchitect Worldをロードできます。
-
画像認識機能を使用していて、バージョン2.0から3.0以上に切り替える場合は、Qualcomm/Vuforiaに関連するアセット(スタティックライブラリとヘッダファイル)をプロジェクトから削除してください。既存のターゲットコレクションをVuforiaからWikitudeに変換する手順については、ここを参照してください。
-
WTArchitectViewに
isRunning
という新しいプロパティが追加されました。開発者はこのプロパティを使用して、WTArchitectViewインスタンスの現在の状態を確認できます。 -
+[WTArchitectView isDeviceSupportedForARMode:]
iPhone 3GSはWTARMode_IR
のサポート対象外になりました。
1.2から2.0への移行
Wikitude SDK 2.0 for iOSはメジャーアップグレードであり、いくつかの移行作業が必要です。iOS SDKはスタティックライブラリではなく.frameworkとして提供されるようになりました。この変更により、プロジェクトのセットアップを変更する必要があります。さらに、iOS SDK 2.0では、ARchitect World内で使用するAR機能を開発者が選択できます。その結果、ロケーションベース型ARを実行できないデバイス(iPod touch第4世代および第5世代)でも画像認識型ARを実行できます。
フレームワーク
- libWikitudeSDK.aとWTArchitectView.hヘッダファイルをプロジェクトから削除します。前者については、リンカーフラグとライブラリ検索パスを削除するか、プロジェクト階層からすべての参照を削除します。後者については、ヘッダ検索パスを削除するか、プロジェクト階層から該当する参照を削除します。
- WikitudeSDK.frameworkをプロジェクトに追加します。そのためには、このフレームワークをプロジェクトのFrameworkフォルダーにドラッグするか、[Link Binary With Libraries]ビルドフェーズに追加します。どちらの場合も、先にWikitudeSDK.frameworkをプロジェクトにコピーしてください。
- インポートディレクティブの
#import "WTArchitectView.h"
を#import <WikitudeSDK/WTArchitectView.h>
に置き換えます。 - リンカーフラグの
-lstdc++
を-lc++
に置き換えるか、Xcodeの[Link Binary With Libraries]
ビルドフェーズでlibstdc++
の代わりにlibc++
を追加します。
これで、Wikitude iOS SDK 2.0を使用して再びアプリケーションをコンパイル、リンク、および実行する準備ができました(-ObjC
リンカーフラグと、Wikitude SDKドキュメントにリストされた必要なすべてのiOSパブリックフレームワークを忘れずにチェックしてください)。
SDK 6.0(以上)でのターゲットのアップグレード
Wikitude SDK 6.0のターゲットコレクションは、新しい形式が導入されています。新しい形式は認識段階を大幅に改善します。新しい形式は、Wikitude 5.x(およびそれ以前)と下位互換性がなく、Wikitude SDK 5.x以前のプロジェクトでは使用できません。
ただし、Wikitude SDK 6.0で以前のwtc-4.1形式を使用することはできます。しかしながら、最新の(wtc-5.0)バージョンに更新することを強くお勧めします。
新しいフォーマットを使用するには、Target Managerでターゲットコレクションを再作成し、Download 6.0リンクの下に、.wtcファイルをダウンロードする必要があります。この.wtcファイルをアプリケーションに入れ、前のファイルを置き換えます。
Wikitude SDK 3.x | Wikitude SDK 4.0 | Wikitude SDK 4.1 | Wikitude SDK 5.0 | Wikitude SDK 5.1-5.3 | Wikitude SDK 6.0 | |
---|---|---|---|---|---|---|
wtc 3.x | サポート | サポート | サポート | 未サポート | 未サポート | 未サポート |
wtc 4.0 | 未サポート | サポート | サポート | 未サポート | 未サポート | 未サポート |
wtc 4.1 | 未サポート | 未サポート | サポート | サポート | サポート | サポート |
wtc 5.0 | 未サポート | 未サポート | 未サポート | 未サポート | 未サポート | サポート |
SDK 4.1でのターゲットのアップグレード
Wikitude SDK 4.1で、ターゲットコレクション用の形式が更新されました。新しい形式では認識フェーズが大幅に改善されています。更新された形式にはWikitude SDK 3.xおよび4.0に対する後方互換性はないため、Wikitude SDK 3.xまたはWikitude SDK 4.0のプロジェクトで新しい形式は使用できません。
wtc-3.xおよびwtc-4.0の形式をWikitude SDK 4.1で使用することは可能ですが、最新のバージョン(wtc-4.1)に更新することを強く推奨します。
新しい形式を使用するには、Target Managerでターゲットコレクションを再作成し、[Download 4.1]
リンクから.wtc
ファイルをダウンロードする必要があります。この.wtc
ファイルをアプリケーションに組み込み、以前の.wtcファイルと置き換えます。
SDK 1.xからのターゲットの移行
Qualcomm Vuforia Target Managerからのデータセットを使用している場合は、以下の手順に従ってARchitect Worldを新しいアプローチに変換してください。
- Wikitude Target Managerツールを使用して新しいプロジェクトを作成し、ターゲットをアップロードします(上記の指示を参照)。
- ターゲットコレクションを作成し、以前に使用していたデータセットと同じ場所に保存します。
- ARchitect Worldで
AR.ClientTracker
の初期化コードを修正し、新しいターゲットコレクションのURLを指すようにします。