シンプルなRPG

このシーンには、レベルアップやクラス変更、敵との戦闘といった、シンプルなRPG体験のサンプルが含まれています。
サンプルの使用方法
persistence-beta ブランチを使用してシーンを開くか、VRChatでサンプルワールドにアクセスしてください。
Assets/Examples/RPGフォルダにあるRPGExampleシーンを開きます。- シーンを再生します。
- 対応する台座の上を歩いてクラスを選択します。
- 敵を倒して十分な経験値を獲得すると、レベルアップします。頭上のダイヤモンドの数でレベルを確認できます。
- ワールドに再入室します。
- ワールドに読み込まれると、前回の位置にテレポートされ、最後に選択したクラス、レベル、経験値が保持されているはずです。
サンプルのインポート
以下の手順に従って、このサンプルを Unity プロジェクトに追加します。
- Unity エディターのメニューの「VRChat SDK > 🏠 Example Central」から Example Central ウィンドウ を開きます。
- リストの中からこのプレハブを探すか、タイトル(このページのタイトルと同じ)で検索します。
- 「Import」ボタンを押して、Unitypackage をプロジェクトにインポートします。
技術的な仕組み
RPGPlayer は PlayerObject スクリプトがアタッチされた GameObject に付随するスクリプトです。つまり、プレイヤーごとに RPGPlayer スクリプトが1つずつインスタンス化される仕組みになっています。
RPGPlayer は、プレイヤーの頭上にクラスとレベルを示すダイヤモンドを表示したり、他プレイヤーの武器を表示したりする制御を行っています。
また、歩いて近づくことでトリガーされる3種類のペデスタルがあり、これらを踏むと自身の RPGPlayer インスタンスに対してクラス変更の指示が送られます。
クラス、前回の位置、経験値、レベルはすべて UdonSynced であり、かつ VRCPlayerObject 上にあるため、永続的に保持されます。PlayerObject の一部である GameObject 上のスクリプトにある UdonSynced 変数は、すべて自動的に永続化されます。
戦闘はパーティクルコリジョン(衝突判定)を使用して行われます。そのため、各クラスは攻撃として異なるパーティクルエフェクトを持ち、そのパーティクルにコライダーが設定されています。 敵を倒すと1の経験値が得られ、レベルアップには4の経験値が必要です。 敵は倒されてから10〜15秒後にリスポーンします。
変更履歴
- 0.0.3: Instructions Canvas を追加
- 0.0.2: スクリプトの微調整: RPG Example でプレイヤーオブジェクト上の
VRCEnablePersistenceコンポーネントを使用するように変更し、再び永続化されるようにしました
最終更新: