Imaginantia

思ったことを書きます

私とVRChat

私がVRChatに入ったのは2018年2月18日、だと思います (Steamの記録では何故か9日になってるけど)。 というわけで1年が経ちました。いろいろなことがあったので、いろいろ記すことにします。

私の記録なのでまず私の話から初めなければなりません。元々私がどういう人間かというのは結構自覚がありました。

  • 好きなものに「成る」タイプの人間
  • 無が好き

これは結構自分の行動や成果物に反映されています。さらにこの2つの性質を組み合わせると「私が無になろうとする」傾向があることがわかります。 人間的な要素を無くしたいと願った結果コミュニケーション能力が失われているわけですね。合理的だ。

というわけで、私の根源は、「無」なのです。結構気に入ってはいます。

さて、そんな私は昔から「もの」を作ったりしていました。昔からキャラクター的なものにはあまり興味がなく、幾何学模様や線だけで出来たゲームみたいなものをずっと作っていました。絵を描かない代わりにプログラムで全部どうにかしようという意気と、それを実現するある程度の能力はきっとありました。

そんな中でシェーダを見つけたのは2013年です。実は最初に書いたシェーダはProcessing上でのGLSLです。そしてその後Rendering Words with Two Trianglesに吃驚して、ちょっとだけレイマーチで遊んでいました。

f:id:phi16_ind:20190130024700p:plain
昔から虹色とAOは好きでしたね。どちらも「意思の無さ」という意思を表現できる媒体だと思います。

まぁ普段は別の環境でコードを書いていたのでシェーダ自体はそんなにのめり込んだりはしませんでした。今もしてないけど。 この頃は特にwonderflが活きていた頃で色んな作品を沢山見ていたものでした。儚いね。

さてそんな中、2015年に見つけるのがshadertoyですね。なんで時期がずれているのかわからないけど、まぁシェーダ熱が復活するわけです。 プログラムって書いていると考え方が上達するもので、昔よりはだいぶ自由にコードが書けていました。こんなのをつくったりしていました。

f:id:phi16_ind:20190130025719p:plain
昔から地面に不満はありました。でもこの頃はそれを治す能力はなかったかもしれない。

そして来る2016年のshadertoyアップデート。「1フレーム前」を得る方法の追加です。これはものすごい大きなことで、これについては記事を書いたわけですが、テトリスを作りました。

f:id:phi16_ind:20190130030155p:plain
これが今の私の力の基礎になっています。むしろもうこの時点で完成していたのかもしれません。

端的に言えば、「計算を行うループを回すシェーダ」と「その出力を使って画面を描画するシェーダ」を書くことで動いています。どこかで、聞いた話、なわけです。

さて、それでは本題に参りましょう。

出会い

2018年2月、VTuber黎明期でしょうか。ねこますさんの「あの感じ」がとても興味深かったので見ていました。そんな中この動画を見ます。

素直にかわいかったのはあるんですが、それよりも「手から唐突にチョコレートが出てくる」ところにめちゃくちゃ吃驚しました。吃驚したというのは、内部でどうなっているかわからなかったという意味です。 この動画には「実はチョコレートは受け取ったあと消えてしまったこと」がわからなかったので、そういう「物を渡す仕組み」があるのだろうかとか、色々妄想していました。

そしてその後見かけた写真がこれです。

これは結構衝撃で、というのも私はOculus Rift DK2を持っていて「VRはこんなものか」という気持ちがあったのですが、この写真にあるような「箒に乗って自由に飛べる体験」が得られるものだと思えなかったのです。DK2にはコントローラが無いから。 少なくとも私は「箒に乗って自由に飛べる体験」をしたことはありませんでした。めちゃくちゃしたかった。でもこの世界はこのbutadieneさんが管理している場所なようで、まぁ気軽に乗り込めるようなわけでもないのかなと思うわけです。

