Narazaka::Blog

奈良阪という人のなにか

【VRChat】鉄道ワールドのプレイヤー追従ギミック分類

VRChatにおいて鉄道を再現したワールドというのは様々に存在しますが、特に乗車、運転等の可動ギミックを備えた物についてプレイヤー追従方式の分類をしてみたいと思います。

VRにおける鉄道というのは、

  1. 固定の軌道に沿って動く
  2. プレイヤーが車内で動ける自由度がある
  3. なめらかな加減速運動または等速運動をする
  4. 風景と車内という別々の運動をしている2つ以上(車両が2つある場合は3つetc)の場所がある

と言った特徴があります。

ただことVRChatには「慣性」の概念がなく、特に2番目のプレイヤーを自由度を保ちつつ移動させるというのは色々と技術的困難を伴うものです。

つまりこれは"素直"な鉄道の実装が困難であることを意味し、このためやりたいことに即してそれぞれが一定の自由度をオミットしつつ要素抽出して様々な実装がなされることになります。

主に「どのようにユーザーを移動させるか(または移動させないか)」についての試行をまとめたものであり、その観点では鉄道に限らず可動部分のあるギミックに流用可能な知見かも知れません。

実装方式の例となるワールドと共に一覧します。(この記事での分類用語はコンセンサスが取れた物ではなく筆者が勝手に付けた物であることにご注意下さい。)

