見出し画像

clusterワールド制作記録【倉須田市鬼糸巻海中公園】

降り注ぐ 降り注ぐ 光の雨が降る
傘を差す 傘を差す 雨衣水を求めて

Water Music #123 "Aurelia"

どうも、カティアです。
ここ最近clusterのゲームワールドに関しての話題を耳にして、結局アスレチックが一番強いのではと思ったので、ここ最近のclusterのバージョンアップ総ざらいも兼ねて、昔作ったワールドを更新しました。
大体3周年なのでリニューアルにもいいかなと。


◆光と影が降る海🔦

上から見た全景

今回のモチーフは漁礁。規模は旧糸巻公園の中央デッキより広い40m四方で、所狭しと人工漁礁や消波ブロックが置かれています。そして浴びせられるコースティクス。

今回のコースティクスはこちら。アバターに当たった際の表現が気になったのでアバター系のレイヤーをプロジェクター対象から除外しています。
なお、V008で追加された「オブジェクトで囲った部分に投影するタイプ」は必要なリアルタイムシャドウが実装されたことでclusterでも使用出来るようになりましたが、PC版のみ動作なので注意です。

写真だと少し分かり辛いかも

そして電脳遊漁船に続いてリアルタイムシャドウの恩恵である、魚影が定期的に映りこみます。リニューアル前から頭上を通過するマンタはいたのですが、当時は影を実装できませんでした。

◆水中を跳び回る🤿

一件ジャンプ力を上げたように見えますが…。

これまで水中表現としてはポストプロセッシングやコースティクスの他に、歩行速度を下げてジャンプ力を上げる、などがありました。
ですが、今回は…。

ClusterScriptのsetGravityがベータを抜けたので、これを使っていきたいと思います。重力加速度の初期値は-9.81ですがこれを-3まで下げます。

さて…ClusterScriptから逃げ続けたツケで未だに扱えないので、モジュラー式の支援ツールに縋ることに。これで簡単に…とはいかなかった。
CollisionもOverlapもベータなので、どうやらプレイヤーとの接触を検知できない。そしてsetGravityは1アイテム当たり毎秒10回程度という制限もあるので、フレームごと(毎秒20~90回)に割り当てるわけにもいかない。

//画面更新(毎秒20-90回程度)のタイミングで処理します。
$.onUpdate(deltaTime => {

//1:フラグを準備する。
$.state._1_flag = "OFF" == "ON";
$.state._1_data = -3;

//2:一定時間ごとにフラグをONにする。
let _2_elapse = ($.state._2_elapse ?? 0) + deltaTime;
if(_2_elapse > 0.5){
$.state._1_flag = true;
_2_elapse = 0;
}
$.state._2_elapse = _2_elapse;

//3:フラグのON/OFFで処理する。
if($.state._1_flag){

//4:このアイテムの周辺にいるプレイヤー全員を取り出す。
$.state._4_players = $.getPlayersNear($.getPosition(), 3);

//5:複数のプレイヤーを1人づつ処理する。
for(let _5_o of $.state._4_players){
$.state._5_player = _5_o;

//6:プレイヤーの重力を変える。
if($.state._5_player == null){
$.log("★★プレイヤーが取り出せていません。>>>「6:プレイヤーの重力を変える。」");
}else{
$.state._5_player.setGravity($.state._1_data);
}
}

//7:フラグをON/OFFにする。
$.state._1_flag = "OFF" == "ON";
}else{
}
});

ModularCSが吐いたコードを見よう見まねで改造、0.5秒ごとにスタート地点周辺のプレイヤーの重力加速度に干渉します。一度に20人とか転送されてきた場合は流石に対応できませんが…とりあえずは大丈夫でしょう。

登れる高さは1.5m、近くのブロックから跳べばゲートにも登れる。

そして今回はよじ登りを実装、低重力と合わせてジャンプ力の設定を上げなくてもこの高さまで登れます。

◆変わらないもの⛲️

リニューアル前からいたナマコやクラゲは続投です、VRMSpringboneで揺れるアイテムは最近扱っていなかったので、また手を付けていかねば…。

最近アノマリー撮影YouTuberゲーでも見るタイプのポッド

そしてWater MusicのMVでよく降ってくる水中ポッド、これもこのワールドの出身です。当時は他のワールドへ飛ぶポータルでした。

◆BGM🎧

折角リニューアルするのでBGMもマンタに。ちなみにMobula(イトマキエイ)は何と№9!遠い昔の話です…。

◆光の雨🌂

さて……今回はこのワールドでお題に参加です!

…もはや雨の届かぬ、水中に沈んだ公園に何が降る?差し込む陽光?魚の影?あるいは頭上を跳ね回るプレイヤー?

数分おきに水面に向かって上昇していく、プランクトンの青い光。

雨は上から降るとは、限らない。このワールドは6分ごとに、プランクトンの日周鉛直移動による上向きの光の雨が降ります。

AureliaのMVでは海月天文台を臨時で改造してパーティクルの雨を降らせましたが、今回はついに常設の実装となります。
光が目立つようにワールドをもう少し暗くする、もしくは降雨中のみ暗くしてもよかったのですが、そこまでするとワールド自体のコンセプトが揺らぐので、また気が向いたらということで…。