とはいえ、最早VRChatをやらない理由が無いのです。その世界に技術者が居るなら、その技術者を越えれば私も仲良くなれるでしょうか。そうしたらこうやって一緒に遊べたりするんだろうか、とか。


そしてとりあえず入ってみて、まぁ即座に「アバターを創らなきゃ」って思うのです。私は自分自身でしか居られない人間で、ロールプレイとかが絶対に出来ない、他者に成れないのです。デフォルトアバターに拒否反応が起きるので、どうにかしなければなりません。幸い、そこには方法があることを知っていました。そしてこれが出来ます。

この立方体は私です。先程の箒の写真を見た次の日にはこれでJapan Townに向かっていたわけです。こういうときの行動力はすごいですね。 ちなみにこの頃からシェーダを弄っていて、面内部は別世界が広がる、みたいな感じの見た目をしています。「無」なりに何か作ろうとしている感がありますね。

で、人が居る場所に行っても元々コミュニケーションとか出来ない私はのんびり佇むだけです。人々が活きているのを見ながら、どんなことができるのかなと観察していました。 特に変化していく虹色の羽を持っている人が居て、シェーダでアニメーションすればできそうだなとか。

そんな中話しかけてくれたのがuneekoさんという方で、その頃のJapan Townにかなり常駐していた方です。まぁ私のアバターに吃驚してもらえたのです。吃驚してもらえるかなって思ったので良かった。 そしてシェーダを自分で書いたよ、という話をしたら驚かれて、あんまりそういう人は居ないという話をしてもらえました。勝ったなって思いました。 その後 A Trip に連れてかれるわけですが、こういうことができるなら、本当にいろいろとできそうだと。 特にuneekoさんはモザイクシェーダを常に持っていたので「そういうことならできる」ということを知る大きなきっかけとなっていました。カメラ関連も教えてもらいましたし、何よりこの出会いに本当に救われました (人と会話するのが苦手なので)。感謝しています。

度々VRChatに遊びに行きつつ、ちゃんとした「人」に成るためにアバターを作ることを決意します。丁度その頃なんとなくでキャラクターデザインを描いていたものでした。

そして共にOculus Rift CV1の購入を進めつつ、出来たのが最初のモデル「Laine」です。

f:id:phi16_ind:20190130035814p:plain
まぁこう、趣味ですよね。完全に表現はしきれなかったけど。

ちなみにこの時点で時計がシェーダで出来てたり遊び放題やってました。そして延々とシェーダを作る毎日が始まります。

もうこの時点で「カメラを使えばシェーダでゲームが作れる」ことには気づいていました。そして見た感じではシェーダで出来たゲームのようなものが見当たらないことも。私はワールドを作り始めます。それが3月20日。 そんな中このツイートを見かけます。

即座に「ヤバい」と思いました。思いましたとも。本当に偶然、やみくもさんが同じタイミングで同じことを考えていたわけです。寝る時に吐き気がすごかったことを覚えています。シェーダでゲームを書いていた経験がある身として、後になって越せる自信はあった。けど、「はじめて」になりたかった。エゴですね。まぁ人間そんなもんでしょう。

そして私が幸いだったのは、既にJapanTownに入り浸っていてある程度人々と出会っていたことかもしれません。ライフゲームだけ作って、ワールドを開けてJapanTownの人たちに来てもらったのです。 で、驚いてもらえた。まず物が勝手に動くことがその頃には不思議なものでした。驚きを与えられた時点で私は勝ったのです。でも追い越されるわけにはいきません。

その後もいろいろ作り続けた中で、ある日受けた天啓が、ろくろ回しでした。

元々シェーダで絵を描く人たちはピクセル単位で実行されるフラグメントシェーダを主として遊び場にしていました。でもこのUnityに頂点シェーダがあるのです。それを何かに使えないかと妄想していたのでした。 そういうわけで、いろんなものが完全に合致して、完成したのがこれです。

そしてこれをfriend+で開けっ放しにしつつ、作業しながら誰か来ないかなとのんびりしていました。来た人には説明したり、その反応を見ながら何か面白いもの作れないか考えたり。

