VRCUdonWorldで初めてチーム開発した時に、こうしておけばよかったとかの感想+小ネタ

概要

この記事では、VRCのワールド制作を3人のチームで作成した時の内容の振り返りです。 「DENSUKEHORRORWORLD」のワールドを作成するための、チーム開発を行うにあたり、良かったとか、ここは改善したほうがよかったなどといったもの。 使用したツールなどを記録したものです。


目次

  • チーム開発のはじまりの経緯
  • チームのメンバー構成
  • 開発環境 使ったツールなど
  • チーム開発を行うにあたって、良かった事、及び改善点
  • 途中起きたVR版で反応が起きなかった時の対処法
  • 他のチームメンバーの記事

チーム開発のはじまりの経緯

経緯としては、単純な理由で、ホラーが苦手な子が、クエストユーザーで、いけるホラーワールドがほとんどなかったため。 ないなら、作ればいいじゃない?という話になり、作る事になったのが事の始まりです。


チームのメンバー構成

herieru @herie270714

kanchan @vr_min_chan 

kyon @kyon_VRChat 

いずれもなんらかのプログラムは弄ってはいる状態ではあるが、Udonというものには触れている状態ではないため、Udon初心者且デザインは全員出来ない状態でのメンバー構成です。

開発環境 使ったツールなど

Unity2018.4.20f1 VRCSDK3-World 2020.10.28 15.57(たしかこれ) U# v0188以降のもの

Git + GitHub(Ver管理用)

Discord(作業通知や、Issueなどの連絡を行いやすくするため)


ワールド作る上での方針

方針としては、ホラーの軽減表現を入れて、ホラー苦手でもそれなりにみんなと楽しめるホラーを作るというものでした。

理由として、起点となったその子が本当にホラーが苦手だったので、作ったワールドで嫌な気持ちになったらいけないのと、後ほどトラウマになってはいけないというのがありました。

なので、みんなで行って、その子が軽減された表現でのホラーを見て、一緒に行った人達ががっつりホラーという形になれば、「あんなのが怖いなんてねー」みたいな会話が生まれて面白いね。という事になり、DensukeSwitchというものが生まれました。


 しといて良かった事、及び改善点

しといて良かった事

  • 作業シーンの分割 個人単位で、作業を行う事が出来るため他の人の作業内容に干渉せず作業を行う事が出来るという点で良かった。
  • Object配置においてのルール 具体的には、上記の作業シーンの分割に対して、最終的に統合する必要がある。 そのため、それぞれのシーン内のTopの階層から一段下げた所で、オブジェクトを配置するようにする。

    Ex Root

    • ここから各シーン内での作業
  • 使用するアセットが、別々でインストールしてもScene内で同様に適用されるかのチェック 内容としては、A側の環境で使用した追加Assetが、B環境で新規でインストールしても、Aの追加Assetを使用した作業がなくならないか?というものです。

    理由として、GitHubの制限で、あまり大きなコミットが不可能になる場合があるための処置でした。

    チームの方針としては、Assetは使用するものに対しては通知。それぞれの環境下で、インストール後に、他の人の作業の内容を取り込むようにしました。

    ちなみに、追加されたAssetを、インストール前に作業内容を取得してしまうと、作業した内容と際がでてしまうのでかならずインストールしてからする必要があり。

改善点

  • 動作確認する際にDeskTopのみでの確認じゃなくて、VRでの確認をする必要があった。 UdonBehaviorから行う事が出来るInteractの機能を使用したワープ機能だったが、開発終盤まで、全員DeskTop(主にTestBuildによる)で開発していたため、気づかなかった。 解決自体は、後述。

  • 修正のしやすいObjectHowToなどの事前共有とかはしといたほうが良かった。 例えば、特定の部屋を作成した場合に、一つGameObjectをはさんで、大まかの移動などはそのObjectで行い、細かい内容は、それより下の個々の移動でおこなうといったもの。

    これの優れている内容は、オブジェクトの原点から離れすぎた事による失敗などが発生した場合、修正が、まとめているRootのオブジェクトだけを移動させればよいため。


途中起きたVR版で反応が起きなかった時の対処法

これはUdonBehaviorのComponentがついているもので、Allow OwnerShip Transfer On Coliderのチェックがついている状態 且つ ColiderがIsTriggerでない場合、発生します。 それもVR環境でのみ発生し、インスタンスを立てた人が誰でもかかわらず、発生しました。

内容としては、VR環境下で、Coliderが反応しない状態になる。事が発生します。

これの解決策としては、そのオブジェクトに対してRigidbodyをつけた上で、IsKinematicをOnにした状態のものをつけると、回避は可能です。

他のチームメンバーの記事

かんちゃん VRChatのワールド制作をチームでやってみた話

zenn.dev