UnityベースのXRフレームワークであるExtrealを試す
Unityについて調べていたら表題のUnityベースのXRフレームワークであるExtreal(エクストリアル)というものがあるらしいので、試してみた。
Extreal(エクストリアル)とは
TIS株式会社が公開したUnityベースのXRフレームワークであり、人々が集まってコミュニケーションできるバーチャル空間を開発するための土台を提供するものとのこと。詳細は下記のリンクを参照。
サンプルアプリケーションを動かしてみる
リンクのREADMEに従って、実際にサンプルアプリケーションを動かしてみる。
まずは上記のGitHubのリポジトリをローカルにクローンする。クローンしたプロジェクトを開く前に、Assets/Holiday/App/AssetWorkflow/Customのディレクトリに以下のファイルを作成する。
namespace Extreal.SampleApp.Holiday.App.AssetWorkflow.Custom
{
public static class SecretVariables
{
public static string ServerAddress => "test";
public static string CryptAssetIv => "initialization-vector";
public static string CryptAssetPassword => "password";
}
}
次にVivoxのアカウントを作成する。Vivox Developer Portalからアカウントを作成しようとすると、Unity Gaming Servicesからアカウントを作るように指示があるので、そちらでアカウントを作成。
![](https://assets.st-note.com/img/1692703056747-HnoYhrVWEi.png?width=1200)
アカウントが出来たらプロジェクトを作成して、Main MenuのMultiplayerを選択。
![](https://assets.st-note.com/img/1692703221865-l27drWjJaA.png)
Voice and Text ChatからSetup Guideを選択し、ガイドに従ってVivoxのセットアップを行う。
![](https://assets.st-note.com/img/1692703440058-MuHxcJqDvN.png)
セットアップの際にUnityとLinkするための情報が出てくるので、案内に従って設定を実施。
![](https://assets.st-note.com/img/1692747877226-m02ceDqOWd.png?width=1200)
次はリンクを参考にMixamoの無料3DモデルをUnityにインポートする。
補足するとMixamoの上部メニューのCharctersからAmyとMichelleを検索して、リンクで指定の形式でダウンロード。アニメーションは不要とあるので、スキップ。
![](https://assets.st-note.com/img/1692748507767-2jA9kU7cdi.png)
ダウンロードしたfbxファイルをRenameして(e.g. Amy.fbx)、指定のフォルダにインポート。
![](https://assets.st-note.com/img/1692748759224-ZCn0cpgaTA.png?width=1200)
そして/Assets/Holiday/App/Avatarsのディレクトリで、avatarのprefabsを作成する。詳細の手順はReadmeを参照。
![](https://assets.st-note.com/img/1692749754732-jemL2MWIDv.png?width=1200)
作成したPrefabのAddressablesにチェックを入れ、AvatarAmyと設定する。またPrefabのPositionを(0, 0, 0)にしておかないと、動かしたときに動作が変になるので注意する。同様の手順でMichelleのPrefabも作成する。
![](https://assets.st-note.com/img/1692768606383-fqLxhjb2zB.png)
/Assets/Holiday/App/ConfigのディレクトリでChatConfigファイルを作成。プロジェクトで右クリック > Create > Holiday > ChatConfig で作成。VivoxのCredentialsの内容を設定する。
![](https://assets.st-note.com/img/1692764136359-jlqmZTVste.png?width=1200)
同様の手順でMultiplayConfigを作成する。こちらはデフォルト値でOK.。
そしてParrelSyncを使って複数のUnity Editorを起動する。ParrelSyncの使い方はリンクを参照。
起動したUnity Editorの一つでMultiPlayServerのシーンを実行し、他の複数のUnity EditorでAppシーンを実行する。複数のAppシーンを実行して簡単に動かしてみたデモ動画がこちら。
![](https://assets.st-note.com/production/uploads/images/114094374/picture_pc_2523810be86cc7bb3e17cb21646c9efe.gif)
感想
Extrealのサンプルを動かしてみて、実際のUnity開発に使われるサービスやライブラリ(Unity Gaming ServiceやParrelSyncなど)を知れて良かった。