VRChat 非公式日本語ドキュメント

シンプルなRPG

RPG World Preview

このシーンには、レベルアップやクラス変更、敵との戦闘といった、シンプルなRPG体験のサンプルが含まれています。

サンプルの使用方法

persistence-beta ブランチを使用してシーンを開くか、VRChatでサンプルワールドにアクセスしてください。

  1. Assets/Examples/RPG フォルダにある RPGExample シーンを開きます。
  2. シーンを再生します。
  3. 対応する台座の上を歩いてクラスを選択します。
  4. 敵を倒して十分な経験値を獲得すると、レベルアップします。頭上のダイヤモンドの数でレベルを確認できます。
  5. ワールドに再入室します。
  6. ワールドに読み込まれると、前回の位置にテレポートされ、最後に選択したクラス、レベル、経験値が保持されているはずです。

サンプルのインポート

以下の手順に従って、このサンプルを Unity プロジェクトに追加します。

  1. Unity エディターのメニューの「VRChat SDK > 🏠 Example Central」から Example Central ウィンドウ を開きます。
  2. リストの中からこのプレハブを探すか、タイトル(このページのタイトルと同じ)で検索します。
  3. 「Import」ボタンを押して、Unitypackage をプロジェクトにインポートします。

技術的な仕組み

RPGPlayerPlayerObject スクリプトがアタッチされた GameObject に付随するスクリプトです。つまり、プレイヤーごとに RPGPlayer スクリプトが1つずつインスタンス化される仕組みになっています。 RPGPlayer は、プレイヤーの頭上にクラスとレベルを示すダイヤモンドを表示したり、他プレイヤーの武器を表示したりする制御を行っています。

また、歩いて近づくことでトリガーされる3種類のペデスタルがあり、これらを踏むと自身の RPGPlayer インスタンスに対してクラス変更の指示が送られます。

クラス、前回の位置、経験値、レベルはすべて UdonSynced であり、かつ VRCPlayerObject 上にあるため、永続的に保持されます。PlayerObject の一部である GameObject 上のスクリプトにある UdonSynced 変数は、すべて自動的に永続化されます。

戦闘はパーティクルコリジョン(衝突判定)を使用して行われます。そのため、各クラスは攻撃として異なるパーティクルエフェクトを持ち、そのパーティクルにコライダーが設定されています。 敵を倒すと1の経験値が得られ、レベルアップには4の経験値が必要です。 敵は倒されてから10〜15秒後にリスポーンします。

変更履歴

最終更新: