PSF進捗まとめ #4

UI会議

これUIのデザイン決定したあとに描いてません?

3Dのモデルやデザインを考える上で、最も簡単なブレスト方法はVR空間にペンを持ち込んで「空間上に描く」ことです。このやり方はVRプラットフォームの概念に慣れていない人から見れば「バーチャル空間上でディスカッションするなんて新しい!」みたいな感じかもしれませんが、廃人慣れている人から見れば「いや、あっちに『行って』考えればいいじゃん」みたいな感じだと思うので難しいものですよね。

執筆現在のVRChatでは、インタラクトまたはピックアップ可能に設定したオブジェクトについて、手やカーソル(デスクトップモード時)を近づけた時に水色のアウトラインと事前に設定したテキストが表示されます。ただし、これはあくまでミニマルなもので、SF映画でありがちな「空間に情報がシュイーンと出て手でシュッ!とやるとシュイシュイシュイッ!ってなる感じのやつ」をやろうとすると、やはり自分で作るしかありません。

しかし、自分でUIを作るとなると、今度はVRChat本来のUIが強制的に表示されてしまうためかえって邪魔になってくるわけです1。なので、このときは「VRChatのUIと自然に馴染む『装飾』としてのUI」ということで、後述するツイートのようにオブジェクトの前面にピコッとアイコンが出てくる形に落ち着きました。本当は直方体の角にマーカーが表示されるタイプでもよかったんですけど、デフォルトキューブとイメージが被りそうだったのと、ピックアップ中のオブジェクトに常に直方体がかぶさって見えるのがたいそうダサそうだったのでなかったことになりました。


自販機

で、出来上がったやつです。前述のような「対象となるオブジェクトの角になにかを表示するタイプのUI」だとこういった小さいボタンにうまく対応できないので、結果的にこういうアイコンタイプでよかった形ですね。ちなみに、この自販機の本体(UdonBehaviorがついてるやつ)は自販機表面をビュンビュン飛び回ってる不可視のボタンひとつで、両手のうち近いほう(VRモード)または視線の先(デスクトップモード)の位置をもとにしてうまいことたくさんボタンがあるかのように見せかけています。また、出てくる缶2についてはワールド全体で缶プールを共有しているので、古い缶はときどきしれっと消えます。

実装面でいうと、このUIは1) 表示用のプレハブをInteractまたはPickup対象の子に配置し、2) UI表示用のUdonBehaviourをアタッチすることで実装しています。結果的にUdonの数が倍増するのであんまりきれいな実装ではないのですが、逆に今のUdonSharpには継承のようなきれいな実装をするための機能がないので仕方がないのかなと思います。アイコンの種類とか色とかはいい感じにマテリアルに渡してテクスチャから引いています。これ(分かる人には自明だし分からない人には分からないので)書く意味ある?

ちなみに、動画ではあまりうまく映っていませんが、取り出し口の「ふた」は缶が出てきた衝撃でプラプラするしなんなら手で押せます3。これは実際そんなにUdonを使ってはいないのですがこういう細かいディティールがあると「そこにある感」が出ていいですね。

この動画、「撮り方」をよくよく考えてみると例のアレの機能も同時並行で進化していってることがわかります。遍在、させたいですよね。


LC-3

VRコンテンツにおいて、銃というアイテムには魔力とも呼ぶべき魅力があります。極端な例をあげればただ銃を撃つだけのゲーム(失礼な言い方)まで存在するように、現実ではそうそうできない「銃を思う存分ぶっ放す」という体験は一般的に大きな魅力なのでしょう。かくいう私も、Half-Life: Alyxとか、Fallout 4 VRとか、PAYDAY 2とか、BONEWORKSとか、Skyrim VR(ただし弓)とかで計百時間くらいは撃ちまくっています。まあ、これを作らない手はないですよね。

しかし、一つ問題になってくるのがリロード方法です。上記のようなタイトルにおける銃のリロード方法は、コントローラのボタンを押すだけのもの(F4VRとPAYDAY2、どちらも非VRゲームからの移植なのと銃の種類がかなり多いので実装コスト的にやむなし)、本物の銃とほぼ同じ動作が必要なもの(BONEWORKSとH3VR、そもそもコンセプトからしてリアル志向なので妥当)、その中間(Alyx)がありますが、VRChatの場合はPickupの実装の自由度(うまく実装しないとフォーカスが銃本体に吸われてしまう)やコントローラごとの差異の吸収がうまいことできない4 5関係でこれらの手法はあまり安全ではありません。なのでLC-3では「弾を撃ち尽くして下に振り下げるとリロード、その後振り上げると装填+自動コッキング6」という無から弾が湧き出てくるメソッドになりました。まあ、そもそも呪詛もとい祝福の言葉が刻んであるような不思議銃なので、理由付けはいくらでもできます。