そうしていたら、skyphoenix8さん経由、shivainuさん経由で、butadieneさんに出会えたのです。

憧れてから1ヶ月ちょっと。私は技術勢の方々に出会えたのでした。

某所

最初の目標が達成されてからは作るものを考えつつも、のんびりとVRChatで、特にJapanTownのあのカオスの中で過ごしていました。たまに外に出てまたフレンドに会ったりする中、ある日sakura hirobaで出会ったのがkakigoriさんです。その後私のワールドに他の人達と一緒に呼んだとき、「空間を運営している」という話を聞くのです。 現実で見たことも見ようと思ったこともない空間。VRならどうなんだろうという興味で、私のシェーダが何かに使えるかもしれないという話題を建前に向かいました。

当時の私がどう思ったかは思い出せませんが、その後度々入り浸る場所になったという話はまぁ確かです。何よりもその場所に「漂う」ことが出来た、というのはあるのかもしれません。 あとkokoapiさんのアレがすごい面白かった。というか興味深かった、ですね。スクリーン上に現実が映るの、なんとも「逆」で不思議なものでした。

WebPanelが生きている頃はいくらかお手伝いをさせていただいて、このときはnaqtnさんが調べてくださったWebPanelポータルの情報に常々感謝していたものでした。 今でもちょこっとシェーダ作ったり、まぁなんか作ったり、何よりもそこに住んでたり、一番関わりの深い場所です。今VRChatやってる理由の9割ですね。

雨下カイトさん

このときの私は「シェーダでめっちゃ遊ぶ人」としてのんびりやっていたわけですが、そんな中VTuberである雨下カイトさんから、「360°動画をVRChatから流す仕組みを作れないか?」という相談を頂きます。これが4月4日です。

まぁ出来ることがわかるので、作りました。コレはその辺で適当に公開したりしています。たまにあるVRChatの360°放送はこれで行われているのかな?だったら嬉しいですね。

そしてカイトさんとのその後のやりとりで、「YouTubeのコメントを流せるWebPanelを作れないか?」という話を受けます。興味を持ってしまった私はこんなものをつくりました。

f:id:phi16_ind:20190130045715j:plain
円柱形に張り付いたWebPanel。その後多くの改良が入って…

これが私がVRoadCasterで活動をすることになった理由なわけですね。 元々はこういう技術系のサポートだけやってメインの番組構成とかは頑張ってくれ、みたいなスタンスで居ようと思ったんですが。ほぼ最初からそんなことはなく、裏方として企画とかの話も一緒に考えたりしています。WebPanelが死んでからはその辺の仕事の必要も無くなっちゃいましたしね。ちなみにたまに言及がある内製ボイチャはWebRTC(Skyway)+WebAudio+Vue(+Electron)で出来てます。WebRTC周りで唐突に音声が来なくなったりして未だに困ってます。

V-TVの企画をどうにかするのに正直なところ一週間の内の結構な時間を取られるので辛いお気持ちはあるわけですが (ちなみにこういう意見は私は直接言っています)、それでも2018年5月から今に至るまでなんとかやっているという点でほんとみなさまの頑張りだなというところです。

正直この回は本当に怖くて、色々な整備はしたけど本当に何か起きないだろうかとか心配で。私も色々弄っている以上責任は有るわけで… ほんと何事も起きなくてよかったし、良い結果になったようで何よりだった… ED Talk開始時に画面下テロップが映りっぱなしになってるのはそんな私の安堵による油断です。ごめんなさい。

まぁ、これもVRChatによる大きな縁だと思うので。色んなことがありましたし、だいぶ面白い経験にはなってると思いますね。人生いろいろだね。ほんと。

GPUパーティクル

元に戻って4月26日。darandyさんの持っていた「もの」が気になります。Neenさんの作ったGPUパーティクルです。きれいだった。GPUではなくとも大量パーティクルで綺麗なものは昔から知っていたけど、手で動かせるというのは知らない体験でした。やってみたかった。

