-
Notifications
You must be signed in to change notification settings - Fork 0
ja:Getting Started
かきこみちゅう!
書いている情報は 0.3.x
ベースです!
Centurion System (以下 System) のガイドへようこそ!
ここでは System の基本的な使い方や、API を用いた高度な使い方を学ぶことができます
右のサイドバーから、あなたが必要な項目へ飛ぶことができるはずです
System をインストールするには VRChat Creator Companion (以下VCC) でセットアップされた Unity Project が必要です
To be written
To be written
次に、サンプルシーンを開いて、System の構成を見ていきましょう
基本的に、System に属しているモノは Logics
下に置かれています
Logics
内を見てみると、 3 つのモジュールに分かれています
Gun モジュールにはおおまかにこれらのオブジェクトたちが所属しています
-
GunVariantDataStore
-
Logics/System/GunManager/VariantData/
下 - ManagedGun によって使われる、銃に関する情報を保持してくれているモノ
-
-
ManagedGun
-
Logics/System/GunManager/ManagedGuns/
下 - 実際にシーン内で"召喚"している、銃の実体 (グローバル)
-
-
GunManager
Logics/System/GunManager
- ManagedGun と GunVariantData を組み付けてくれるモノ
- 銃に関するイベント を発火してくれます!
Player モジュールにはおおまかにこれら 2 つのオブジェクトたちが所属しています
-
ShooterPlayer
-
Logics/System/PlayerManager/
下 - 各プレイヤーに付与され、追従するコライダーやチームタグ、戦績(KD)等を保持しているモノ (グローバル)
-
-
PlayerManager
Logics/System/PlayerManager
- ShooterPlayer (実体は PlayerBase ) に対して追従すべきプレイヤーを指定したりしてくれるモノ
- プレイヤーに関するイベント を発火してくれます!
上記の Gun, Player モジュールのイベントを使って、ヒット時の処理等をしてくれるオブジェクトたちが居ます
理想では GameManager は Gun, Player モジュールから参照されるべきではないはずですが、現状は参照されてしまっています(要修正)
-
LocalPlayerFollower
Logics/System/LocalPlayerFollower
- ローカルのプレイヤーのみに追従するモノ
- ローカルのみに表示したいモノたちがこの下に入っています
-
LocalHitEffect
Logics/System/LocalPlayerFollower/Player/LocalHitEffect
- ローカルのヒットエフェクトを実際に出しているモノ
-
GameManager
Logics/System/GameManager
- PlayerManager, GunManager, AudioManager などの参照を持ってくれているモノ
- 銃が撃てるかどうかの状態を GunManager のイベント によって返します
このシーンは既に VRChat で使えるようにセットアップされており、ClientSim
を使うか、Build & Test
によって VRChat クライアント上で遊んでみることができます
UnityEditor 上の再生ボタンを押すと実行されます
VRCSDK の Control Panel 内 Builder タブから起動するクライアント数を指定し、Build & Test
ボタンを押すことで実行されます
ここからは、実際に System を触って、自分好みに改変していく方法を学びます
System で SFX は基本的に AudioDataStore によって保持されています
これは、
- 複数の AudioClip を指定
- 音量のランダマイズ
- ピッチのランダマイズ
することができ、銃声や足音を保持するのに適しているはずです
ただ... SFX と言ってもいろいろな音がありますね!
ここでは
- 銃の SFX
- ヒット時の SFX
- 足音 の SFX
について学ぶことができます!
銃の SFX に関しては( GunManager を使う場合であれば) 下記のような構成になっています
-
GunVariantData が
-
GunAudioDataStore を持っており、これが複数の
- AudioDataStore を持っている
-
GunAudioDataStore を持っており、これが複数の
そして、サンプルシーンでこれらは下記の位置にあります
-
GunVariantDataStore
Logics/System/GunManager/VariantData/
-
GunAudioDataStore
Logics/System/GunManager/AudioData/GunAudioDataStores/
-
AudioDataStore
Logics/System/GunManager/AudioData/AudioDataStores/
つまり、
- GunVariantData から 変更したい銃 の GunAudioDataStore を探し、
- GunAudioDataStore から 変更したい音 の AudioDataStore を探し、
- AudioDataStore の Clips を変更する
ことで銃の SFX を変更することができます
ヒット時の SFX は今のところは AudioDataStore を使用しない構成となっています
下記のような構成になっています
-
LocalHitEffect が AudioSource や HitDisplay を持っており、実際再生されるのは
- AudioSource です
そして、サンプルシーンでこれらは下記の位置にあります
-
LocalHitEffect
Logics/System/LocalPlayerFollower/LocalHitEffect
- AudioSource
Logics/System/LocalPlayerFollower/LocalHitEffect/HitAudio
つまり、
- LocalHitEffect を探し、Hit Sound に入っている AudioSource を見つける
- AudioSource に入っている Audio Clip を変更する
ことでヒット時の SFX を変更することができます
足音に関しては下記のような構成になっています
-
PlayerManager が
-
FootstepAudioStore を持っており、これが複数の
- AudioDataStore を持っている
-
FootstepAudioStore を持っており、これが複数の
そして、サンプルシーンでこれらは下記の位置にあります
-
PlayerManager
Logics/System/PlayerManager
-
FootstepAudioStore
Logics/System/AudioData/FootstepAudioStore
-
AudioDataStore
Logics/System/AudioData/FootstepAudioStore/
つまり、
- PlayerManager から FootstepAudioStore を探し、
- FootstepAudioStore から 変更したい音 の AudioDataStore を探し、
- AudioDataStore の Clips を変更する
ことで足音を変えることができます
また、Collider に対する足音設定に関しては FootstepMarker と FootstepGenerator を参照してください
銃を追加する方法は二種類あります
- GunManager を通して追加する方法
- スタンドアローンで動作する銃を設置する方法
GunManager を使って銃を生成する場合は、ManagedGun にデータを提供する GunVariantDataStore (以下VariantData) のセットアップが必要になります
これは、サンプルシーン上では Logics/System/GunManager/VariantData/
下にあります
この VariantData は以下のようなフィールドが含まれています
Field Name | Summary |
---|---|
Unique Id | GunManager で Summon する際に指定する Id |
Model | ManagedGun が複製する銃のモデル |
Projectile Data | 弾の速度やホップアップの強さなどのデータ |
Behaviour | 銃のCustom Behaviour |
Is Double Handed | SubHandle を使うかどうか |
Model Offset | Model の位置 (Local-Space) |
Shooter Offset | 弾の発射位置 (Local-Space) (Z+ forward, Y+ up) |
Main Handle Offset | MainHandle (トリガー) の Pickup 位置 |
Sub Handle Offset | SubHandle (グリップ) の Pickup 位置 |
これらを設定した上で、 Logics/System/GunManager/VariantData/
下に入れることで GunManager がこの VariantData を認識するようになります
これで、GunSummoner や コンソールコマンド(gun summon <id>
) をにて追加した銃の Id を指定し、実行することで追加した銃を生成することができます
スタンドアローンで動作する銃を追加する場合は、Gun のセットアップが必要になります
この Gun には以下のようなフィールドが含まれています
Field Name | Summary |
---|---|
Target | Gun が動かす Transform (基本的にはthis.transform) |
Shooter | 弾の発射位置 (Local-Space) (Z+ forward, Y+ up) |
Main Handle | トリガーの GunHandle (Packages/Centurion System/Samples/Prefabs/GunHandle2 ) |
Sub Handle | グリップの GunHandle |
Custom Handle | Custom Behaviour 用の GunHandle |
Bullet Holder | Gun が使用する弾のプール (サンプルシーン上では Logics/System/GunManager/BulletPool ) |
Behaviour | 銃のCustom Behaviour |
Projectile Data | 弾の速度やホップアップの強さなどのデータ @seealso GunBulletDataStore |
Is Double Handed | SubHandle を使うかどうか |
これらを設定し、任意の位置に置くことで、銃を追加することができます