見出し画像

clusterワールドで落ちまくってみた!

みなさんこんにちはこんばんは!Muaccaです!
この記事はバーチャルリアリティSNS(VRSNS)のclusterの1月のお題企画、「記事求ム!クリエイターキットライターズ」 への投稿記事です!

どうですか!落ちてますか!?
おっと……この受験シーズン真っただ中の時期に「落ちた」とか縁起の悪い単語を書くのはちょっとどうかという気もしますね!?でもまあ、記事が書かれた時期と読まれる時期は違ったりもするので気にしないことにしましょう。
ということで今日は、clusterのワールドの中で「落ちまくってみた」、それについて雑多に書いてみようと思います。

バーチャルなワールドで落ちるのが苦手…

clusterでは、SNS利用者が集まるための『場』である3Dの仮想空間、通称『ワールド』を利用者自身がUnityで作成することができます。
そのワールド内では下向きに重力が働くように設定されていて、なので地面とか床とかの無い場所だと「落ちて」しまうわけですね。そこはリアル世界と同じような感覚です。

実は私はこの「落ちる」というのが嫌いというか苦手というか、なんとなく「できれば落ちたくないな…」と思っています。いました。
clusterにはいろいろとゲームっぽい遊び方のできるワールドがたくさんあるのですが、その中には飛んだり跳ねたりしてずんずん進んでいくアクションゲームとかアスレチックゲームというものもあったりします。そういったゲームワールドではたいてい「ステージから落ちると最初からやり直し」的な仕掛けになっていることが多いです。まあそりゃそうですよね。失敗したら最初からやり直す。人生なんてそんなものです。
私はゲームっぽい操作、前後左右にまっすぐ進んだりジャンプしたりといったことがかなり苦手でして、なのでアクションゲームなワールドとかだとたいていスタート地点の近くの落とし穴的なところで何度も失敗しては落ち、落ちてはスタート地点に戻されて…を繰り返して疲れ果ててしまったりすることが多いというか……なんというか。

いっそのこと落ちまくってみた!

そんな苦手意識のあった「落ちる」なんですが、2020年冬のGAMEJAMでは「もういっそのこと『落ちる』だけのゲームを作ってやろう!」となぜか謎の開き直りをし「操作は簡単!『落ちる』だけ!」とかいう煽り文句までつけたワールド『"映え"のためなら下界にDIVE!』(以下『映え下界DIVE』)というバカゲー(?)を公開しました。

「落ちる」だけというからにはこの『映え下界DIVE』、公開するまでのデバッグ過程でひたすら「落ちまくる」わけです。苦手なのに。まったく何考えてんだか分からない、過去の自分ってほんと他人だよね。
ちなみにその『映え下界DIVE』ワールドの基本的な作りとしてはこの画像のようになっています。

名称未設定のアートワーク-1

緑色のボックスみたいなものが縦に6つ並んでいますが、そのそれぞれがワールド内のミニステージになっています。このワールドは「落ちる」ことを主題にしているだけあって、縦に長い構造をしています。ちなみにこのワールドの一番高いところから一番低いところまでの高低差は約260mあります。
プレイヤーはこのワールドの上の方から重力に魂惹かれるままに落下し、そして一番下まできたらまたワールドの上の方にワープさせられて再び重力の支配下に入るという。そうして無限に落下を繰り返すことができるようになっています。思う存分に落下を楽しむ。そんな落下マニア(なにそれ)にはたまらない楽しいワールドなわけですね。

たぶんですが、Unityのプレビュー機能でデバッグをしたり、実際にclusterにワールドをアップロードして落下具合を確認したりするのに少なくとも10時間くらいは使っているので、その間のほとんどの時間、私は「落ちまくっていた」とかそういう話になると思います。

落ちまくるための仕組み

さてそんな落ちまくりワールドの『映え下界DIVE』ですが、その仕組みを簡単に解説します。

スタート地点の『天界』ですが、実はこのワールドの一番下のミニステージに配置しています。clusterではプレイヤーがワールドに最初にインしたときの位置を「Spawn Point」というComponentを付けたGameObjectで指定します。Spawn Point、これはclusterのワールドを作成するためのUnity packageである「Cluster Creator Kit」(以下、CCK)で提供されているもので、ワールドを作成するときに必ず配置しないといけないものの1つです。そのSpawn Pointを一番下のミニステージである『天界』に配置しているということですね。

名称未設定のアートワーク-2

そしてここからがこのワールドのキモなのですが、その『天界』の床下に「Player Enter Warp Portal」というこれもCCKで提供されているComponentを設置しています。Player Enter Warp Portalはその名の通り、その設置されている領域にプレイヤーが入ってきたら、指定した場所にワープさせるという機能を提供するものです。要するに、床下に敷き詰められているそのワープポータルにプレイヤーがぶつかると、ワープ先である上空に転移するとかそういう感じにしているということですね。