動画ではしれっともう片方の手でマガジンの底を押して装填していることもありますが、これはAlyxリスペクトというか、「直感的に操作できそうなことは全部実装する」の精神で実装しています。特に二丁持ちしてマガジン同士をカッと突き合わせて装填するのがかっこいいんですよ。本編ではたぶん一丁しか出てきませんけど。


電波暗室

「この部屋はダイナミックなライティングをガッチガチにやりたいなぁ」と思ったのでやったやつです。リプライの通りめちゃくちゃアドホックなやり方で実装しているので決して汎用的なギミックではありませんが、まぁこういう丁寧な実装が質の高い体験につながる7ので、やりました。


エレベーター

こういう動画を撮りたかったんですよ(話速1.10倍・高さ1.10倍・抑揚1.30倍)。執筆時点で300いいねがついているのですが、何に対する「いいね」なのか内訳が微妙に気になっています。

エレベーターの実装については、「実際にハコを動かす」か「動作音だけ再生しておいて、ドアが開く直前にテレポートさせる」の二通りがありますが、前者のほうがエレベーター外部の声や環境光の変化、エレベーターが移動することによるアバターやDynamic boneの「ブレ」によって上下移動していることを「感じる」ことができると思って前者にしました。実際のところこれはVR感覚ならぬ「VRC感覚」で、VRChatをプレイしたことのない人がはじめてこのエレベーターに乗ったら「なにこのガッタガタなエレベーターは」となることは確実なのですが、まあ、諸条件を考えるとどちらを優先すべきかは目に見えてるので……


神社

神社、いいですよね。境内の敷地面積の都合上、「Ennichi Playgruond」とは無関係の別の神社ということになりました。

たしかこれがルピさんファスさんと三人ではじめて動画を撮影したときだったと思うのですが、ファスさんが案外私と身長が変わらなくて驚いたり、一人で撮った動画を確認しているときにファスさんとすれ違ってビビったり、こいついつも面白い体験してるないろいろ面白い体験でした。


コンビニ

こいつらは一体何を撮りたいんや……

ちなみに、この入店音は1%の仮想のBGMのアレンジなのですが、これ自体が2009年に作ったゲーム「Daydream」のテーマ曲のアレンジで、これを2015年前後に作ってたゲーム(未完)のコンビニ入店音としてアレンジして使おうとしていたものを5年の時を超えて持ってきたものなります。使いまわし。


水着回

はい。


PSF進捗まとめ #3

いろいろな夏の準備も着々と進んでいたり進んでいなかったりしますが、とりあえず直近の進捗まとめです。

ちなみに、ワールドのリリース時期は本物の蝉の声と『本質的な』蝉の声が混ざっちゃうと嫌なので夏以降にリリース予定です(そもそも間に合わない)。


ポスター

某海の家の店主から「ヘイヨツミちゃん、あんたの夏のポスター私のところに貼らない?」と言われたので「制作開始のポスターも半分やっつけだしちゃんとしたバージョンも作りたいなぁ」ということで新規に制作しました。PSFの制作に際しては承認要求駆動開発(訳:Twitterに上げる画像や動画をチェックポイントとして開発を行っていく)を採用しているので、このポスターを作るにあたって床やら壁やら古き良き掲示板やらを作った形になります。その他のモデルについてはすでに作ってあって公開していないものを配置し、なんやかんやで計45万ポリゴンになったのをじっくりと焼き上げました。

夏といえば、頭蓋骨、拳銃、徹甲弾、3軸ジンバル構造、4人目の人物、不気味なほど青い空、「月」のシンボル、「BREAK THE SUMMER, BREAK THE TOWER, COMPLETE THE MERIDIAN LOOP」、ハイパースマートスピーカー、かわいいくらげのぬいぐるみですよね。

個人的には月をかたどったガードパイプがお気に入りです。現実の風景を再現する以上はオリジナリティーが出しづらいという問題があるのですが、こういうのがあるとウォーターマークとしてうまく働いてくれるので。


LC-3

まだまともに見せてもいない世界観を早速崩しにかかってますけど大丈夫ですか ハジキです。銃、いいですよね。前前作前作と比べると作風が違いすぎると言われればそれはそうなんですが、そう言われると前作は前前作と内容が正反対だし前前作もそれ以前の作品と比べるとまるっきり違うので人生そんなもんじゃないかと思います。

