0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Resoniteのアバター用インストーラーのサンプルについて

0
Last updated at Posted at 2026-03-29

Resoniteでアバターに何かしらの機能をインストールさせるツールのサンプルの解説記事です。
例えばコンテキストメニューを追加して何かさせたりするようなアイテムをユーザーに導入させるときなどのインストーラーとして使えるかと思います。

アイテムの入手先

https://uni-pocket.com/ja/items/2b947dcc-348c-4f3b-a3f8-4a9bf0a50661

使い方

①InstallcontentsのSlotの子にあるSlot(ItemNameAとItemNameB)を削除し、自分がインストールさせたいアイテム(機能)Slotに差し替える。
②アイテム(機能)Slotのタグに他と被らないような名前を設定する。
③UIの名前を差し替えて、(必要なら)ボタンを変える、効果音をつけるなどして体裁を整える

このアイテムでやっていること

①アバターのルートSlotを探す(コードを改変すればユーザーのRootSlotにも対応)
②既にインストールされていないかチェック
③インストールしたいアイテムをコピーする
の3つだけです。
マルチ環境未確認かつ上手く動かない例外はありますが、大体のアバターと状況には対応していると思います。

インストール

2026-03-29 14.01.09.jpg

アバターのルートSlotを探す

ほとんどのアバター内にある(と思われる)Head ProxyのSlotを探してその親(=アバターのルート)を取得するという方法を取っています。

余談(没コードの話) ボタン押下イベントを使っているため、最初はボタンを押したSlot(ふつうはレーザーか指のSlotになる)のObjectRootを取りに行くという方法を検討していましたが、腕や肩に何かしらのアイテムを装備しているとそっちのObjectRootに反応してしまいそうだったので、最終的に上記コードを採用しています。 色々試してみて実はこちらのコードのほうが良いと分かった場合はしれっと差し替えているかもしれないです。 例えばこのコードの場合はHead Proxyがなくても動く(筈)とか、アバターに手がなくてもレーザーでボタン押下できるなら機能する(筈)といった利点があったりします。

2026-03-29 14.14.49.jpg

既にインストールされていないかチェック+インストール

2026-03-29 14.18.37.jpg
インストール自体はInstallcontentsのSlotの子にあるSlotをアバターのルートにコピーすることで実現しています。
2重でアイテムがインストールされないように、タグに他と被らないような独自の名前を付けてあげることで
そのタグを含んだアイテムの有無でチェックを行っています。

画像のItemNameAとItemNameBを自分が作ったアイテム(もしくは機能)に差し替えてタグをつけてあげれば機能するはずです。
複数アイテムにも対応しています。

アンインストール

2026-03-29 14.01.20.jpg

インストールの逆のことをやっています。
技術的にはインストールの解説を読んでいただければ大丈夫だと思います。
やっていることはInstallcontentsのSlotの子のタグと同じアイテムがあれば削除、なければ何もしないといった動作をしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?