名称未設定のアートワーク

ちなみにclusterのワールドでは「Despawn Height」というComponentも必ず配置しないといけません。これはそれが配置されている高さより下にプレイヤーが落ちてしまったら、スタート地点に強制的に戻すという仕組みを提供しているものです。Unityの仕組みだと、床がないところではプレイヤーはそれこそ無限の虚空を落下し続け、元の場所に戻ってこれなくなってしまうので、それを防ぐためのものだと思えばよいです。
このDespawn Heightを『映え下界DIVE』ではPlayer Enter Warp Portalの下に配置しています。なので、プレイヤーはDespawn Heightより下に行く前に、Warp Portalに接触することになります。Despawn Heightより下に行ってしまうとスタート地点である『天界』に戻されてしまうのですが、それより前に上空ワープするので、無限に落ち続けることができる、そういうことになります。

なお、実はSpawn Pointを上空に設置し、スタートしたらすぐに落下するという構成なら、Player Enter Warp Portalがなくても無限に落下し続けるようにすることは可能です。落下したプレイヤーがDespawn Heightよりも下に行ったら、強制的にスタート地点である上空にリスポーンするという感じで。
ただ、今回は2つの理由でそうはせず、Player Enter Warp Portalを使うことにしました。それを順番に書いていきます。

いきなり落ちると怖いだろぅ?

さて、スタート地点を上空にしなかった1つめの理由がこれです。ワールドにインしていきなり足場もなく落下し始めちゃう……それって怖くないですか?私は怖かったです。『映え下界DIVE』の作り始めの試作段階ではスタート地点そのものを上空にしていたのですが、デバッグプレイしてみるとちょっとこれはないな、と。
そもそもリアル世界で数百mの高さから飛び降りるということは人生で滅多にない、スカイダイビングとかバンジージャンプにチャレンジでもしない限り、もしかすると1度も経験しないかもしれない話です。そういう体験なのであればそれは、自発的に意を決して飛び降りるというプレイヤー主導の行為であるべきということに思い至りました。
なので、スタート地点は「安心して降り立てる場所」ということで、『天界』というミニステージにすることにしました。

落下した場所とワープ先を対応付けしたい

2つめの理由、それは落下した場所の真上の上空から、再度落下をさせたかったということです。

名称未設定のアートワーク-3

『映え下界DIVE』では東西南北に対応して春秋夏冬のミニステージを設置することにしました。『天界』の北からDIVEしたら冬のステージに、東からDIVEしたら春のステージに降り立つことができるようにしたかったということです。
これはPlayer Enter Warp Portalだからできることで、それぞれの方角に対応したWarp Portalを複数配置し、それぞれの転移先を各Warp Portalの真上に設定すればいいというわけです。Spawn PointとDespawn Heightの組み合わせだとそうはいかず、ある一定の高さより下になったら一律スタート地点に戻るだけということになってしまいます。それだと「方角によって、降り立つミニステージが変わる」といった面白さを演出できないですよね。

この「DIVEした方角によって落下し始めの位置を変えておく」というのことについてはもう一つ工夫をしていて、それぞれの方角のWarp Portalは2m間隔で別のものを並べるようにしました。例えば、南側からDIVEしたときに、東寄りの場所からDIVEしたときと西寄りの場所からDIVEしたときで、落下し始めの地点はそれなりに違っていた方が違和感が少ないです。どこから落ちても南側の真ん中あたりから落下し始めるのだと、落ち続けるという感じにならなくて「ああ、今ワープして戻されたな」という肌感覚が生じるとかそういうことです。
ただ、この複数のWarp Portalを敷き詰めて転移先をそれっぽくするのにも限界があって、例えば1m未満の間隔で敷き詰めると、プレイヤーがDIVEしたときに複数のWarp Portalにぶつかるということが起きやすくなります。たぶん、イベント発火はほぼ同時になるので、触れたWarp Portalからのイベントは体感的にはほぼ一瞬で順に処理されて、最終的な落下地点が決定されるとかそういう話にはなるのだと思いますが、まあ、あまり間隔を細かくしても無駄が多いとかそういうことですね。
何回かの試行錯誤の結果、2m間隔くらいだと落下開始位置の違和感もなく、複数Warp Portalを同時に触るとしても最大2つまでに抑えられるというちょうどよさげな感じになるという結論になりました。
ちなみに角っ子のWarp PortalはそもそもそこにDIVEすること自体が難しいので、あまり細かくしても意味ないかな、と思って大きいWarp Portalをそれぞれひとつづつ配置しています。ただ、この辺りはもうちょっと工夫の余地があり、『天界』のすぐそばの領域と、ちょっと離れた場所、かなり離れた場所という感じでWarp Portalを分けた方がいい気は今もしています。調整めんどうだからもうしないけど。

