phi16です。Amebient Advent Calendar 12日目です。世界の話をします。
勝手にいくつかツイート引用したりしてますけど問題あったら報告ください。
事実
想定されている「初回の流れ」は、次の通りです。
- なんとなく遊びに来て、なんとなく楽器で遊ぶ
- 雷が鳴って驚くもまだ遊び続ける
- 謎の機械に気づいてうっかり起動してしまう
- よくわからず弄っていたら世界が水没してしまう
- わからないままに屋上へ行き、世界を眺める
- ロゴとポータルを見て終わりを理解する
- そして同時に「周回」を認識してもらう
つまり**「失敗」を意識することが前提です。そして「これはVRChatのワールドである」ので周回のコストは限りなく低い。これによって気軽に世界をやりなおす体験**をして欲しかった。これはVRChatの文脈という外枠があってこそ、ですね。
ここもだめだったか、次の世界で絶対沈ませないでやる!
— 猫屋敷やよい@VRC (@yayoi_vrc) July 19, 2020
これすごい好きです。人生で言ってみたいセリフナンバーいくつとかだと思う。
そして次回以降はいろんな細部に目が行くことかと思います。「終わらせない為に」。
- 初回の雷と同時にロッカーが開いてる、及び機械に電源が入っている
- 機械室のモニタには謎の割合が表示されている、200%になると危ない?
- コマンドが色々あって、
fan
だけ謎のパスワードが掛かってる
多分もっかい沈むと思う。そして屋上のロゴがロゴでないことを認識するのだと思います。
そしてキーボードの打ち方がわかるようになったら、謎のパーセンテージが上昇しなくなることがわかるはずです。
これで、終わりです。
設計された体験は、ここまでです。その先は無いのです。
目的
何故こうなったのか、何がしたかったのか、というのは… 比較的単純で。
「沈んで終わる」のは、世界を終わらせて欲しかったから。
「沈まないルートがある」のは、自由に演奏をしていて欲しかったから。
この2つはちょっと方向性が違うわけですが、らくとさんの記事を考えると面白い言語化が出来ました。
まずAmebientは、音楽体験の一種、です。しかし、これは二層の音楽体験を同時にやっているんですね。片方が「世界としての音楽体験」、もう片方は「楽器としての音楽体験」です。
これらがそのまま2つのルートに対応しています。楽曲は始まって終わるので、世界は終わらなければならなかった。音が無くなることが終わりではないし、始まりでもない。「始まりの音楽」から「終わりの音楽」へ至る、という一段階上の音楽、です。そうなるように設計された受動的音楽体験。
そして私達が自由に演奏しているあの領域は間違いなく能動的音楽体験です。だけどそれが外枠によって閉じてしまうことはその能動性を裏切ることになってしまう。だから能動的操作によって体験を続けることができるようになっている、ということです。これによって「外枠を破る」という行為にもなっていますね (それ自体が設計内ではありますけど)。
まぁつまり、ここまでは在るべくして在るルートだということです。
考察
対して、色んな方々の追い求めているようなエンドは「そうではない」のだとは思います。
これは結局「文脈の違い」です。Amebientは謎解き文脈ではないんです。
…とはいえ、そういうルートを考えていたことはありました。結構悩んでいました。
初日の記事にも書いたように、「それなりの因果」が無いと世界は救えないんです。救ってはいけないんです。
まぁ最初に訪れた時にはきっといくらでも因果が潜在しうると思えることでしょう。でも段々紐解いていくと… 多分するっと解けます。そうなってるつもりです。
例えばあのメインパネルが意味不明なのは、それでいいんです。意味不明であっても高々モニタの色くらいしか変わらないことはわかるのではないでしょうか。それが因果の限界です。
視えない因果が存在しないことを基準として作られているので、ないものは、ないんです。そういう文脈なんです。
視えない因果が実在する世界がこのVR空間だというのも然りです。でもそれでは作者が圧倒的優位な立場に成り得てしまう。それはフェアじゃないと思う。
あの機械類は何故あるかというと、「Visual側面の提示」と「技術レベルの提示」が目的です。Soundが出来る世界なので折角だからVisualもあってほしいよね、っていう話。概念的にはVJの文脈です。
そしてあのメインパネルの構造は実はニューラルネットワークを模していて、そしてライフゲームをする為に設計されています。monitor 2
で出てくるやつね…。これはあの機械単体で (理論的には) 任意の計算が出来るっていう、わかる人にはわかるタイプの小ネタです。作ったのは私です。
まぁ、だから世界に干渉する程の強度が無いんですよ。
精霊の箱みたいな解釈が出来ていたらまた違っていたのかもしれないね。あれは個人的に好きです。
とは言え最初はこうじゃなかった。配電経路の操作盤みたいなものを考えていた。パズルみたいになっててね、うまいことやると6つある遠景のビルに電力を供給出来るみたいな。電力供給に成功したらビルが崩壊するので残った鐘が現れて、最終的に空が晴れる、みたいな。
考えたけどやっぱり解釈が無かった。よくわかんなかった。それに悲しい話としてはVRAAの締め切りがあったので「どこまで行けるか」には結構制約があった。
因果が必要、という話で「大きなアンテナ」をどっかに置いておく話もあった。でもすぐバレてほしくはない。隠すには「隠す場所」が必要で解決にならない。水中に置いといたら壊れちゃいそうだし。
あと例えば「楽器の配置」とかは純粋な能動的体験を邪魔してしまいそうで良くないな、という気持ちがあった。音楽体験としての軸はあんまり揺らいでほしくなかった (とは言え接続できたほうが因果は綺麗でしょうけど)。
何よりも「謎解き」として成立させるには快適に苦しませる必要があって、VRChatの様々な層を快適に苦しませるのは厳しい、ということはその頃感じていたので、そういうことはしない方が良いと思った。
Amebientは全面にpositiveな作品でありたかったので、まぁあの謎キーボード配列くらいが限度でしょう…。
あれは「最初は誰もわからない」かつ「わかると誰でもわかる」んです。前者が割と重要で、見た瞬間「またアレか…」みたいな気持ちになると悲しいと思うし。後者は後者で「知らないとわからない」のは嫌、ですよね。ですよね?
まぁこれに頭使う要素は無いんで私は謎だとは認識してないですけど…。でも丁度良かったんじゃないかと思う。
代わりに悪魔の証明みたいな側面を持ってしまったのは申し訳ないやら残念やらですけど。「フェアでありたい」という気持ちをうまく伝えたかったですね…。
amebient存在するかも分からない雲のない空を求め続けている
— rocksuch@(ロックサーチ) (@rocksuch) July 27, 2020
ちなみに海外の方から幾度かDMで「ヒントちょうだい!」って言われたこともあるんで根本的に伝わってない感はあります。うむ。難しいね。
まぁ「ここは謎解きではなく音楽を楽しむところなんだと思った」みたいな発言もいくつか観測しているので全くの意図通りにならなかったわけでもない。
存在しない結末
まぁ「存在しないエンドを追い求める」感じになってしまったのはTwitterに流れていた謎の情報に起因するところもありそう…です…。
まぁなんかもっと𝑰𝒏𝒕𝒆𝒓𝒏𝒆𝒕うまくなってほしいと思うことは多々ありましたが。
雨の妖精をなかまにして結界を発動してもらうことで月光エンドに行けます #Amebient pic.twitter.com/TfPlIGZrQB
— Cap.🌘 (@CaptainAyakashi) July 27, 2020
共存エンド #Amebient pic.twitter.com/GLuXJ5zny9
— amanek (@amanek_) July 28, 2020
Amebientをパブリックで開いてたら縁があって皆さん来てくださって色んな終わりを見せて頂いた
— rocksuch@(ロックサーチ) (@rocksuch) July 27, 2020
もしかしたら二度と見れないかもしれない…
とても素晴らしかった…
これからもあの雨雲の先に月の幻影を見続けるんだろう… pic.twitter.com/YiAXgiZ6la
VRC
— KL (@KLjp01) July 27, 2020
Amebient の月光エンド見れました!
めちゃくちゃ良かった pic.twitter.com/nYoTnAtDyI
— fotfla (@fotfla) July 30, 2020
…これは特殊な文脈があってですね。2018年8月の某に起因するものだと思うんですけど…。
アバターにワールド座標固定でモノを仕込むっていう… 文化が。一部にあってですね。
「既存のワールドを上書きする」行為は良くないイメージを持たれてそうな部分ありそうですけど、まぁ作者の了解の上でやる分には色々出来てすごい良いものが見られるんすよね。そうなんですよ。
で、それをAmebientで展開した結果なわけなんですが、まぁこう、良いですよね。とりあえず。
VRChatのアバターが「アバター」に留まらないのはまぁ昔から御存知の通りかと思いますが、そういう点でこれもその延長線上だと… ちょっと厳しいか? でもこういうところがVRChatの良いところだと思うんですよね。私は。
そしてまぁ、その解釈として「救いの無い世界を自分の手で新たなエンドへ導く」っていうのもめちゃくちゃ良いと思うんですよね。私の出来なかったことなので。
勿論それは私の望むような「完璧な終わり」ではないわけですけど、これには「人」という大きな成分が入っているわけで。VRChatのメインコンテンツは「人」ですから。
それこそTwitterでこの話が広まるように。この主観性で成り立っている媒体が。
…まぁ、というわけで、「現実」を全て解説しました。これで以上です。
Amebientを今後どうにかする予定は無いのでゆっくりして頂いて大丈夫です。
似たようなモノ作る気もないし。作れる気もしないからね…。
私ももうちょっと自身へのハードルを下げておきたいんですよ…。
さて、以降、どうでもいい話をします。
実装
えー、世界をあるタイミングでぐっと変化させる必要があるわけですが、それは任意のタイミングで行えるわけではありません。音楽と繋がっているので。
Amebientのリズムの周期である128拍の切り替わりタイミングで丁度世界遷移が起きるようになってます。が、これは他人と同期しません。完璧な同期は諦めるとしても、大まかには合わせたい気持ちがあります。
というわけでAmebientの遷移条件は次です。
- 32拍目から64拍目以内に、世界遷移条件を達成するとフラグが成立し、masterから全員に伝える
- フラグ成立を受け取ったら次の128拍目で遷移する
0拍目にしないのは「masterでは2拍目だが他の人は126拍目」みたいなケースがある為。64拍目にしてるのはその逆に対応する為と、「条件が成立してから64拍くらいは待ってあげてほしい」という気持ちからです。同期を安定化させたいとかもある。あとこれは条件を曖昧にする効果もあって、「うっかり」度を増す結果になっていると思います。
ちなみに初回の遷移条件は「32拍中に雨粒によって鳴った音の数が125を越える」です。要は「楽器で色々遊んでると雷が落ちてくる」ということがしたくて、この数は実際に遊んで調節していました。
VRAA02の審査配信時に発動してもらわないと困るという点もあったので「めちゃくちゃ長く過ごすと見つかるギミック」ではない形態になってます。マジで完璧に作用してよかったね。
水没の条件は「ファンが強い状態で、32拍中に雨粒によって鳴った音の数が75を越えた状態で一定時間経つ」です。気持ちとしてはファンから出る空気が雨粒の代替として作用するので必要量が少なくなるというのと、2種類の気体 (?) が混ざっていろいろ大変なことになるんじゃないかなみたいなやつです。多分。
細かいことは色々違うんですけどまぁ十分条件としてね。うん。
そういえば条件からわかるように、「楽器を鳴らさない」ことでも世界を終わらせないように出来ます。でもこれは演奏が出来ないことを意味するわけで、消化不良エンドって感じでしょうか。
そういえばログのところにあるDropCount
っていうのがさっき言った「32拍中に~」ってやつですね。そこまで知りたい人はちゃんと見ているんだろうか。
この辺諸々はScenario
っていう名前のUdonが制御しています。どんな名前にしようかちょっと悩んでた覚えがある。
そんなこんなで世界状態の切り替わりが出来ています。
あとアニメーション系は…まぁそんなに複雑でもないか。遷移が確定すると時間が測れるのでいい感じにやってあげてます。2つの遷移は絶対に連続して発生しないのでゆるゆるとやってます。
あとはlate-joiner問題ね…。面倒なのはここかな…。
最初に初期化信号が来たタイミングで諸々情報が確定するならよかったんですが、まぁそうとは限らないので、任意の状態から任意の状態に遷移できるようにする必要がありました (でも過去に戻ることは無いのは前提として組んでいます)。
とりあえず「同期された世界状態とローカルの世界状態に齟齬がある場合」に諸々の状態 (ロッカーとか) をどうにかするようになっているっぽいです。
あと「遷移が確定した後にlate-joinした場合」も一応動くようにしてるつもりみたいなんだけどこれは絶対に間に合わないケースがあるので… 微妙なタイミングで同期がずれるケースが存在するような気がする…。
色々複雑にすればするほど考えられるフローが増えていくのでほんとしんどいですね。Amebientはマシな部類です。
何よりも様々なフローに対して「この場合はどういう現象が起きるべきか」っていうのを考えなきゃいけないんです。全て同期させるだけでは出来ないことがあるので。
まとめ
元々同期のしんどさの話を細かく書こうと思ってたんですけど、こう、世界自体の話を書く機会が必要っぽかったのでそうしてみました。
どこかで気が向いたらもうちょっと書くかもしれない… けど日が無い気もします。
…こういう意味でのセカイのあるワールドは… 色々と厳しいですね。でもぶいちゃだとやりやすい側面があるのは事実だと思うんですよね。少なくとも現実よりはな。
Amebientは舞台をめちゃくちゃ綺麗に閉じてるのでマシですけど、広げちゃうと綻びが起こりうる領域がどんどん出てきちゃってね…。
色んな媒体でのそういう表現、あると思いますけどこれは自由度との兼ね合いで。このVRChatのワールドとして (アトラクションではなく) 自然にセカイ的である空間の設計、うーん、うーん…。
いつか「救われる世界」を見てみたいですね。それはそういう願いを持つ人がきっとやるんだと思います。
おわりです。次回は機械類の話をします。