一覧に戻る

Wikitude SDKの基本をおさえよう

2017.09.28技術系記事

Wikitude SDKは、幅広い開発フレームワークをサポートするARアプリ開発用のSDKとしてよく知られています。
 
この特性により、世界中のより多くのソフトウェア開発者の要求やニーズに応えることができます。
ARアプリを開発する際にどのプログラミング言語とフレームワークが要件に適しているかを知ることは、パフォーマンスや開発効率を高めるうえで非常に重要です。
そのため、Wikitude SDKと利用可能な開発フレームワークについての洞察を得るために、いくつかの基本的なARの概念と要素について説明します。

Software Development Kit (SDK)

SDKは、ライブラリ、ツール、コードサンプル、ドキュメントなど、特定のプラットフォーム用のアプリを開発するために必要なもの一式です。

Computer Vision Engine (CV Engine)

CV Engineは、Wikitude SDKの核となる機能で、すべてのプラットフォームで使用されます。
これには、SLAM Engine、Image Recognition Engine、Cloud Recognition Engineの3つの主要素が含まれています。Wikitude SDKのCVエンジンは直接アクセスできず、ネイティブAPI(Java、Obj-C)またはJavaScript APIのいずれかでラップされています。

Application Programming Interface (API)

シンプルに言えば、APIは開発者がアプリを開発するために使用できる一連のコマンド、関数、オブジェクト、およびプロトコルに従って、2つのプログラムが互いに通信できるようにするインターフェイスです。Wikitude SDKでは、ネイティブAPI、JavaScript API、またはサポートされている開発フレームワーク向けのAPIのいずれかを選択しARアプリを開発することができます。

ネイティブAPI

ネイティブAPIは、各プラットフォーム毎に開発されています。そのため、JavaScript APIのようにクロスプラットフォーム形式でARアプリを開発することはできません。つまり、ネイティブ APIを使用したARアプリのプログラミングは、iOSの場合はObj-C、Androidの場合はJavaといったように、対応するオペレーティングシステムのプログラミング言語で行う必要があります。
ネイティブAPIでは動画や3Dモデル、画像などのARオブジェクトを描画する機能は提供されません。そのため、開発者は描画処理を完全にコントロールでき、任意の描画エンジンを最大限に柔軟に使用することができます。 このネイティブAPIの特性は、より高度なプログラミング知識が必要になるということを意味します。

JavaScript API

JavaScript APIは、Wikitude SDKを利用している開発者に最も使用されているAPIです。
HTML、JavaScript、および、CSSといったWeb標準の技術を使用して、ARコンテンツを開発できます。つまり、クロスプラットフォーム開発が望ましい開発者やARアプリでは、JavaScript APIを使用することが最適です。
ネイティブAPIとは異なり、JavaScript APIを使用すると、すべてのARコンテンツがJavaScriptで制御および定義されます。動画や3Dモデル、画像などのARオブジェクトを幅広くサポートし、完全に機能する描画エンジンも提供されます。
JavaScriptは一般的に、学習、編集、実装、デバッグが容易であることが知られているため、このAPIは長年にわたりその地位を維持することができており、また、その使用用途は増加し続けています。
JavaScript APIとネイティブAPIの違いについてはこちらの比較ページをご覧ください。比較ページ内のリストを使って、各APIにどの機能が含まれているかを完全に把握することができます。

拡張機能とプラグイン

Wikitude SDKでは、さまざまな拡張機能とプラグインを提供し、幅広い開発フレームワークをサポートしています。
JavaScript APIに基づき開発された拡張機能には、Cordova、Xamarin、Titaniumがあります。
これらの拡張には、ロケーションベースAR、画像認識AR、マーカーレスARなど、JavaScript APIで利用可能機能と同じ機能が含まれています。
UnityプラグインはネイティブAPIに基づいた唯一のプラグインで、画像認識AR、マーカーレスAR、サードパーティ製のライブラリとの接続を可能にするプラグインAPIの機能が含まれています。

Unityプラグイン

Unityは、クロスプラットフォームのゲームエンジンであり、モバイルゲームの開発者に世界で最も人気のあるプラットフォームの1つです。
多くのチュートリアル、フォーラム、サポートチャンネル、豊富なドキュメンテーションを備えた非常に強力なオンライン開発者コミュニティを持ち、ARアプリの開発に興味のある開発者にとって魅力的な開発フレームワークです。
2015年にWikitudeはUnityをサポートするためにSDKを拡張し、開発者コミュニティに急速に普及しました。
ネイティブAPIに基づくUnityプラグインを使用することで、開発者はWikitudeのCV EngineをUnityで開発するゲームやアプリに完全に統合することができます。
Unityプラグインでは非常に使いやすいインターフェイスを提供しており、開発者はすぐにARコンテンツをプレビューし、同じコードベースを使用してiOSとAndroidの両方のOS上でアプリを実行できます。高度なグラフィックスを搭載したゲームとアプリにも適しており、モバイルデバイス上で非常に現実感溢れるARコンテンツの開発が可能です。

Cordovaプラグイン

CordovaプラグインはJavascript APIに基づき開発されています。そのため、開発者はHTML、JavaScript、および、CSSを使用してクロスプラットフォームで作業できます。
「write once, run anywhere」という性質は、開発と保守のコストを削減でき、非常に魅力的です。
WikitudeのCordovaプラグインでサポートされている他の開発フレームワークは、PhoneGap、Intel®XDK HTML5、SAP Mobile Platform、Telerik appbuilderです。

Titaniumモジュール

TitaniumモジュールはJavaScript APIに基づき開発されています。Cordovaプラグインと同様に、Web技術を使用して複数のプラットフォームにデプロイすることができます。 独自のユーザーインターフェイスAPIを備えており、オープンソースであるため、アプリを構築するための一般のユーザーが幅広く発展に関与できる形態も魅力的です。
2016年、AppceleratorはAxwayによって買収されました。

Xamarinコンポーネント

Xamarinは多くのC#開発者に使用されています。 2016年にMicrosoftによって買収されたこの開発フレームワークは、ランタイム環境、使いやすさ、および優れたパフォーマンスで特に人気があります。 Wikitude Xamarinコンポーネントを使用すると、C#開発者はAR機能をXamarinプロジェクトに埋め込むことができます。

Wikitude SDKを構成する基本コンポーネントのアーキテクチャをよりよく理解するために、以下の簡略化された概要図を参照してください。

Wikitude SDKは多くの開発者にARアプリ開発の可能性を提供します。

受賞歴もある強力なSDKをぜひお試しください。