移行

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を使用します。

6.0から6.1への移行

  • iOSシステムフレームワークのAVKit.frameworkが必要です。
  • WTArchitectView
  • JS API:
    • document.location("architectsdk://")による非推奨のjs->プラットフォーム通信
    • js->プラットフォーム通信のための新規APIのAR.platform.sendJSONObjectの追加。sendJSONObjectで渡されるオブジェクトは-architectView:receivedJSONObjectで受け取ることができます。

5.3から6.0への移行

  • 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を使用します
    • 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に追加されました。

  • WTArchitectView

    • 新規メソッド: -reloadArchitectWorld。このメソッドを呼び出すと、-loadArchitectWorldFromURL:withRequiredFeatures:メソッドを使用して直近にロードされたArchitect Worldがリロードされます。そのとき、Architect Worldのロードが正常に完了したか失敗したかにかかわらず、どの場合もリロードが実行されます。
  • WTNavigation

    • 新規プロパティ: 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の使用方法については、ドキュメントを参照してください。

  • WTAugmentedRealityMode
    • 非推奨: WTAugmentedRealityMode_IR。代わりにWTAugmentedRealityMode_ImageRecognitionを使用してください。
    • 非推奨: WTAugmentedRealityMode_Both。代わりにWTAugmentedRealityMode_GeoAndImageRecognitionを使用してください。

iOS 8でGPS位置情報のアクセス管理が変更され、ユーザーの位置情報を使用するすべてのアプリケーションでNSLocationWhenInUseUsageDescriptionキーまたはNSLocationAlwaysUsageDescriptionキーのどちらかを入力しなければならなくなりました。Wikitude SDKがユーザーの位置情報を使用するのはアプリケーションがアクティブなときだけなので、NSLocationWhenInUseUsageDescriptionキーをアプリケーションのInfo.plistで設定する必要があります。このキーは、指定したWTAugmentedRealityModeWTAugmentedRealityMode_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への移行