投稿記事

VRChatワールド用軽量ペン

タイトルでほぼ内容の全てですが、VRChatワールド用軽量ペン、LRPenが完成したのでリリースしました。
https://longfox.booth.pm/items/5659910

ペンを設置しただけであれば Batches と SetPassCalls の増加は1で済みます。
(Batchesの低下はDynamic batchingが有効な場合に限ります)

まだ、実運用上で発生する問題や需要を把握しきれていない部分もありますが、VRChatのワールド作成で少しでも描画処理(GPU負荷)を軽くしたいのであれば、利用してみてはいかがでしょうか。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

VRChatのワールド作製について2

引き続き、VRChatのワールド用のいわゆるペンギミックについて。

■ 削除処理の修正
線の削除処理について、同期での整合性をとるため、オブジェクト名に連番が付くように修正。
なおかつ、実際に消す(Destroy()する)のではなく、非アクティブにすることで対応。

■ 線の判定の修正
線が消しゴムに触れているかどうかの判定をRaycastで行っていたのですが、
線に合わせてメッシュを生成し、MeshColliderで判定を行うように修正しました。
※ UnityのLineRendererで描いた線に当たり判定を付けたい場合、
LineRenderer.BakeMesh()を使えば、対応するメッシュを生成できるので、
MeshColliderで判定が取れるようになるようになりました。


MeshColliderが生成されている様子

■ 複数インスタンス設置時の修正
ペンギミックをPrefabから複数設置すると、消しゴムが自身の所属するインスタンスしか対象にできない問題があったため修正。

■ 同期
複数インスタンス設置時、消しゴムの処理について、各々のインスタンスを特定して動作させる必要があるものの、まだ上手くいっていないため作業中。

◆ほか◆
思う所があり、有料プランを削除しました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

VRChatのワールド作製について

VRChatのワールド作製について記事にしようと思います。

作っていたものは、QvPenに代表されるような、ワールド用のいわゆるペンギミックです。
元々はアバター用にパーティクルを作ったりトレイルを作っていたりしてる最中、ペンギミックの実装ってこれでやるんだろうなと考えていたものを、実際に作ってみたという流れです。QvPenは(マテリアル数が多くて)重いともよく聞いていたので、それの改善ができないかという思惑もありました。

現状の出来上がったものはこんな感じです。

仕組みとしては、Skinned Meshを使いペンごとに対応するボーンを入れることで、メッシュとマテリアルを1つにし、ピックアップ動作等はボーンを対象に行い、判定用のコライダーは別途用意するような形にしました。ペン本体の色は(ペンごとにUV配置の異なる)テクスチャで表示しています。
(あまり厳密な測定はしていませんが、理論上、CPU負荷は高くなると思うのですが、画像ではCPU負荷も減っています。謎です)

線を新たに描いた時の同期と、あとからインスタンスに入った人への同期は処理がほぼ出来上がり、残りとして線の削除の同期を完成させれば、とりあえず使えそうな感じです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

作業報告的なもの12

・シーン中に配置するアバターを任意にできるような仕組みを作る
・(Start()で実行していた)いくつかの初期化処理を任意タイミング(シーン変更時)に実行できるように修正
※ シーンはUnityの機能ではなくゲーム中の機能を示す用語

根本的な構造部分への影響が大きく、バグが出ている状況。改めてアバターを動作させる仕組みについて作り直した方が良さそうな状況。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2 3 4 5

月別アーカイブ

限定特典から探す

記事を検索