EasyAR Sense Unity Plugin 移行ガイド
この文書では、旧バージョンの EasyAR Sense Unity Plugin から新バージョンへの移行方法を紹介します。
互換性について
バージョン 4000 から、EasyAR Sense Unity Plugin は Unity が要求する パッケージ バージョン管理(Semantic Versioning を使用) に従い、バージョン番号に基づいて互換性を判断できます。
4.7 は段階的な更新バージョンで、任意の 2 つの 4.7 バージョンは互換性がありません。
4.7 より前のバージョンでは、3 番目のバージョン番号のみが後方互換性を示し、前の 2 つのバージョン番号が変更されると互換性がなくなります。たとえば、4.6.2 は 4.6.1 と互換性がありますが、4.6.0 は 4.5.0 と互換性がありません。
警告
tgz ファイルを変更するか、解凍後にプラグイン全体を完全に更新しないと、互換性がなくなります。
汎用移行ガイド
新しいバージョンに移行するには、まず Package Manager window を使用して古いバージョンのプラグインパッケージを削除し、新しいパッケージを追加する必要があります。
以下の手順で操作することをおすすめします:
- 使用中の Unity を閉じます。
- Unity がパッケージ化する際に生成されるプラットフォームのコンパイルディレクトリを削除します。
- Unity プロジェクトを再度開き、古いバージョンの EasyAR Sense Unity Plugin をプロジェクトから削除します。
- 新しいバージョンの EasyAR Sense Unity Plugin をインポートします。

