VRoid SDKはUniVRMを含みます。VRoid SDKをインポートする際に自動的にUniVRMがインポートされます。Exampleを利用するには新しいInput Systemが必要なため、公式ドキュメントを参考にプロジェクトに導入してください。
アプリケーション管理ページから、新しいアプリを作成します
作成したアプリの個別ページから、credential.json.bytes
をダウンロードします
ダウンロードしたcredential.json.bytes
をAssets/Resources
以下に配置
Assets/VRoidSDK/Examples/CharacterModelExample/Scenes
のExampleを開く
Hiererchy内、VRoidHubController/Routes
のAppPassword
に任意のパスワードを設定
シーンを再生すると、Hubとの連携フローを確認できます
<aside>
✏️ Assets/VRoidSDK/Examples/CharacterModelExample/Prefabs
のVRoidHubControllerを利用すると、同様の手順で新しいシーンへ導入できます
</aside>
class Login : MonoBehaviour
{
void Start()
{
// 通信に使うThreadContext
var context = SynchronizationContext.Current;
// ダウンロードしたcredential.json.bytesを読み込み
var credential = Resources.Load<TextAsset>("credential.json");
// 設定に使うアプリ情報
var credentialJson = credential.text;
// 認可に使うConfigの作成
var config = OauthProvider.CreateSdkConfig(credentialJson);
// OAuthの認可を扱うClientを作成する
var oauthClient = OauthProvider.CreateOauthClient(config, context);
// ログインに使うBrowserを作成
var browser = BrowserProvider.Create(oauthClient, config);
// ローカルにアカウントファイル保存済みかつ期限が切れてない
var isLoggedIn = oauthClient.IsAccountFileExist() && !oauthClient.IsAccessTokenExpired();
// ログイン
if (!isLoggedIn)
{
// すでに認可済みだが期限切れの場合は再認可。
// そうでなければブラウザを開いて認可フローを開始する。
oauthClient.Login(
browser,
(account) => { /*ログイン成功時*/ },
(error) => { /*ログイン失敗時*/ }
);
}
}
}
var defaultApi = new DefaultApi(oauthClient);
oauthClient.Login(
browser,
(account) => {
// モデル読み込みに使うModelLoaderを初期化
ModelLoader.Initialize(
config, // Credentialから作成したConfig
defaultApi, // 認可済みのAPI
"PASSWORD_FOR_YOUR_APP", // モデル暗号化のパスワード
10 // モデルの最大キャッシュ数
);
defaultApi.GetAccountCharacterModels(10, (models) => {
// モデル読み込みの開始
ModelLoader.LoadVrm(
models[0], // 読み込むモデル
(gameObject) => {
// 読み込み完了後のコールバック
gameObject.transform.parent = this.transform;
},
(progress) => {
// 読み込み中の進捗コールバック
},
(error) => {
// エラー発生時のコールバック
}
);
}, (error) => { });
},
(error) => { /*ログイン失敗時*/ }
);