BOLTでVRMを読み込めるゲームを作ろう!
今日は眠いので記事を書きます。
ドワンゴが作ったVRMというキャラクターファイル形式が流行りそうな気配なので先に流行りに乗りたい。
試してみる
こちらでunityパッケージとかいろいろ公開されています。
リンクをたどってUniVRM-RuntimeLoaderSampleとやらをダウンロードしてunityにインポートします。
自分がダウンロードした時のバージョン(UniVRM-RuntimeLoaderSample-0.43_4725.unitypackage)
中を開いてVRM.Samplesフォルダの中のScenesフォルダにサンプルシーンが入ってるので中を見てみましょう
(上記画像は自分が試しに作ったものも入ってます。)
VRMRuntimeLoaderSample
Load VRMでVRMファイルを読み込むとTポーズのキャラが出てきます。
VRMViewer
読み込んだキャラが勝手に動いたりするサンプルシーン
作りとしてはVRMRuntimeLoaderSampleのほうが理解しやすい気がするので、VRMRuntimeLoaderSampleをベースに改造していきます。
VRMを読み込んでプレイヤーキャラクターとして扱う
VRMRuntimeLoaderSampleシーンのなかで、VRMを読み込んだ時に何が起きているのかを軽く見ていきます。
VRMを読み込む前
VRMを読み込んだ後
VRMファイルを読み込むと、シーンのHierarchyのなかにVRMという名前のゲームオブジェクトが追加されたことが確認できます。
こいつがキャラクターデータの正体なので、こいつをサードパーソンキャラクターの子供にしたりアバターの設定をしてやればプレイヤーキャラとして扱えるわけです。
(過去記事)
しかし上記のやり方だとゲームの起動前に各種設定をしなければならず、今回の場合はVRMを読み込んだ後、つまりゲーム起動中に設定をする必要があるので、手作業でやっていたものをなんとかしてスクリプトで作業する必要がある。
BOLTを利用してランタイムでVRMをいじくる
ランタイム、走る時間、つまりはゲーム実行中。
事前準備として、シーンにスタンダードアセットのThirdPersonControllerを読み込んでおきます。
C#スクリプト無限にわからんのでBOLTさんの出番です。
(BOLTの使い方)
用意したThirdPersonControllerゲームオブジェクトのなかに、BOLTのFlow GaphをEmbedで追加します。