注記
プラグインが提供するサンプルファイルは、バージョン間での互換性が保証されていません。プラグインをアップグレードした後、プロジェクトにインポートされたサンプルが正常に動作しない場合があります。古いバージョンのサンプルを削除してから操作することをおすすめします。
EasyAR にはネイティブライブラリファイルが含まれています。削除または置き換える前にライブラリ関数を実行した場合(パッケージ化時にも呼び出されます)、これらのライブラリファイルはシステムによってロックされ、削除または置き換えることができません。
重要
古いバージョンを削除する前に、エディターでいずれのシーンも実行していないこと、またはいずれのプラットフォームのアプリもパッケージ化していないことを確認する必要があります。通常、パッケージを削除または置き換える前に Unity を閉じ、再度開いた直後に置き換えることをおすすめします。
新しいバージョンのプラグインを使用して再パッケージ化する前に、Unity がパッケージ化する際に生成されるプラットフォームのコンパイルディレクトリを削除する必要があります。これには、Android をパッケージ化する際に生成される Gradle プロジェクトディレクトリ、および iOS をパッケージ化する際に生成される Xcode ディレクトリが含まれます。
ヒント
通常、これらのディレクトリは Unity プロジェクトの Library フォルダ内にある場合があります(例: Library/Bee/Android/Prj/IL2CPP/Gradle)が、Unity のバージョンによって異なる可能性があります。
パッケージ化を行ったが、対応するプラットフォームのディレクトリが見つからない場合は、Library フォルダ全体を削除することをおすすめします。
移行後に SchemaHashNotMatched 例外が発生した場合、通常は 2 つの可能性があります。
- 前述の操作が正しく行われず、アップグレードが失敗または不完全になったか、Unity が生成したコンパイルディレクトリが正しく更新されていない場合があります(注意:手動で削除しないと、エラーが発生する可能性が高いです)。推奨手順に従って操作するか、
Libraryキャッシュのないプロジェクトを使用して再コンパイルすることをおすすめします。 - EasyAR の tgz ファイルを手動で変更したか、解凍後にプラグイン全体が完全に更新されていない場合があります。この場合、EasyAR の可用性は保証されません。正しいパッケージを再ダウンロードしてインポートする必要があります。
重要
EasyAR Sense のライブラリファイルおよびライブラリファイルをパッケージ化した後の位置が変更される可能性があるため、Unity が生成した Gradle または Xcode プロジェクトを保持している場合は、EasyAR.aar、libEasyAR.so、easyar.framework など、EasyAR に関連するすべてのファイルを事前に削除する必要があります。
バージョン4003への移行
ヒント
Megaを使用する場合のみ互換性のない変更があり、その他の機能の使用には影響しません。
バージョン4002から4003に移行する際には、上記の一般的な移行ガイドに加えて、以下の内容にも注意する必要があります。
Mega開発フローの変更
4003バージョンでは、Megaの開発フローに大きな変更がありました。以前にEasyAR Sense Unity Pluginの他の機能を使用したことがあれば、このフローには比較的慣れているでしょう。
主な変更点は以下の通りです。
com.easyar.megaパッケージ機能の変更- Megaを使用する場合、このパッケージをインポートしなくてもよくなりました。ただし、エディターでblockモデルをロードしてコンテンツの配置を支援する場合は、依然としてインポートが必要です。
- Mega Block/Landmark supportの設定オプションが追加されました:パッケージ化する前に有効にする必要があります 。
- エディター機能の変更
- block meshやその他のデータのロードにはMega Studioツールが不要になりました。シーンに標識ツールを追加しても、Unity開発には使用できません。
- MegaBlockController コンポーネントパネルで直接blockのエディター機能が提供され、管理がより直接的になりました。
- session検証ツール では、より実用的なMega制御オプションが提供され、以前のMega Studioの機能とMegaTrackerFrameFilterのエディターテスト領域の機能を代替します。
- targetの動作変更
- EasyAR.Mega.Scene.BlockControllerは MegaBlockController に置き換えられました。MegaBlockController は TargetController のサブクラスで、標準の target動作モード とtargetに適用される active制御戦略 に従います。
- EasyAR.Mega.Scene.BlockRootControllerは削除され、blockには根ノードが存在しなくなり、blockはそれぞれ独立します。
- MegaBlockController は ARSessionFactory.CreateController で作成できます。
4002から4003に移行する際には、主にシーン内のblockオブジェクトを再構築し、以前Mega Studioで生成されたノードグループを MegaBlockController コンポーネントに置き換える必要があります。
- シーン内で以前Mega Studioで生成されたノードグループを削除します。これには
MegaBlocksオブジェクトとその下のすべてのblockオブジェクトが含まれます。- 標識ノードが存在する場合は、それも削除する必要があります。
- blockオブジェクトの下にコンテンツオブジェクトがある場合は、まずコンテンツオブジェクトを他のノードに移動することをおすすめします。ただし、local transformを変更しないでください。
- シーン内にMegaトラッキングターゲットを追加します。
- 元のシーンに複数のblockオブジェクトが存在する場合は、シーン内に複数のMegaトラッキングターゲットを作成する必要があります。
- 以前のblockオブジェクトの下にあったコンテンツオブジェクトを新しく作成したMegaトラッキングターゲットの下に移動します。ただし、local transformを変更しないでください。
- MegaBlockController.Source のidを設定することに注意してください。このidは元のblockオブジェクトのidと一致させる必要があり、実行時に正しくロードできるようにします。
- MegaBlockController.Tracker を設定して、正しい MegaTrackerFrameFilter を使用することに注意してください。
- 元のシーンに標識ノードが存在する場合は、3Dオブジェクトに似たノードを自分で作成して標識ノードを代替する必要があります。
- 元のプロジェクトにスクリプトでblockを作成するロジックが存在する場合は、Megaトラッキングターゲットを追加する 方法を使用して置き換える必要があります。
AR Session (EasyAR)の子ノードMega Tracker(MegaTrackerFrameFilter) 上の無効なスクリプトを削除します。
ほとんどの使用ケースでは、blockノードの置き換えが完了すれば、シーン内の他のコンテンツは変更せずに正常に動作します。
インターフェースの変更
| 機能モジュール | v4002 API | v4003 API | 使用説明 |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Mega トラッキングターゲットの追加 tracker ノードで構成する block ルートノードの代わりに、block ノードでローダーを構成します。 |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Mega トラッキングプロセスの制御 |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Mega トラッキングターゲットの追加 tracker ノードで構成する block ルートノードの代わりに、block ノードでローダーを構成します。 |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Mega トラッキングプロセスの制御 |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Mega トラッキングプロセスの制御 |
| Mega Support | EasyAR.Mega.Scene.BlockHolder | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Mega トラッキングターゲットの追加 tracker ノードで構成する block ルートノードの代わりに、block ノードでローダーを構成します。 |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.BlockActiveController | ActiveController | ターゲットに適用するアクティブ制御戦略 |
| Mega Support | EasyAR.Mega.Scene.BlockController | MegaBlockController | Mega トラッキングターゲットの追加 |
| Mega Support | EasyAR.Mega.Scene.BlockRootController | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Mega Support | EasyAR.Mega.Scene.Location | Location | |
| Mega Support | EasyAR.Mega.Scene.LocationConverter | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.AnnotationNode | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.AnnotationGroup | - | 機能は削除されました |
| Mega Support | EasyAR.Mega.Scene.NavPointGraph | - | 機能は削除されました |
バージョン4002への移行
バージョン4001から4002へ移行する際には、上記の一般的な移行ガイドに加えて、以下の内容にも注意する必要があります。
インターフェース変更
| 機能モジュール | v4001 API | v4002 API | 使用説明 |
|---|---|---|---|
| 補助機能 | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
バージョン4001への移行
ヒント
メガを使用する場合のみ互換性のない変更があり、その他の機能の使用には影響ありません。
バージョン4000から4001に移行する際には、上記の一般的な移行ガイドに加えて、以下の内容にも注意する必要があります。
インターフェースの変更
| 機能モジュール | v4000 API | v4001 API | 使用説明 |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Mega トラッキングプロセスの制御 |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | 機能は削除されました |
履歴バージョン移行
4000以前のバージョンから移行する際は、以下の内容を参照してください。