XaiJu
No
No

fanbox


ワールド制作の中継2025/6/29

前回までは外装を作っていた所までを書いたと思う


あれから一応いくつかエリアも配信外で追加したりはしていたのだけれど


そして今回書いていくのはシステム面での中継。


最近VRCLightVolumeなる物が追加された事を知り、どうやらそれはリアルタイムライトとは違い、明るさや色位置などの情報を3Dテクスチャ成る物を使ってシェーダーに伝える物らしくかなり軽量なんだとか。


そこで導入を検討したのだけれど、ここまで悪戦苦闘する事に成るとは…


まず最初に思いついてやってみたのは細かく分けたライトボリュームを小さいライトの代わりに置いていこうというやり方。


そううまくは行くはずも無く。


なんでもVRCLightVolumeとやらには32個までという制限があるとの事。


なるほどなるほど…?


しかし、VRCLightVolumManagerには32個以上のボリュームが登録できる前提の様に成ってる。


という事はたくさん置いて、VRCLightVolumManagerの中身をクリアして新しくリストを渡せば良いんじゃないか?


これが長旅になる原因となった誤解だった訳だけれど


その考えに沿ってシステムを設計していくことに



これは出来ないとも知らずに(無駄には成らなかったけれど)ライトボリュームを大量に配置しまくっている様子。


システムの設計としては

トリガーとなるコライダーに侵入した際にマネージャーのリストをクリアにしてから、あらかじめ作って設置してあるライトボリューム一覧のPrefabをリストとしてVRCLightVolumManagerに再度割り当てるという物。


うんーうまくいった…?

(frame embed)


この段階ではそう思っていて、そう思っていたうえで

もうここまでライトボリュームを大量設置

と、

(frame embed)


とか抜かしてた。

そしてVRCにアップロードしていくとある事に気が付く。


あれ、なんか光ってない所がある?


ぼくはプログラミングは殆ど分からないのでGPTに設計や設計思想を伝えて改善改良を重ねて製作していくスタイルでシステムを設計してるから、単純に設計がミスってるのかと思ったけれどどれだけやってUnity上では動作を確認できてもVRChatでは動作が違う


これはどう考えてもUnity上のVRCLightVolumManagerの動作とVRC上のVRCLightVolumManagerの動作が違うに違いない


ちなみにここまで5月22日から6月26日までエルデンリングをやりつつも起きている間は大体作っていたので誤解の為に相当の時間を費やした事に成る


そしてよくよく調べてみるとUnity上とVRC上では動作は本当に違う様で、まずVRCLightVolumManagerの32個の最初に登録したVolumeは固定で、VRCLightVolumManagerは3Dテクスチャのテクスチャアトラスを作成するからVRC内ではアトラスの作成は行えず、32個以上作っても無視されるという事らしい。


うんうん、僕が作ったツールは一体…


じゃあどうしようかと考えた訳だけれど、配置情報自体はもう有る、そして、元々Prefabをコピーして置く予定だったから構造自体も割と堅牢な作りになっている。


じゃあ設計として


まずライトボリュームのプールを作っていく


例えば色々な光り方をするライトボリュームを作っておいて

PointLightVolume

+LV01(ライトボリューム)

+LV02(ライトボリュームの複製)

WallLightVolume

+LV01(ライトボリューム)

+LV02(ライトボリュームの複製)

こんな感じで使う分だけライトボリュームを作っておく


そしたらそのプールに有るライトボリュームをある分だけ順に割り当てて動かしていけばいい


このライトボリュームを動かすとすると

現状の構造をそのまま使うなら、位置情報自体は既に設置してあるライトボリュームの位置を使えば良いから、その位置、回転、拡大縮小をLV01から桁以降に順々にコピーしてやれば、エリアのトリガーにプレイヤーが侵入した時に自動でライトボリュームが配置されるから32個制限を突破できるのでは?


(frame embed)


そして完成したのがこのツール、正直よっぽど膨大なワールドを作るとかでなければこんなシステム使う事も無く作りが複雑にならざるを得ないから他の人に扱えるかどうかは分からないけれど32個制限の中で動かせる最良の選択?


はい、そして結果として2日程でこのストックして有るプール内のライトボリュームの位置を変える事で1エリアのボリューム数が32個に収まるならほぼ無限にライトボリューム使い放題なシステムが完成したのでした

(frame embed)


結果的にPrefabの名前を整理しないといけなかったからすごく整った感じに成ったのは良かったかも


VRCでの完全動作も確認してるのであとちょっとで公開出来ます。

ワールド制作の中継2025/6/29 ワールド制作の中継2025/6/29 ワールド制作の中継2025/6/29

More Creators