ので作りました。

まぁ機構を再現するための知識基盤はこの頃には揃っていたんですよね。でもまぁ作ろうと思った次の日によく作れるものだね… そしてこれを元にはじめてのpublicワールドを作ります。publicワールドってなんだかちゃんとした成果っぽくて、憧れっぽいところありますよね。

結構な数の人たちに遊んでもらえたようで何よりでした。そんなこんなをしながら某所の人たちとのんびりすごしつつ、新たなアバターを作りつつ。

butadieneさんにGPUパーティクルのプログラムを教えているのもこの頃でした。というかGPUパーティクルを作るのが局所的に「流行って」いましたね。

私はNeenさんに拠ると「4人目」らしいのですが、ここには17人のGPUパーティクル自作者がいるわけです。十分やばいとおもいますし、良いところだなと、ほんと思います。

そんなGPUパーティクルは、状態保持を利用した力学的な動きをベースに動くものです。が、別にパーティクルとして出すだけなら状態保持は要りません。時間に依存した配置しかできないわけですが、それだけで出来る表現もあるはずです。 その頃はカメラに制約が掛かって、GPUパーティクルが「フレンド以外には見えない」状態だったので、特にアバター仕込みのイベント事には適さないわけですね。という意図の下で某所のイベントのためにつくったのが、これです。

派手ですね。ベースイメージは花火です。で、私だけではなくbutadieneさんnoribenさん飛駒タオルさんのパーティクル群、そしてヨツミフレームさんの縁日のある風景。ただただ最高でした。そういえば、私は「諦め」の気持ちで操作できないパーティクルを作ったのに対してbutadieneさんは操作できるGPUパーティクルを出していて、なんというか、助かった、という気持ちがありました。やっぱり力学的に動くものは自然に見えて「良い」んですよね。あとamausagiさんの言った「人工多幸感」という単語、めちゃくちゃ好きです。

そしてその一週間後に行われたのが「JAPANELAND花火大会」でした。この時期は「人を呼んで演出を見せるイベント」の黎明期、でしょうか。

確かこれはTRANCE_MODEさんのパーティクルのヤバさが始まりとなったイベントだったと思います。そういうパーティクル演出は私には無縁という気持ちを持っていたんですが、まぁ一度作ってしまったわけで。私もやるしかないな、と思って演出側で参加したのでした。GPUパーティクルの「自由さ」をそのまま活かしていこう、という気持ちでつくったのがこれです。

花を作る発想はVoxelKeiさんが開いてくれたテスト用ワールドで見た「足場につながる長い軸」から得たものでした。これも天啓かもしれませんね。このときは前回の「操作できない悔しさ」を元に、「自分に向かって飛んでくる花火」を作りました。これなら多少の操作ができつつ、同期ズレや操作ミスの怖さがありません。

いい感じに、驚きと美麗さをつくれたと思います。よかったですね。

そういえばパーティクルの組み方の解説を書いたらfotflaさんが再現してくださったのにものすごい驚きました。

スクリーンショットとしてコードを貼っていたので (ちなみにコピーさせないためとかじゃなくて、シンタックスハイライトがほしかったから) それをここまで写してくれる人が居るものかと。 そういう世界なのだなぁと感動したし、すごい安心感もありました。技術は私だけのものではないわけですから。FuwaParticleの配布もよかったなと思います。教育的なコードではなかったので後悔もありますけどね…


そして訪れる2回目の某所のイベント。開催前にテストで見させてもらった何も無いワールド。何を見たいだろうかと、無言で佇んで。唐突に降りてきた天啓が、あの観覧車、です。

で、butadieneさんの雪と合わせてみた瞬間、「完成」してしまった。終わってしまったのです。そう。終わったんですよ。

この時期が終わりで、そして始まりです。その想いと共にメモリアルを建てました。それがVacuous Parkです。

