ネイティブアプリのプラットフォーム開発のセットアップ 更新日時: 2025/10/01
このガイドでは、開発環境のセットアップ、プラットフォームの初期化、およびユーザーのエンタイトルメントのチェックの基本について順を追って説明します。
このページに記載されているステップを実行する際の参考として
サンプルアプリ を利用できます。
Platform SDKを統合する前に、アプリを作成し、関連付けられたアプリIDを取得し、開発環境の設定時にそのアプリIDを使用する必要があります。アプリを作成するには、
アプリページの作成と管理 にある情報をご覧ください。
開発者ダッシュボードからアプリIDを取得する
ブラウザーで、Meta Horizon開発者ダッシュボード に移動します。 左側のナビゲーションにある[マイアプリ] をクリックします。 アプリ一覧からアプリを選択します。 左側のナビゲーションから、[Development (開発)] > [API] をクリックします。 [API] ページの中央にアプリID があります。アプリIDは、次のいくつかのセクションで説明する初期化APIを呼び出すために必要です。
環境を設定する手順は、作成するアプリのタイプに応じて異なります。ビルドしているアプリに合った手順に従ってください。
注 : このセクションの手順は、Link PC-VRアプリを作成している場合にのみ使用します。
Platform SDKを統合する際には、最初にLink PC-VRプロジェクト用にVisual Studioを設定します。開発向けにVisual Studioを設定するには、次の手順を使用します。Include ディレクトリとプラットフォームSDKライブラリへのパスを追加し、いくつかの設定を変更する必要があります。さらに、SDKをダウンロードすると、DLL署名認証とランタイムの適切な検出を可能にするローダーが提供されます。プラットフォームSDKを使用するようにVisual Studioを構成するには、次の手順を実行します。
Platform SDKをまだダウンロードしていない場合はダウンロードします 。 ダウンロードしたコンテンツを抽出します。 Visual Studioを開いて新しいC++コンソールアプリを作成するか、既存のプロジェクトを開きます。 プロジェクトを右クリックして[Properties (プロパティ)] を選択します。 ヘッダーファイルのパスを構成します。そのためには、[C/C++] > [General (一般)] の下で[Additional Include Directories (追加のIncludeディレクトリ)] を見つけ、[<Edit...> (<編集...>)] を選択します。プラットフォームSDKのIncludeディレクトリ[platform-sdk-extraction-dir]/OVRPlatformSDK_v1.28.0/Includeに移動してこのディレクトリを選択します。 プリコンパイルされているヘッダーを使用しないように設定を変更し、モードを許可(permissive)に設定します。手順は次のとおりです。
[C/C++] > [All Options (すべてのオプション)] で[Conformance mode (適合モード)] エントリを見つけ、設定を[No (いいえ)] に変更します。[Precompiled Headers (プリコンパイル済みヘッダー)] エントリを見つけ、ドロップダウンを使用して設定を[Not Using Precompiled Headers (プリコンパイル済みヘッダーを使用しない)] に変更します。次に、リンカーとプラットフォームローダーを構成します。手順は次のとおりです。
[Linker (リンカー)] > [General (一般)] の下で[Additional Library Directories (追加のライブラリディレクトリ)] を見つけます。[<Edit...> (<編集...>)] を選択します。ダイアログで[New Folder (新規フォルダー)] アイコンをクリックし、[platform-sdk-extraction-dir]/OVRPlatformSDK_v1.28.0/Windowsをリストに追加します。[Linker (リンカー)] > [Input (インプット)] を選択して、追加の依存関係を設定します。[Additional Dependencies (追加の依存関係)] の下で[<Edit...> (<編集...>)] をクリックし、ローダーライブラリの名前(プロジェクトが32ビットの場合はLibOVRPlatform32_1.lib、64ビットの場合はLibOVRPlatform64_1.lib)を追加します。cppローダーファイル[platform-sdk-extraction-dir]/Windows/OVR_PlatformLoader.cppをプロジェクトに追加します。そのためには、プロジェクトを選択して右クリックし、[Add Existing Item (既存アイテムの追加)] を選択します。プラットフォームローダープロジェクトに移動して、このプロジェクトを選択します。 最後に、プラットフォームのincludeステートメント(#include "OVR_platform.h")をmain.cppに追加して、プロジェクトをコンパイルします。このコンパイルではエラーは発生しないはずです。
注 : このセクションの手順は、モバイルアプリを作成している場合にのみ使用します。
モバイルアプリのPlatform SDKを統合する際には、最初にモバイルプロジェクト向けにAndroid Studioを設定します。2つのSDKをSDK Managerの[Tools] / [Android] / [SDK Manager]で適用する必要があります。
Platform SDKには、.so署名認証とOculusランタイムの適切な検出を有効にするローダーがあります。このローダーを利用するには、SDKの場所をマネージャに追加します([InstallFolder]/Android/libs/armeabi-v7a/libovrplatformloader.so)。 次にAndroid NDK (SDK Managerの[SDKツール(SDK Tools)]タブにあります)を追加します。NDKは、AndroidデバイスでC++コードを利用できるようにするツールのセットです。またNDKによりデバイスアクティビティが管理され、アプリがデバイスのセンサーやインプットにアクセスできるようになります。 このセクションの構成手順を実行すると、開発者は開発プロセスでアプリケーションのローカルビルドを実行できるようになります。このプロセスは必須です。このプロセスを行わないと、アプリのローカルバージョンが、後で統合するエンタイトルメントチェックに合格できません。
ユーザーをチームに追加します。チームの管理については、「チームとユーザーの管理」を参照してください。 アプリのチームに所属していない開発者がおり、通常のインストールディレクトリ外でアプリを実行する必要がある場合は、レジストリキーAllowDevSideloadedをDWORD(1)としてレジストリフォルダーHKLM\SOFTWARE\Wow6432Node\Oculus\Oculusに追加します。 これによって、有効なエンタイトルメントが不要になるわけではありません。ディレクトリチェックがバイパスされるだけです。上記の手順を実行しておくと、アプリケーションのローカルビルド実行時にエンタイトルメントチェックが成功します。
SDKを初期化してエンタイトルメントチェックを実行する SDKを統合する最初のステップは初期化機能の実装であり、次にエンタイトルメントチェックを実行する必要があります。その手順については、
エンタイトルメントチェック をご覧ください。
スタンドアローンモードでは、テスト環境と開発環境でPlatform SDKを初期化できます。スタンドアローンモードは、マッチメイクをテストする際に便利です。複数のアプリを1つのボックスで実行して、統合をテストすることができます。スタンドアローンモードで初期化すると、ローカルで実行されているMetaサービスプロセスへのSDKの接続が制限されます。
注: スタンドアローンモードでの初期化で使用される一連の認証情報は、他の初期化プロセスとは異なります。スタンドアローンモードで初期化する際には、Meta開発者アカウントのメールアドレスとパスワードを使用します。スタンドアローンモードでSDKを初期化するには、以下に示すOculusInitParamsを指定してovr_Platform_InitializeStandaloneOculusを呼び出します。
OVRPL_PUBLIC_FUNCTION(ovrRequest)
ovr_Platform_InitializeStandaloneOculus(
const ovrOculusInitParams *params)
Where the ovrOculusInitParams are formed:
typedef struct
{
ovrPlatformStructureType sType;
const char *email;
const char *password;
ovrID appId;
const char *uriPrefixOverride;
} ovrOculusInitParams;
Init Paramの値は次のとおりです。
パラメーター 説明 sType
認証情報構造体のタイプ。ovrPlatformStructureType_OculusInitParamsでなければなりません
email
Metaアカウントに登録されているメールアドレス
password
Metaアカウント用のパスワード
appID
アプリケーションのID (ユーザーはこのアプリのエンタイトルメントを持っていなければなりません)
uriPrefixOverride
https://graph.oculus.comのオーバーライド(任意)
何らかの問題が発生した場合には、その状況を把握する必要があります。エラーコードとメッセージを確認することで、状況を把握できます。エラーの原因がユーザーの操作にある場合は、そのユーザーに対して表示できるメッセージがあります。
エラーを確認するには、次の手順に従います。
Oculusプラットフォームにリクエストを実行するたびに、ovr_Message_IsError()を呼び出して、メッセージがエラーであるかどうかを確認します。メッセージがエラーの場合はovr_Message_GetError()を呼び出してエラーオブジェクトを取得します。エラーオブジェクトには、エラーの原因をデバッグする際に利用できる次の情報が含まれています。
ovr_Error_GetHttpCode()は、リクエストのhttpコード(400、500など)を返します。ovr_Error_GetCode()は、エラーのクラスを表すコードを返します。例えば、コードが100のエラーはすべて、無効なパラメーターのエラーです。複数のエラーが1つのコードに対応していることがあります。エラーメッセージを調べ、何が問題かを特定します。例えば、IDが無効な場合と、必須パラメーターが欠落している場合はいずれも、コードが100のエラーが返されます。ovr_Error_getMessage() は、ローエラーがJSON文字列として戻されます。この文字列には次のフィールドが含まれています。
message: 発生した問題の説明。問題のデバッグ/修正方法も含まれることがあります。code: クライアント/サーバーコードに競合がある場合を除き、これは通常ovr_Error_GetCodeに一致します。代わりにovr_Error_GetCodeの値を使用します。fbtrace_id: サポートに連絡する際に役立ちます。この情報は、失敗したリクエストに関する詳細な情報を把握するために、内部で利用します。ovr_Error_getDisplayableMessage()は、ユーザーに対して任意で表示できるメッセージを返します。これには、ovr_Error_getMessageから取得される技術情報は含まれていません。表示できるメッセージの例としては、ユーザーがランクに入っていないアプリのリーダーボードを照会する場合に出されるYou're not yet ranked on this leaderboard.があります。ユーザーではなく開発者が原因で発生したエラーの場合、この値が空になることがあります。