VRoid SDKは、あなたのアプリケーションを
VRoid Hubと連携させるUnity Packageです。

VRoid SDK

VRoid SDKでなにができるの?

VRoid HubとOAuthで
連携できる

たった1つの関数呼び出しで、煩雑になりがちなOAuth認証手続きが簡単に扱えます。

実行環境(iOS,Android,Windows,macOS,Linux)による動作の差異を全て吸収します。

VRoid Hubの機能を
利用できる

VRoid Hubの機能を、SDKが提供する関数経由で透過的に扱えます。

ユーザーが制作したキャラクターや、ハートしたキャラクターの一覧などの情報が取得できます。

VRoid Hubのキャラクターを
3Dモデルとして扱える

VRoid Hub上のキャラクターを、Unity上でシームレスに利用できます。

一度取得した3Dモデルデータは暗号化した上でキャッシュし、読み込み速度を短縮します。

1. VRoid HubとOAuth連携する

VRoid HubとのOAuth認証と連携は、Authenticationクラスを使います。

OAuth連携のためのApplication UIDとSecretは、アプリケーション管理ページから取得できます。

// 事前にApplication UIDとSecretを設定しておく
SDKConfiguration sdkConfiguration;

// 認証処理用インスタンスの初期化
Authentication.Instance.Init(sdkConfiguration.AuthenticateMetaData);

// VRoid Hubとの認証処理
Authentication.Instance.AuthorizeWithExistAccount((bool isAuthSuccess) => {
    if (!isAuthSuccess)
    {
        // このアプリケーションでは初めての認証である
        // ブラウザを開き、VRoid Hubサイト上にてアプリケーション連携の許可を得てから認証処理する
        var browserAuthorize = BrowserAuthorize.GenerateInstance(sdkConfiguration);
        browserAuthorize.OpenBrowser(AfterAuthentication);
    }
    else
    {
        AfterAuthentication(true);
    }
}, (Exception error) => {
    // ネットワークエラーやタイムアウト(30秒)などの問題が発生
});

// 認証完了後の処理
void AfterAuthentication(bool isSuccess)
{
    SceneManager.LoadScene("xxxxx");
}

2. VRoid Hubの機能を利用する

VRoid Hubの機能を利用するには、HubApiクラスを使います。

HubApiで操作可能な機能は、SDK仕様書から確認できます。

// VRoid Hubにて、自身が制作し登録したキャラクターモデルの一覧を取得
HubApi.GetAccountCharacterModels(
    count: 10, // 最初から10件分を取得
    onSuccess: (List<CharacterModel> characterModels) => { /* 正常にキャラクターの情報が取得できた時の処理 */ },
    onError: (ApiErrorFormat errorFormat) => { /* 通信エラーなどのエラーが発生した時の処理 */ }
);

// VRoid Hubにて、ハートしたキャラクターモデルの一覧を取得 (※ 利用条件次第では含まれないものもある)
HubApi.GetHearts(
    count: 10, // 最初から10件分を取得
    onSuccess: (List<CharacterModel> characterModels) => { /* 正常にキャラクターの情報が取得できた時の処理 */ },
    onError: (ApiErrorFormat errorFormat) => { /* 通信エラーなどのエラーが発生した時の処理 */ }
);

3. VRoid Hubのキャラクターを3Dモデルとして読み込む

VRoid Hubのキャラクターを3Dモデルとして読み込むには、HubModelDeserializerクラスを使います。

HubModelDeserializer.Instance.LoadCharacterAsync(
    characterModelId: characterModel.id, // CharacterModel#id を渡す
    onDownloadProgress: (float progress) => {
        // VRMファイルがキャッシュされておらずダウンロードが必要な場合に、進捗状況が0.0〜1.0の間で通知される
    },
    onLoadComplete: (GameObject characterObj) => {
        // UniVRMでデシリアライズされたVRMファイルのGameObjectが返される
    },
    onError: (Exception error) => {
        // 実行中にエラーが発生した場合、呼び出される
    }
)

Download

VRoid SDKの利用に関心のある開発者の方は、以下のリンクより申請をお願いいたします。

申し込む