VRChatSDKを理解する
既に同様の記述は有志wikiなどにも有るが、備忘録として記述。
https://docs.vrchat.com/docs/creating-your-first-world
をよく読んで準備作業をおこなう。
環境
unity2018f4.20
vrChatsdk2
やること
VRchatWorld製作
Sampleの内容理解
手順
assetのcustomimportからVRCSDKをimportする
Assets/VRChat Examples/Examples2/Scenes/Example-Prefabs.unityをHierarchyへドラッグ
VRCWorld
SDKの中にあるVRWorld
Swaons
プレイヤーの出現位置
デフォルトでは、VRCWorldプレハブは、ユーザーがその場所にスポーンするようになっています。
これは最もシンプルな設定で、ほとんどのユーザーが採用している設定です。
とあるため、特に必要がある場合以外はそのままで良い。
swaon order
スポーンの順序を設定可能
First - 常に最初のスポーンを使用。
シーケンシャル - スポーンがリストアップされている順に使用。
ランダム - ランダムにユーザーをスポーン。
デモ - ルームスケールの中心
ランダムやシーケンシャルはゲーム目的のワールドなどに適している。
スポーンされる方向
Default - VRChat のデフォルトのスポーン設定
Align Player With Spawn Point - プレイヤーを基準にスポーン位置を設定
Align Room With Spawn Point - ルーム(worldのこと)を基準にスポーン位置を設定
上記で設定したスポーン位置がルーム外ならばルーム内に調整する?
サイズを変更すると、出現位置の座標を増やすことができる。
初期設定ではVRCWorldになっているがVRCWorld以外のオブジェクトも指定可能。
いまいちピンとこないので実験
elements0にmeinCameraを設定する。
VRCWorld>MainCamera>SecondCameraを入れ子構造にする。
右クリックメニューからCameraを追加。
MainCameraからx:10離れた位置に設定。
同じ要領でThirdCameraも追加し、z:に10を入力。
部屋の中にCameraが3つ作成され、スポーン位置として設定された状態。
シーケンシャルに設定し、リスポーンを繰り返すと順番通りにスポーン位置が変化した。
Reference Camera
Reference Camera(リファレンスカメラ)
プレイヤーがルームに参加したときに適用される設定を適用できるカメラです。
クリッピングプレーンを調整したり、ポストプロセス効果を追加したりするのによく使われます。
プレイヤーの視界となるカメラ。
postprocessingが適用可能。
postprocessingは視覚にエフェクトを架けることができる。
パッケージマネージャーからインストールを行い、Reference Cameraにpostprocessingを追加。
ここではぼかし処理で、光源を拡散させるために強めのBloom効果を適用している。
本質的な理解を得るためにはこちらの文書をよく読もう。
https://gitlab.com/s-ilent/SCSS/-/wikis/Other/Post-Processing
以前はassetstoreから導入していたが、unity2018ではwindowメニューからPackageManagerから導入するようになった。
パッケージのインポート時にTestフォルダをインポートしないでください。スクリプトエラーが発生し、ワールドのアップロードができなくなります。
Near far適用可能。
他のプレイヤーが近づける距離を設定可能。
値が小さいほど、カリング(オブジェクトの非表示化)が行われる距離が小さくなる。
VRCプレイヤーはNearが好きなようだ。
Respawn Height -Y
ワールドの底の高さ。
プレイヤーが落下した場合に自動的にリスポーンする限度の高さ。
あるいはpickupオブジェクトが破棄される高さ。
ワールド内にオブジェクトの破棄ポイントをつくる場合にも設定する。
VRC_ObjectSyncも設定しないとダメ。リファレンスには書いてないのが罠。
Object Behaviour At Respawn
リスポーンかデストロイを選択可能
Forbid User Portals
ユーザーのポータルの設置を制限する。
ゲーム目的のワールドなどでは必要かも知れない。
Unity Version
通常は触れる必要は無い。使用しているunityのvarがそのまま入っているはず。
Dynamic Prefabs
スポーンされるオブジェクトのプレハブ
実行時に動的に生成できるプレハブの配列。シーンでは参照されていないがスポーンされる必要があるプリファブは、ここにリストアップしておく必要があります。
Dynamic Materials
動的な切り替えで使用されるマテリアル
実行時に動的に変更できるマテリアルの配列。シーンでは参照されていないが、オブジェクトに設定する必要があるマテリアルは、ここにリストされている必要があります。
ユーザーがサイズ/配列に加えた変更は、エクスポート時に毎回自動生成されたリストによって上書きされます。
ワールドのビルド
VRChat SDK > コントロールパネルを表示 > ビルダーに移動します。
そこには、シーンで設定できるオプションや、ワールドを構築するためのオプションが表示されます。
これらの操作を実行してみましょう。
VRChat のレイヤーと一致するようにレイヤーを設定する。
これは必ず行う必要があり、そうしないとワールドが正常に動作しない可能性があります。
VRChat のレイヤーに合わせて、コリジョン レイヤーのマトリックスを設定します。
上記を参照してください。これを飛ばしてはいけません。
と公式の解説にあるため、下記画面が出てきた場合は指示通りに設定する。
Local Testing
ログイン後にローカルでワールドをテストすることが可能。
Force Non-VRにチェックを入れればデスクトップモードで起動する。
私の環境ではなぜかVR機器もたちあがってしまう。
VRが優先される場合は有志製作のツールで回避可能のようだがForce non-VRが無かった時期の話のようなので試してはいない。
http://vrcprog.hatenablog.jp/entry/mywork-vrchat-launcher
Build & Publish for windows
アップロードを行う。
アップロードでの注意事項は別途記載予定。