UnityわからんマンがVRChatの自作ワールドで昼夜を表現する脳筋な方法
VRChatに時間経過による昼夜の変化をごり押しで実装
当初このサイトを作ったときは1ヶ月に1件くらい記事を書くつもりだったのに結局年に2回も書けば上出来になってる昨今、いかがお過ごしでしょうか。
さて、最近はVRchatなるものを楽しんでいるわけですが、
このゲーム、Unityで作った自作のアバターやワールドをアップロードして楽しむ機能があるわけです。
元々minecraftなんかが好きだった自分としては自分のワールドに他人を招けるのは魅力的なので、アバターいじりはそこそこに日々新しいワールドのギミックなんかを考えています。
ただ自分はUnityわからんマン(ついでにBlenderは親の敵マン)なのでエモいワールドとかは作れないわけです。
その自分が精一杯無い頭絞ってワールドに昼夜の概念を作ろうとした結果がこちらです。
特に告知してなかったけどVRChatの新しいワールド作りました。
「Just 遭難」です。時間経過で昼になったり夜になったりします。https://t.co/LNDqb868ya pic.twitter.com/mYnpqNhJ06
— あなご先生@三勤交代 (@anagot) November 19, 2018
もともとは「Instant Good Day」というアセットが昼夜のアニメーションができるということでこれをVRchatで使おうと購入したわけですが、
購入してからこのアセットがVRchatでは使えないスクリプトでアニメーションされていることが判明したのでわりと絶望した次第です。
ただこのアセットから学び取れたこともあります。
このアセットのスクリプトは巨大な球体の内側に太陽と月の板ポリと星空のパーティクルを貼り付けて回転させつつ、合わせてライティングやskyboxのなんやかんややパーティクルの透明度を調整することでいい感じに昼夜を表現していることがわかったからです。
ならばこれを簡易的にUnityのアニメーションで再現してしまえ、ということで作ったのが上記ワールドとなります。
せっかく買った上記アセットなので太陽や月の板ポリだけでなく地形も含めてサンプルを流用することで40ドルのもとを取ろうという魂胆で作成しています。
実際の構造としては内側に太陽と月を貼り付けた直径10kmの巨大球体がゆっくり回転し、夜になるとパーティクルが光るだけです。
ライティングやskyboxのなんやかんやはいい感じにエモくしつつチャットの邪魔にならない程度に視覚的な五月蝿さを出さない(しばしば、エモいワールドは視覚的に五月蠅かったり一部アバターの発色が狂ったりする)なんていう神調整はできないし、そもそもよくわからんので、Unityの標準skyboxそのままに任せています。
リアルタイムのライティングは重くなるらしいので軽くするために設置物はほとんど置かず、難破船は背景と割り切ってコライダーすら設定していません。雲も用意しませんでした。
結果として20人くらいなら収容できなくもない負荷に収まったのでPublic化申請を行いました。
現状、30分で太陽が1週するように調整してあります。
特に他のギミックはありませんが無人島で助けを待ちながら沈む夕日(妙にでかい)を眺めたい方は是非おこしください。
月の出 最高に頭悪い感じがして好き。ここ地球じゃねえだろ。
広告