Skip to content

ja:Getting Started

DerpyNewbie edited this page Mar 17, 2023 · 16 revisions

かきこみちゅう!

書いている情報は 0.3.x ベースです!

Table of contents

はじめに

Centurion System (以下 System) のガイドへようこそ!

ここでは System の基本的な使い方や、API を用いた高度な使い方を学ぶことができます

右のサイドバーから、あなたが必要な項目へ飛ぶことができるはずです

インストール

System をインストールするには VRChat Creator Companion (以下VCC) でセットアップされた Unity Project が必要です

VRChat Creator Companion

To be written

Unity Package Manager

To be written

サンプルシーンを見てみる

次に、サンプルシーンを開いて、System の構成を見ていきましょう

基本構成

基本的に、System に属しているモノは Logics 下に置かれています

Logics 内を見てみると、 3 つのモジュールに分かれています

Gun

Gun モジュールにはおおまかにこれらのオブジェクトたちが所属しています

Player

Player モジュールにはおおまかにこれら 2 つのオブジェクトたちが所属しています

Game

上記の Gun, Player モジュールのイベントを使って、ヒット時の処理等をしてくれるオブジェクトたちが居ます

理想では GameManager は Gun, Player モジュールから参照されるべきではないはずですが、現状は参照されてしまっています(要修正)

  • LocalPlayerFollower
    • Logics/System/LocalPlayerFollower
    • ローカルのプレイヤーのみに追従するモノ
    • ローカルのみに表示したいモノたちがこの下に入っています
  • LocalHitEffect
    • Logics/System/LocalPlayerFollower/Player/LocalHitEffect
    • ローカルのヒットエフェクトを実際に出しているモノ
  • GameManager

遊んでみる

このシーンは既に VRChat で使えるようにセットアップされており、ClientSim を使うか、Build & Test によって VRChat クライアント上で遊んでみることができます

ClientSim で遊ぶ

UnityEditor 上の再生ボタンを押すと実行されます

VRChat クライアントで遊ぶ

VRCSDK の Control Panel 内 Builder タブから起動するクライアント数を指定し、Build & Test ボタンを押すことで実行されます

サンプルシーンを改変する

ここからは、実際に System を触って、自分好みに改変していく方法を学びます

SFX を変える

System で SFX は基本的に AudioDataStore によって保持されています

これは、

  • 複数の AudioClip を指定
  • 音量のランダマイズ
  • ピッチのランダマイズ

することができ、銃声や足音を保持するのに適しているはずです

ただ... SFX と言ってもいろいろな音がありますね!

ここでは

  • 銃の SFX
  • ヒット時の SFX
  • 足音 の SFX

について学ぶことができます!

銃の SFX を変える

銃の SFX に関しては( GunManager を使う場合であれば) 下記のような構成になっています

そして、サンプルシーンでこれらは下記の位置にあります

つまり、

  1. GunVariantData から 変更したい銃GunAudioDataStore を探し、
  2. GunAudioDataStore から 変更したい音AudioDataStore を探し、
  3. AudioDataStoreClips を変更する

ことで銃の SFX を変更することができます

ヒット時の SFX を変える

ヒット時の SFX は今のところは AudioDataStore を使用しない構成となっています

下記のような構成になっています

そして、サンプルシーンでこれらは下記の位置にあります

  • LocalHitEffect
    • Logics/System/LocalPlayerFollower/LocalHitEffect
  • AudioSource
    • Logics/System/LocalPlayerFollower/LocalHitEffect/HitAudio

つまり、

  1. LocalHitEffect を探し、Hit Sound に入っている AudioSource を見つける
  2. AudioSource に入っている Audio Clip を変更する

ことでヒット時の SFX を変更することができます

足音を変える

足音に関しては下記のような構成になっています

そして、サンプルシーンでこれらは下記の位置にあります

つまり、

  1. PlayerManager から FootstepAudioStore を探し、
  2. FootstepAudioStore から 変更したい音AudioDataStore を探し、
  3. AudioDataStoreClips を変更する

ことで足音を変えることができます

また、Collider に対する足音設定に関しては FootstepMarkerFootstepGenerator を参照してください

銃を追加する

銃を追加する方法は二種類あります

  • GunManager を通して追加する方法
  • スタンドアローンで動作する銃を設置する方法

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 を使うかどうか

これらを設定し、任意の位置に置くことで、銃を追加することができます

ヒット時の表示を変える

APIを使ってみる

ヒット時の処理を変更してみる

HPを追加してみる

新しい銃の挙動を作ってみる