元々RezPS2版を買った程度には好きで、Area Xも何度もプレイしたものでした。それに自分の力で近づけた、という点でだいぶ感動がありました。今でもここは私のホームワールドです。

無を背景にそびえ立つ観覧車。輝く金の建物と光。あの非実在感が、とてもよいものだったと、おもいます。

シェーダの使い道

次のシェーダの使い方を考えているときにTwitterでちょっと話題になっていたのが4次元図形の話でした。作れると思ったけどまぁそこまで面白いものではないと思っていた。でも小物として丁度いいかなって思ったのですね。その頃はbooth販売も活発で、一度なにか置いてみてもいいかなとか。そしたらこれですよ。

この超雑説明文でバズるんだから面白いものですね。人々は四次元が結構好きということがわかりました。


それはそれとして、その頃現れたのがあの、ヨツミフレームさん「1%の仮想」展です。

見た目に陽には現れない、表現としてのシェーダの側面を強く用いていて。技術的には理解できるけど「嗚呼」という気持ちですね。元々私もシェーダ作品で美術館とか作ったら楽しそうだなぁ、とぼんやり思っていたのでそれがそのまま出てきた感じです。

技術の発展途上感とか、能力不足感とかが一切無く、私のたまに言う言葉であるところの「歪み」が一切ない展示。最高じゃないですか。最高ですね。

これを受けて、意思を読んで、答えを返そうとしたのが、Vacuous Park: Alterです。技術解説は書いたものの、私はこのワールドの意思の説明はほぼしていません。折角なのでちょっとしたお話を置いておきます。

「壊れた観覧車」は負の象徴で、「空虚ながらに在ったモノ」すらも失われた世界、なのですね。そんな「痛み」や「恐怖」を、表現したかったのです。多分ね。 そしてあるところに書いてある文章は、要約すれば「世界はバーチャルで出来ている」、でしょうか。例え空虚な存在であったとしても、その痛みや恐怖はきっと本物なのです。特に感情みたいなものは実質性から来るものです。 まぁそんなことを表現する「実験」として、出来たワールドがアレなのでした。少なくとも自分には結構刺さるので良かったです。

そしてこのヨツミフレームさんの流れは今もまだ続いていて、新たな合同アート展覧会「Beyond Reality」が行われています。

で、まぁ、参加しています。今現在私は2作品を展示しています。(追記: 3月23日に3つ目ができました)

私は元々可視化とかが好きな人だったのでこういう発想に至ったのかなと思います。一番最初に構想していたものをちゃんと表現として落とし込めた (と思っている) ので、まぁ、嬉しいですね。

この2つの作品はヨツミフレームさんの作風をイメージしたものだったりします。とは言え私の中のイメージなのでどう見えるかはわかりませんけれど。どちらも見た目楽しく、中身深く。何かの本質を覗けるような展示。中身については私の知識が偏っているせいで学術的なお話に近い内容なわけですが、まぁそういう「楽しさ」を伝えられたらそれもいいな、って思ったりします。

ちなみにまたちょっとしたお話をすると、「暗号という恐怖」は「この方針があっているのかどうかの区別がつかない」ことを含めた恐怖です。そういえば The Witness で数秘術の話をしたりしていました。惑わす知識というのは本当に怖いものですね。特に裏の3文字は「答えが無い暗号」として設計したものです。「CAT」の3文字なんて、偶然で出現しうるものではないでしょうか…?(まぁわざとなんですけど)

「非観測的観察」は作れるなと思って作ってみた程度で、あまり意味を込めて作ったわけではありませんでした (まぁ最初から意思は伴っているんですが)。モデル化ってとても楽しいですよね。自分だけの好きな世界をつくっていいんです。

展示当日に様子を見に行ったら「非観測的観察」の生んだ多世界性が私の想像よりも強かったことを知りました。全てが不確定な状況で情報を確定させるゲームが出来ていました。私はちょっと悩みつつもそんなに時間掛からず解けたわけですが、この問題はこの展示の理解によって辿り着ける最終到達点になってくれそうです。私が意図したわけではないけど、そこそこ重みのある展示物になってくれました。とてもうれしいですね。