Unityでの落下についてのアレコレ

さてこうして無限に落下し続けることができる「落ちまくり」ワールド『映え下界DIVE』が完成したわけですが、しかしこの「落ちまくる」という「普通のゲームでそんなことせんやろ」というおかしなことになっているがゆえに、このワールドではちょっとした不思議体験をすることができます。これがリアル世界と異なるバーチャルならではの体験とかそういうことですね(違います)。
そういった不思議体験について、少し書いて終わりにしようと思います。

みなさんご存じかも知れませんが、リアル世界では重力のままに落下し続けると速度がどんどん上がって行って、それこそものすんごいスピードになるまで加速します。小惑星探査機が惑星の重力を利用してスイングバイすることで加速し、その勢いで太陽系の外側に向かって飛んでいくとかいう話もあるくらいですしね。
ところがバーチャルではそうはいきません。バーチャルというか、Unityの仕組み上の話になるのだと思うのですが、どうも速度の値には上限があるようなのですね。これは速度をプレイヤーのパラメータとしてなんらかの数値で管理している以上、そこに限界というものがあるのは仕方のない話です。
なので「無限に落ち続ける」ということがイコール「無限に加速し続ける」というわけではない、ということになります。Player Enter Warp Portalで転移しても、転移前の速度は転移後も維持されるようで、その結果『映え下界DIVE』では仕組み上は無限に落下して、ぐんぐんと加速することができます。ところがうまく落下し続けるとどうやら速度の上限に達してしまうことがあるらしく、気持ちよく落ち続けて加速していたと思ったら、あるとき突然初期の落下速度に戻るという体験をすることがあります。
はっきりとした条件は分からないのと、どうもVR版とデスクトップ版、スマホ版でそのあたりの上限突破のできる・できないが違うような気もするのですが……かなりレアな確率ですがその不思議体験を味わうことができたりします。

もう一つの不思議体験は「落ち続けていたと思ったらいきなり天界に逆戻り」です。こっちは落下し続けているとかなりの確率で体験できるし、理由もけっこうちゃんとわかっている話なのですが、最初起きたときはちょっとびっくりすること請け合いです。
最初に説明した通り『映え下界DIVE』ではDespawn Heightの上にPlayer Enter Warp Portalを敷き詰めているので、理屈の上ではDespawn Heightよりもプレイヤーが下に行くことはありません。ただ、それはあくまでも理論的にはという話で、落下で加速しまくった場合にはその限りではないということが起きます。
プレイヤーの位置というものはコンピュータが画面描画をするサイクルごとに計算しなおしているわけで、プレイヤーからすると自分が仮想世界を連続的になめらかに移動しているように思えても、実は1秒間に数十回の頻度で位置計算しなおされた結果に従い、ワープを繰り返しているという感じの方が正しい説明になるかと思います。普通はそんなに速く動かないので再計算された位置どうしの距離が微小で、その間をワープしていたとしても滑らかに移動しているのと違いが分からないとかそういう話ですね。
ところがこれが無限落下により超加速した場合はどうなるでしょう。そうですね。例えば落下を繰り返して重力加速しまくった結果、秒速340mのマッハスピードに達したプレイヤーの場合、コンピュータが位置の再計算を1秒間に30回の頻度でしていたとしても、1回の計算ごとの位置の差は11m以上になります。『天界』の床下に敷き詰めているWarp Portalの分厚さは5mにしてあるのですが、11mの間隔でワープするプレイヤーだと、Warp Portalに接触することなくその下に落下してしまう、その結果いきなり『天界』に戻されてしまうということが起きるとかそういうことです。

さいごに

ということでいかがでしたでしょうか。clusterでの「落ちる」ことを極めたワールド『映え下界DIVE』の仕組みとそこで体験できる事象をネタにして、ワープの仕掛け方法や落下速度のアレコレについてのウンチクを盛り込んでみました。さすがに「落ちまくる」ワールドを作りたいという方はいないと思いますが、何かの参考になれば幸いです。

さて、この「落ちまくる」ワールドを作る過程でさんざん「落ちる」を体験しまくった私ですが、その結果「落ちる」ことへの苦手意識を克服したかというともちろんそんなことはなくて、いまでもclusterのゲーム系ワールドで落下すると「ああああああー!」と思うことしきりです。しかしまあ心の中で「でも映え下界DIVEの落下に比べればたいしたことないしな」と思い直すことは増えたかもしれません。だからどうということもないのですが、人間、極端な体験を1度しておくと視野が広がるというか心持ちに幅が出るというか、まあ、そういうことはあるかも知れません。知らんけど。

ではでは!ENJOY!


この記事が気に入ったらサポートをしてみませんか?