こんにちは。
VRコミュニケーションツールに興味のある人です。
今回はVCIファイルを作成してみたので、その大まかな流れを共有します。
VCI(Virtual Cast Interactive)とはVirtualCast(公式)内で利用できる背景・道具データの拡張子
VirtualCastとはVRライブ・コミュニケーションサービスの一つで、自身の好きなアバターを使って動画配信を行うことや、ほかのユーザとVR空間上でコミュニケーションを行うことができます。
VirtualCast内では自身のアバター以外にも道具や背景を呼び出す機能があり、アバターだけではなく道具も自作をして、VirtualCast内に持ち込むことができます(図1)※。
※自作アバターや道具はTHE SEED ONLINEにファイルをアップしてアカウント連携する必要があります。
図1.デフォルトのピコピコハンマーを呼び出す様子
道具はアバターでつかんで振り回すだけではなく設定により様々な挙動をさせることができます。例えば....
VCIファイル作成にはUnityと必要なパッケージを利用します。
簡単な挙動であれば、コンソール上で用意されたスクリプトをオブジェクトに取り付けて必要な設定をつけるだけで作ることもでき、 ボタンを使った挙動等少し複雑な挙動をさせたい場合は、Luaで処理を書くことができます。
最初に何を作るか考えます。
今回は傘を作りたいと思います。
図2.傘を作るために作成したモデル
計画した挙動は
大体のことは本家wikiに書いてあり、ほとんど困らなかったです。(wiki)
用意されたチュートリアルに沿って環境の整備とプロジェクトの作成を行いました。
※VCIにはUnityのパーティクルシステムを入れることができなく、パーティクルシステムのようなエフェクトを表現したい場合は外部ツールEffekseerを利用してエフェクトを作る必要があります。
うまく動かないときは、Script Enable Debuggingのチェックを入れた状態でVCIファイルの出力することで、VirtualCast上で開けるデバッグコンソールからエラー等を確認することができるのでそれを利用してデバッグを行いました。
図3.Effekseerでできた雨エフェクト
図4.Unity上のオブジェクトの構成
問題1:
ローカル環境にluaのテンプレートファイル・ファイルを格納されているはずのフォルダが生成されていない。
解決方法:
ローカル環境に生成されるluaのテンプレートファイルおよび関連フォルダは、そのPCでVirtualCastにログインして、一度THE SEED ONLINEと連携を行いアイテムを読み込まないと生成されませんでした。 一度スクリプトを設定せずにVCIファイルの出力を行い、VirtualCast上でVCIの呼び出しを行えば解決できました。
問題2:
Effekseer上でループ再生を有効にしても必ずループの切れ目で初期状態から再生されてしまう。
解決方法:
Effekseer上で確認できなかったのですが、ノードの生存時間を調整して生成数限界に到達しないように調節しておけば、Unityに持っていき、ループ再生の設定を入れることで途切れずに再生できました。
問題3:
VCI Sub ItemにつけたAnimator animationを再生させようとして、エラーになってしまった。
解決方法:
チュートリアルのサンプルコード※をそのまま利用すると、Unity上でrootオブジェクト以外につけたanimatiorのアニメはスクリプトから参照ができないようでした。
rootオブジェクトにアニメーションの設定を行うことで参照することができました。
※サンプルコードをそのまま持ってきたようなコードの書き方
-- 引数1.アニメーション名 引数2.loopさせるか
vci.assets._ALL_PlayAnimationFromName("close", false)
特に何もしないアニメーションへ初期遷移させる状態でVCI出力するとTHE SEED ONLINEのプレビュー上で「エラーが発生しました」と表示されてモデルが確認できずに不安になりますが、VirtualCast上でVCIの呼び出しは行うことができます。
プレビュー上でモデルの確認はしたかったので、初期遷移をアニメーションするものに変更することでエラー表示は回避できました。
図5.傘を使用する様子
VCIの作成そのものは普段のゲーム制作と感覚が近かったが、自分が動かすアバターでその道具を扱ったり身に着けることができるという体験が、ゲーム制作とは異なる新しい体験と感じることができて、自分の好きなアバターに似合いそうな道具を想像できると楽しいです。
傘を使用してみて、現実との比較でいつもはあるものがないと手に取ってみた時に違和感を感じました。例えば、傘を開くときに音がならなかったり、傘を開いて顔の横に持ってきたときの圧迫感が無かったりすると違和感があります。
このあたりを意識して道具を作れれば、没入感を高くできそうだったので次回に生かそうと思います。
皆様よりよいVRライフを~
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。
合わせて読みたい
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。