これらの画像はBlenderのCyclesでレンダリングしました。ブルームとかDoFとかもいい感じになるように入れています1。アバター部分に関してはこちらの資料を参考にしています。

Cyclesではレイトレーシングしてくれるので金属表面もきれいに描画してくれるわけですが、当然このモデルをそのままワールド(Unity)に持っていくとReflection Probeが映るだけでディティールが全部潰れてしまうので、ワールドに置いてあるバージョンはちゃんと塗ってあります。ちょっと待ってください、なんで「日本の夏」のワールドに拳銃が存在するんですか???

ちなみに、実はルピさんはこの銃を持てません(おててがちっちゃすぎるとかそういう問題ではなく、本質的に)。なので画像はイメージです。

特にネタバレにはならないと思うのでついでに言っておくと、表面の文言は「神は我々を祝福する」という意味になります。祝福、されたいですよね2


望遠鏡

望遠鏡も今後使う予定™なので「1%の仮想」のエントランスにあったものをアップデートしました。ちなみにこの望遠鏡は特定の製品をモデルとしたものではなく(そもそも天文は全然詳しくない)、いろいろなモデルをざっと調べてそれっぽく仕上げたものなので、天文警察の方はご配慮ください……。

ルピさんについてはアバターの改変差分データを持っている私が勝手に追加したもので、とくに深い意味はないです。かわいいかなと思って🐸


深夜のコンビニ

夏といえば深夜のコンビニでソーダ味の棒アイスの買い食いです(ほんまか?)。そんなわけでコンビニを一軒建ててみたのですが、ただ室内の様子を撮ってみても面白くないので平行投影でぐるぐる回してみました。平行投影、いいですよね3

よく見るとわかることですが、このコンビニでは棚に陳列されている商品のディティールは重視せず単に虹色で塗りつぶしています。こういう現実っぽいディテールを細かく描くのは例えば「1%の仮想」の「ハイパースマートスピーカー」のデータシートのように個人的にはわりと好きなのですが、実は今回は「最高の夏には『ことば』は必要ない」4というコンセプトのもとに極力フラットな表現に抑えています。

この動画では自動ドアは単にアニメーションさせているだけですが、実際にワールドに配置されるコンビニではもちろん自動でウィーンしてくれるようになる予定です5


水族館

夏といえば水族館でのデートです。まあ、VRChatだとカップルでワールドめぐりする人たちもいると思うので……。(カップルのために場を提供するワールド制作者の鑑)

この水族館はエントランスから6部屋+ミュージアムショップを通って戻ってくるというごく普通の構成です。ただし、描画負荷を下げるために極力2つ先の部屋が見えないように部屋や通路の配置を工夫しており、かつ「大部屋を斜めに突っ切るキャットウォーク作っちゃおうぜww」「順路のシメに巨大水槽ぶち抜きの通路作っちゃおうぜwww」といったアホ案を極力採用しています。あとで後悔するのは自分なのに。

ブログに書こうと思ってたことを先にツイートしちゃいましたが、この水族館ではよりリアルな空間を演出するためにVR空間で不要のはず(身体に障害のある方でもVR空間では普通に動けるので)のバリアフリー対策らしきものをしています。ツイートの画像では全ていい感じに隠れちゃってるのですが、実際は階段で高低差をつけている箇所にわざわざエレベータを設置していて、本物同様に昇降できるようになっています。少人数制作である以上は愚直にコンテンツ(=水族館)を作り込むだけではなくこういう脇道にそれたギミックを作ったほうがコンテンツの体験時間や満足度を水増し上げられると思います6

ちなみに、このあとのツイートで「魚群を作ってから水族館を作るまで2ヶ月放置してる」と書いてましたが調べたところこれは大嘘で、4月はじめくらいにはすでに水族館はできてました。単に進捗ツイートキュー(だいたい1ヶ月分くらいは常に持ってる)への追加が遅かったみたいです。てへ。


ダイダン

ダイダンって何ですか???

巨大な重機(しかも変形する)ってなにか興奮と恐怖心を同時にそそられるものがありますよね。全編にわたってそういうノリです。

この動画はレンダリングにめっちゃ時間がかかるのでファスさんと右のダイダン(だからダイダンって何ですか???)を除いた状態でレンダリングして、そのあとに右側だけ静止画でレンダーしたものを合成しています。もちろんデカブツの有無によって動画と静止画では色味が微妙に変わるので、うまい感じにブレンドして。

ちなみにこの動画で見えている「脚」は計△6kくらいです。ではそのように。