そういえば「暗号という恐怖」では本質的ではない面倒さが現れる箇所が複数あります。その中でも特に大変なものがあるんですが、実はその労力を費やさずに解を出す方法があったりします。とはいえ、これは私が知識を持っているから言えることなので、これもまた非対称性。興味深いものです。あ、ちなみに言ってくれればその労力を省略しますよ。(追記: しました。)

展示というのは見る人が居て初めて成り立つので、やっぱりたくさんの人が来てくれるというのは、とても、とてもうれしいことでした。そして深いところまで見てくれるのは何よりの幸せですね。「終わり」をまだまだ待っていますよ。


9月の同時期には点群の話もありました。Twitter番匠カンナさんら複数人が点群を点群として表示したいという話をしていて、できそうな気がすると思ったので作りました。

なんというかこう、ひどいですよね。「横から唐突にすみません」というのが示している感じありますが。殴り込んでる感じ。 しかも結局殴り込むだけ殴り込んだ後、私はVRChat以外での作品を作っていて今に至るまでも放置のままなんですよね。ひどいね。

それでもこれをちゃんとした表現に昇華してくれました。

こうやって誰かの表現のための技術になれるのはとても有り難いですね。マジで。

新年になって天啓を受けて作ったJust a canvasもそういうところがあります。

私自身は絵を描けないけど、誰かが絵を描くための基盤になれたなら。それはよかったんじゃないかなって。

まぁ、VRChatをVRChatとして遊んでいた期間は前半だけで、残りは完全にシェーダの遊び場(と某所に住み着くため)としてやっている感じです。しかも延々と遊び続けているので終わりが見えません。まだ私にできることを出し尽くしてないと思っているので、これからもきっと変わらずにやっていくのだと思います。そろそろ新しい分野を覗きつつありますけどね。

こう見ると本当にいろんなことをやりましたね。思ったことをまとめられるほどまとまったことをしていません。ただ、VRChatそのものというより、その周辺であったこと。特にのらきゃっと周りの事象を受けて「創作に向き合う姿勢」みたいなのを考えることが出来たのは大きな点だったかなと思います。みんなものらきゃっとワールドに取り込まれよう。

あと傲慢な話ではありますが、シェーダを書ける人がいっぱい居るおかげで私は所謂シェーダを書かなくて良くなりました。ついでにもっと高度なシェーダ遊びをしてくれる人が居てくれると私はもっともっと高度なシェーダ遊びをすることができます。同じことを思ってくれる人が居たらとても嬉しい。その為にシェーダ周りを色々教えようという気持ちもありますし、数学がわからないという話を受けて記事を書いたりもしました (まぁ私の考え方が抽象度高めなので伝わりにくいと思うんですが…難しい)。プログラムはちゃんと意思を持って書けば書けるので (意思があるのに書けないなら人に聞くのが一番です。技術不足は勿体無いのです) もっと書く人増えてほしいですね。

そういえば記事を書く時に敢えて名前をできるだけ載せるようにしてみました。流れで出てきた人を書いた感じなのでまだまだ名前は挙げ足りないですけどね。見て分かるように、私の作ったものは私だけから出来たものではありません。天啓が半分で他人の影響が半分、私はただ技術を持っているだけです。人の居るコミュニティに属せていることそのものが、とてもありがたく、常々感謝しています。

それこそ私がたまに自称している「バーチャル一般人」の存在はとても重要で、作品は鑑賞者が居なければ意味がないのです。VRChatには本当のバーチャルの住民が結構居るわけで、その存在によって創作者がちゃんと息ができるようなところがあります。私もちゃんとバーチャル一般人になりたいんですが時間が足りないよね。まぁ時間があったら物を作ってるんだよね。

これからもバーチャル世界の存続と発展に期待しています。

補足: 私の1年