この記事はなぜか1日だけ空いて過ぎていたVRChat Advent Calendar 2021の10日目に後からぶち込みました。(ぉ adventar.org

静態保存

動かすのが難しいならそもそも何も動かさなければ良いというソリューションがまずあります。

非可動

Japanese Fictional Old Train Car 保存車両

vrchat.com

保存車両という名目で動かない鉄道車両があるワールドです。

そもそも車両自体に魅力があるという事に加え、ドアの開閉ができること(ドアカットもできる)、そして走行音の再生ができることでより鉄道の体感ができ、車両を動かさなくても要所の魅力を伝えることに成功しています。

目的によってはそもそも動かさないという選択は大変コストパフォーマンスが良いと思います。

乗客を乗せない

列車自体は動くがそれにプレイヤーを何ら干渉させなければごく自然な動作で良くなります。

Bepsi P144 Stn․금천구청역

vrchat.com

ときたま列車が通過・停車していく駅のワールドです。乗車は出来ません。

要件にも寄りますがアニメーションによって素直に車両を移動させれば実現可能な場合が多いです。

車窓ワールド

鉄道を題材にしたワールドで最もポピュラーなのがこの形態です。

主に鉄道に乗車中の車窓を楽しむことが主たる魅力です。

背景等速アニメーション式

黄昏れ特急 -Big Sunset Express-

vrchat.com

Yamanote Line E235

vrchat.com

列車に乗車中の車窓を楽しむワールドです。基本駅には到着せず永遠に走り続けます。

このタイプのワールドは実は見た目に反して(?)列車自体は静止していて、背景(車窓)のほうがアニメーションで等速移動しているという実装で実現出来ます。

鉄道題材のワールドで一番多いのではないかと思っています。

背景アニメーション制御式

Myojin Line

vrchat.com

基本は車窓ワールドですが、駅からの乗車→発車→走行→停車→降車が味わえるワールドです。

鉄道の一連の乗車挙動を再現した画期的で極めてクオリティの高いワールドになっています。

一般の車窓ワールドと同じく背景をアニメーション移動させて列車の走行を表現しているのですが、駅から列車に乗車してから手動でアニメーションの再生を押して発車し、途中駅にも停車して下車出来ます。

しかし特に複数人で楽しむときなど、発車をしたにもかかわらずまだ駅に残っていた場合は流れる背景に押し流される挙動になるという技術的困難があります。

鉄道模型

PhysicalTrainSimulator

vrchat.com

鉄道模型の運転台にカメラが付いているタイプのものです。

「乗車」をさせない制約下で満足度の高い鉄道の表現として鉄道模型という方法があります。

鉄道模型そのものの運転方式としてはいくつかありそうですが(上記例はそのうち最も困難であろう物理式)、プレイヤーの乗車を考えなくて良くなるため次項目と比べてギミックだけで完結し、直感的な実装でも違和感のない体験が可能だと思います。

乗車運転(自動運転・手動運転)

プレイヤーを実際に車両に乗車させ、駅と車中両方で正常に動作するようなワールドです。

これが最も技術的困難にあたりやすい所だと思います。

椅子固定式

車や航空機なども含めてVRChatで最もポピュラーな乗り物ギミックの実装に使われる手段です。

Japan Street(自動運転) vrchat.com vrchat.com

車、路面電車、バスなどがこの方式です。(町外れの普通鉄道は乗車不可能)

NEET WORLD(手動運転) vrchat.com

モノレールがこの方式です。

他にも多く例があります。

VRChatでプレイヤーを移動物体に追従させる手段としては基本的に椅子が最も簡単です。

しかしこと鉄道の表現としては、実際の列車で可能な立席乗車や乗車中の席移動等をすると移動する列車に取り残されてしまうのでそれらが実質不可能であるという欠点があります。

またアバターの揺れものが移動速度に伴って荒ぶるという欠点もあります。

誤って椅子を降りてしまい取り残される事故は多々あるので、駅に着くまで席を離れられないという実装もあったと思います。

車内分離式

VR Central Station

vrchat.com

グリーンラインはドアクリック、中央線はドアを通過で乗車します。

Moscow Trip 2002-Night Tram

vrchat.com

ドアを通過で乗車します。こちらは駅停車がなく完全に車窓ワールドと風景が分離されています。

こちらもバーチャルマーケットなども含めて実装例が比較的多い方式です。

椅子固定式の「椅子から降りると取り残される」「揺れものが荒ぶる」問題を解決するため、駅と車内を別の場所において車内では車窓ワールドと同じ背景アニメーション式を使って安定した移動をするというものです。ドアクリック・通過・開閉時等にプレイヤーをワープさせています。

欠点としては、車内と駅ホームが別の場所であるためにそれぞれにいるプレイヤー同士が視認出来ないという点や、複数車両を用意する際には実際にはその2倍車両を置いてアニメーションを動かさなければならないという煩雑さなどがあります。

車内分離カメラ式

Seasonal Local Train vrchat.com

現時点では恐らくSeasonal Local Trainのみの独自方式です。

車内分離式の欠点「車内・車外のプレイヤー同士が視認出来ない」を解決するため、車内から車外に向けての視点のカメラで車外の人を視認させることに成功しています。

カメラ映像を立体的な描画とすることはできるらしく、これによって違和感のない車外風景になっていますが、別の場所に居るため音声は届かないのがネックです。

またカメラの制約のせいか逆の車外→車内は実現していません。

椅子クリック可動式

曙松線(Akebonomatu_Railway) vrchat.com

現時点では恐らく曙松線のみの独自方式です。

椅子固定式の「椅子から降りると取り残される」を解決し、車内分離式の車内車外視認問題も発生しません。

乗車時にクリックが必要であったり、列車それぞれに椅子が紐付いているので号車移動で椅子のクリックが必要であったりはします。また実際に移動する方式共通の欠点である揺れものの荒ぶりはいかんともしがたいです。

椅子シームレス可動式

香川急行電鉄饂飩線 (KAGAWA KYUKO RAILWAY UDON LINE) vrchat.com

現時点では恐らく香川急行電鉄饂飩線のみの独自方式です。拙作のワールドです。

椅子クリック可動式からさらにクリックの必要性も取り除いた体感で、乗車してからシームレスに発車でき、号車移動もスムーズです。

しかし椅子オーナーの同期が現状不安定で、操作が効かなくなる不具合があったりします。また同じく実際に移動する方式共通の欠点揺れものの荒ぶりはあります。

無固定低速式

MonoMonoRail vrchat.com

恐らくMonoMonoRailのみの独自方式です。

実装当初、移動速度が十分低速であればコライダーでプレイヤーを押し込むことができるので、十分低速な移動で固定せずに移動させていた方式です。

ただ現時点ではVRChatの挙動の変化故か実装が異なる気がするのでなんとも言えません。

以上

このように特に後段困難が多く、様々な方式が開発されていることが分かったと思います。目的に合った方法は見つかったでしょうか。

まだ欠点が少ない決定打と言える方式は生まれておらず、各種の技術共有などでよりよい技術を模索出来ると良いなあと思っています。

やっていくぞ……(なお香川急行電鉄1年くらい放置してる