見出し画像

Resonite取り扱い説明書JP【inspector・基本ツール】

皆さんこんにちは!メタクリエイターことすむてみです!
今回はVRSNSプラットフォームResoniteにおける開発ツールについて、初めてツールを装備するところから解説していきます!
また、主にVRChatにおいてアバターを改変したことがある方には馴染みのUnityとの対比も行いながら解説したいと思います!

もっと初歩的なことについては⇧の記事を過去に書いていますのでそちらもどうぞ。


ツールとは

Resoniteでは「ツール」という概念を持つオブジェクトが多数存在します。このツール(道具)とはこんなイメージです。

  • 手に装備する(手に固着する)

  • 装備すると追加機能が使えるようになる

  • 操作方法が少し変わる

つまり、ツールとは手に装備して追加の機能を扱うオブジェクトです。これにはこれから説明するような開発ツールだけでなく、水鉄砲や剣などのおもちゃも装備機能があるとツールになります。

ここからはこのツールの中でも、アバター改変やものづくりなどに使用する「開発ツールについて」説明していきます。

開発ツール

Resoniteには開発ツール(以後ツール)について解説していきます。
まずこのツール取り出して使える状態にするまでの過程ついて説明します
※VRでの操作についてはMetaQuest3を元に記載します。

ツールをインベントリから取り出す

VRモードではデスクトップモードのようなワンタッチでは開発ツールを装備できません。もちろんVR操作中にキーボードを押しても機能しますが使い勝手が悪いのでちゃんとインベントリから出して装備する手順を解説します。

Personal→Resonite Essentials→Tools

インベントリから取り出す場合は
「Personal→Resonite Essentials→Tools」というところに⇧のようなツール一覧があります。デスクトップモードのショットカットからでは出せないツールも多数あります。
このインベントリ内のアイコンをダブルクリックすると目の前にアイテムがスポーンします。
また、この中にあるフォルダにもペンツールや公式のカスタムツールなど様々な開発ツールが存在します。

ツールを装備(VRモード)

上記でワールドにスポーンさせたツールを装備しましょう。
装備の手順は以下の通りです。

① VR=ツールにレーザーを当てながら選択(プライマリ:人差し指)→装備を選択
①’デスクトップ=ツールにカーソルを当てながら選択(左クリック)→ 装備を選択
② VR=ツールにレーザーを当てグラブ(中指ボタン)→その手側のコンテキストメニューを開く(B:Y)→メニューから装備を選択
③ VR=ツールにレーザーを当てグラブ(中指ボタン)→その手側のコントローラーのスティックを手前に倒し引き寄せ、手元まで持ってくると自動で装備

ツールを装備(デスクトップモード)

デスクトップモードではこのツール達を装備するショートカットキーがキーボードの「1.2.3…..8.9.0.-」にあります。

  • 1:装備解除

  • 2:DevToolTip(デブツール)

  • 3:ProtoFluxTip(フラックスツール)

  • 4:MaterialTip(マテリアルツール)

  • 5:ShapeTip()

  • 6:LightTip(ライトツール)

  • 7:GrabbableSetterTip(グラバブルセッターツール)

  • 8:CharacterColliderSetterTip(キャラクターコタイダーセッターツール)

  • 9:Micro-phone(マイクツール)

  • 0:GlueTip(グルーツール)

  • ー:ComponentCloneTip(コンポーネントクローンツール)

これ以外のツールはインベントリからスポーンさせて装備する必要が有ります。

ツール装備を解除

デスクトップ=コンテキストメニューを開く(T)→装備を外すを選択
VR=装備している手側のコンテキストメニューを開く(B:Y)→装備を外すを選択

各種ツール

ツールありすぎ

Resoniteに存在する開発ツールをそれぞれ説明します。私がすべてのツールについて熟知しているわけではないので比較的よく使用されるツールに絞って説明します。

DevToolTip(デブツール)

デブツールはResoniteの開発ツールで最も使用するツールです。機能は様々ありますが主な機能は以下のようなものです。

インスペクターを開く

デブツールを装備しているとコンテキストメニューに「インスペクターを開く」が追加され、現在選択しているスロット、何も選択していなければワールドルートのインスペクターが開きます。

・追記:インスペクターとは

インスペクターとは、インスペクター(Inspector) は、
ワールドやアバターを構成する スロットやコンポーネントの中身を確認・編集するためのツール・ウィンドウ を指します。
このインスペクターに書かれた情報を元に、その世界に存在するワールドやユーザー、オブジェクトなど全ての世界が構成されています。
インスペクターの意味や操作について別の項目で解説します。

・追記:スロットとは

スロットとは、ワールド内のオブジェクトや仕組みを管理する単位のことを指します。
イメージとしては、UnityやBlenderの「オブジェクト」や「ノード」に近く、ワールドの中で動くもの・表示されるものはすべてスロットに格納されます。

選択してギズモを表示・操作する

デブツールを装備した状態レーザー(手から伸びる線)で選択したいオブジェクトを指しながら、セカンダリボタン(VR=スティック押し込み・デスクトップ=Rキー)するとオブジェクトが選択され、ギズモが表示されます。

選択したオブジェクトが存在する状態でコンテキストメニューを開くと「ギズモオプション」という項目が追加されており、ギズモの表示の種類を変えることができ、ギズモを編集することで座標・回転・大きさを変えることができます。

ギズモを操作する際はデブツールを装備した手から出るレーザーを直接ギズモへ合わせて操作します。

レーザーで選択できるスロットにはコライダーが付いている必要が有ります。そうではないスロットを選択してギズモを表示したい場合は該当スロットをインスペクターから選択する必要があります。

・グローバル・ローカルの切り替えの意味
グローバル=ワールド全体の座標軸(X/Y/Z)を基準に操作する。
ローカル=そのオブジェクト自身の向きを基準に操作する。

ギズモを消す

表示されたギズモの消し方を解説します。基本的にはデブツールを装備して、コンテキストメニューから「すべて選択解除」を実行することで削除できます。ただ、この方法だとそのセッション(VRCでいうインスタンス)に存在するすべての選択状態を解除するので、同じセッションに他にもモノづくりをしている人がいる場合は影響が有ります。(まあそこまで気にすることでもないけれど)
また、選択中のインスペクターを「×ボタン」で削除するとそのインスペクターが指定するスロットの選択状態が解除されます。

・追記:ギズモとは

ギズモ(Gizmo) は、ワールド内でオブジェクト(=スロット)を 直感的に操作するための視覚的なハンドルやツール のことです。
座標(position)、回転(rotation)、大きさ(scale)をデブツールから編集することができます。

・追記:コライダーとは

オブジェクトに「当たり判定」を与えるための機能のことです。
見た目の情報とは別に「衝突できる形」を設定するイメージです。

新規作成

デブツールを装備するとコンテキストメニューに「新規作成」が追加され、新規に様々なものを生み出すことができます。この新規作成は3Dモデルやライト、テキストなど項目ごとに様々あります。

この作成できるそれぞれの項目についてはまた別に解説します。
他にも機能はありますが概ね使用されているデブツールの機能は以上です。

ProtoFluxTip(フラックスツール)

フラックス(Flux)とは、ワールドやアバターに動きや処理の仕組みを与えるためのシステム です。
Resoniteのコア機能のひとつで、「ノード」をつないで処理を作る仕組みになっています。

ノードブラウザを開く

フラックスツールを装備するとコンテキストメニューに「ノードブラウザ」をいう項目が現れます。これを選択すると様々な処理を行う「ノード」を取り出すことができます。
このノードには物凄く種類があります。私もわからん。
ノードブラウザはデフォルトのままだと使いにくいのでModをいれて検索できるようにしたり、ショートカットを付けるのがおすすめです。
Modについては直接Resonite原住民へ話しかけ授かってください。種類や好みなどかなり多様にあるので。

フラックスをアンパック

既に構成されたフラックスは通常そのオブジェクトの中のスロットに格納されています。厳密には動作する機能を残したまま見た目の情報を非表示に近いです。
この非表示になっているフラックスを表示させる動作を「フラックスをアンパック」と呼んでいます。

フラックスをアンパックする際は「Fluxやlogix」など、フラックスが格納されているスロットを掴み(グラブ・右クリック)ながらコンテキストメニューより「フラックス(スロット名)をアンパック」を選択します。

まずこのフラックスについて勉強しようという際は既に先人の方々が作ったアイテムなどに格納されているフラックスをアンパックしてどう動いているのか研究してみましょう

フラックスをパッキング

先ほどのフラックスをアンパックする逆の操作です。構成したフラックスをオブジェクトの中にパッキングして同一のオブジェクトにしましょう。
フラックスをパッキングする際は、構成されたフラックスの一体のどれか一つのノードにレーザー(手から出る線)を当てながらセカンダリ(スティック押し込み・Rキー)を長押しすると構成されたノードが光り、一体を選択状態にできます。

次に、パッキングしたい該当スロットをインスペクターから掴み(グラブ・右クリック)しながらコンテキストメニューを開き「フラックス(スロット名)にパッキング」を選択します。

ノードを繋ぐ

それぞれのノードは情報を受信する機能と処理して発信する機能があります。
ノードは常に左から受信して右へ送信するように構成されています。
ノードを繋ぐ手順は送受信するつなぎ目の長押しプライマリ(人差し指ボタン・左クリック)でつなぎたい場所で離すと繋がります。
ノードの信号にはそれぞれ色や線の数などで区別されており、適切なノードの送受信が揃わないとつながない仕様になっています。

ノードを切断する

既につながっているノードを切断する方法は、何もない場所をプライマリ(人差し指ボタン・左クリック)を長押しすると赤色の線が出てきます。
この線と既存のノード線が重なると切断されます。実際のハサミみたいな使い方ですね。デスクトップだと少しやりにくいです。

・追記:ノードとは

ノード(Node) とは、Flux(ビジュアルスクリプト)を構成する最小単位の「処理ブロック」 のことです。

  • 1つのノードは「入力を受け取り → 処理をして → 出力を返す」役割を持っています。

  • ノード同士を線(ワイヤ)で繋ぐことで、データや処理の流れを組み立てます。

ノードの見え方には2通りあり、コンテキストメニューから「オーバービューを切り替え」から変更できます。

MaterialTip(マテリアルツール)

マテリアルツールはオブジェクトにマテリアルを適用したり、適応されているマテリアルオーブを取得したりするためのツール です。
マテリアルとは、オブジェクトの表面がどのように見えるか(色・質感・透明度・反射など)を決める情報のことです。

マテリアルを新規作成する

マテリアルツールを装備した状態でコンテキストメニューを出すと「新規作成」の項目が追加されています。これを選択するとマテリアル種類の一覧ががかかれたパネルが出てきてマテリアルを新しく作ることができます。

マテリアルを取得する

床に適応されているマテリアルを取得した

マテリアルを取得するにはマテリアルツールを装備して対象のオブジェクトをレーザー(手から出る線)を当てながらセカンダリ(スティック押し込み・Rキー)でマテリアル取得します。取得するとマテリアルツール上の透明な球体にそのマテリアルの見た目をした球体が表示されます。
このマテリアルの見た目の球体を「マテリアルオーブ」と呼びます。

マテリアルを適応する

boxが床と同じマテリアルに変わった

マテリアルを適応する際は、適応したいマテリアルをツール上の透明な球体部分に入れます。ここに入っているマテリアルが適応されるということです。
次に適応したいオブジェクトにレーザーを当てている状態でプライマリ(人差し指ボタン・左クリック)を選択します。

マテリアルオーブを取り出す

マテリアルツールに入っているマテリアルオーブは、コンテキストメニューの「オーブを取り出す」を選択することでツールから取り出すことができます。
VRモードではこのマテリアルオーブはつかんで移動できるので装備と反対側の手で直接グラブして取すこともできます。デスクトップであればコンテキストメニューからしかできません。

マテリアルを編集する

マテリアルツールにマテリアルオーブが入っている状態で、コンテキストメニューから「マテリアルを編集」を選択するとそのマテリアルの情報がまとまったインスペクターが現れます。
このインスペクターからそのマテリアルのテクスチャー情報や色相などの色に関する情報、凸凹感を出すノーマルマップなどを編集できます。

マテリアルのを複製

マテリアルツールにマテリアルオーブが入っている状態で、コンテキストメニューから「コピーを作成」を選択するとそのマテリアルの複製が目の前にスポーンします。この時新たにスポーンしたマテリアルオーブが複製で、元のマテリアルオーブがツールに収まっています。

マテリアルを変換

PBS Metallic を Unlit に変換

マテリアルを別の種類のマテリアルに変換したいときに使います。
変換したいマテリアルがツールに収めた状態でコンテキストメニューから「変換」を選択し、変えたい種類のマテリアルをパネルから選びます。
この変換操作は既にそのマテリアルが適応されているすべてのオブジェクトに変換後の情報が即座に適応されます。

マテリアルオーブをまとめて取得する

アバタールートを掴んで取得

マテリアルツールを装備した状態で該当スロットを掴みながら(グラブ・右クリック)しながらセカンダリ(スティック押し込み・Rキー)をするとそのスロット以下のレンダラー(見た目を描画する機能)に適応されているすべてのマテリアルを一気に表示できます。
上記のGIFではアバターのマテリアルを表示しました。アクセサリーや着せ替え衣装なども入っているのでなかなかの数になっていますね。

追記:取得・適応できる対象オブジェクト(スロット)について

上記までの方法でマテリアルの取得や適応をしようとしてもうまく動作しないことが多々あります。それはマテリアルツールのレーザー指定から取得・適応できる対象には条件があるからです。

対象になりえるオブジェクト(スロット)にはコライダーが適応され、レーザーが衝突判定を得ている必要があります。
また、アバターなどスロット構造が複雑なものは上手く取得できないことが多いです。さらに、1つのレンダラー(見た目を描画する機能)に複数のマテリアルが適応されている場合などは1つしか取得できないなどあまり都合よく機能はしません。

・追記:コライダーとは

オブジェクトに「当たり判定」を与えるための機能のことです。
見た目の情報とは別に「衝突できる形」を設定するイメージです。

・追記:レンダラー(Mesh Renderer・Skinned Mesh Renderer)とは

3Dモデルに対するマテリアルは、見た目を描画する機能「Mesh Renderer」と「Skinned Mesh Renderer」に主に使われます。このコンポーネント(機能)の中のMaterialsという所に直接マテリアルをいれることでもマテリアルの変更をすることができます。というかこっちの方が使う機会が多いですね。

ツールまとめ

まだほかにも開発ツールはありますが、基本この3つのツールが使いこなせるようになればそのほかのツールも上手く使えるようになると思います。
この3種以外に独自のツールを持っているものとすると、ガウシアンスプラッティングを切り取るツール「Gaussian Splat Tool」やユーザーの肉声を音源データとして録音する「Microphone Tool」などがあります。

インスペクターの使い方

次にデブツールから選択して表示できる「インスペクター」について解説していこうと思います。
まずResoniteにおけるインスペクターとは、ワールドやアバターを構成する スロットやコンポーネントの中身を確認・編集するためのツール・ウィンドウ を指します。
つまるところ、さっきから出てきているこれです⇩

このインスペクターはUnityでいう所のヒエラルキーとインスペクターが合体したようなものです。左側がヒエラルキー・右側がインスペクター

インスペクター左側の基本操作

操作の前にまず「スロットの階層構造」について説明します。
初心者でも分かるようにもっとかみ砕いて解説します。
まず左側の文字列がこの世界の全てで階層を意味しています。つまり図にするとこんな感じ⇩

デブツールで何も選択せずにインスペクターを開くとこのワールドルートが指定されて開きます。アバターを選択してインスペクターを開くと下の階層にあるアバターの階層がインスペクターとして開きます。
このワールドルートスロットが一番上でそれぞれのスロットが深くなっていくことを階層と呼んでいます。※独学なので違ったら許してね

例えば⇧の画像では自身の来ているアバターのBodyを選択していますが、そのBodyスロットが存在する場所は
Root→user→AvatarRoot→CenteredRoot→RootNode→Body
となります。

スロット階層の上り方

現在指定して開いているスロットから上の階層へ行きたいときはインスペクターのこのボタンを押します。
右側の矢印が小さいボタンは、一つ上のスロットを表示します。
左側の矢印が大きいボタンは、グラバブルコンポーネント(手で持てるようになる機能)やオブジェクトルート(そのオブジェクトの一番上の階層に付けるもの)などを参照していくつかの階層を飛ばして上の階層へ移動します。

スロット階層の下り方

スロットの階層を下る時は、下りたいスロットの左側の「▶ボタン」を選択することでその下の階層が表示されます。

スロットを選択

選択したいスロットを見つけたら、そのスロット名が書かれた部分をダブルクリックするとそのスロットの情報が右側のインスペクターに表示されます。この時、当該スロットのギズモも表示されます。
選択中のスロットはスロット名の色がかわります。

・追記:オレンジ色になっているスロットはワールド上書き保存されない

ちなみにオレンジ色になっているスロットはワールド保存などをしたときに「一緒に保存されないよ」という意味を示しています。
ここでは、ユーザーとかユーザーのアバターがワールド保存されないということですね

インスペクター右側の基本操作

インスペクターの右上には⇩のようなアイコンが並んでいますこれらを順番に説明します

地図の地点マーク:そのインスペクターがユーザーの中の階層に入って追従して動くようになります。
×マーク:そのインスペクターを消します。
ゴミ箱マーク:選択中のスロットを削除=スロットの中にある情報ごと削除します。
リサイクルマーク:選択中のスロットを削除=スロットの中にある情報を残しながら削除します。
上矢印+:選択中のスロットの親(一つ上の階層)を作成します。
下矢印+:選択中のスロットの子(一つ下の階層)を作成します。
長方形が二つ:選択中のスロットを複製します。
矢印につぶされているマーク:選択中のスロットがトップになるようにインスペクター左側の階層構造をたたみます。

そのインスペクターを選択しているスロットの情報が書かれています。
Name:スロットの名前。
Parent:なにに貼りついているのかを示す。基本的には親スロット。
Tag:スロットにタグを指定できる。このタグによって機能を制限したり、追加したりできる。
Active:そのスロットが有効・非有効を示す。インスペクター左側のスロット名前の✓ボタンも同じ意味
Persistent:そのスロットの情報がワールドに保存されて残るかどうかを示す。ユーザーなどワールドに依存しないものには非有効になっている。
非有効になるとスロットがオレンジ色になる。
Position:そのスロットが親スロットに対してどこに原点があるのか示す座標。
Rotation:そのスロットが親スロットに対してどのような角度を示しているのかの回転角度。
Scale:そのスロットが親スロットに対してどのくらいの大きさなのか示す大きさの割合。
overoffset:そのスロットがスロットの順番を指定する時に使う。

位置:Positionの値を全て0にする
回転:Rotationの値を全て0にする
拡大/縮小:Scaleの値を全て0にする
中心に親を作成=現在選択しているスロットに対して中心を原点とする親スロットを作成する。
ジャンプする:選択中のスロットの原点に向かって自分が瞬間移動する。
引き寄せる:選択中のスロットの原点が身近に移動する。
ローカルユーザースペース:これ何に使うんや?
ワールドルート:選択中のスロットをワールドルートへ移動する。

無理やりレーザーを強調表示してる

またそれぞれ項目の左端にある小さいボタンを押すと専用のコンテキストメニューを開くことができ、該当項目に応じた選択肢が出てきます。
当該項目が何かに上書きされているときに何によって上書きされているのかを表示したり、画像のように値を一つのこうもくと全て同じにするなど機能は様々です。

コンポーネントをアタッチ

様々な機能を追加するボタンです。このボタンを押すと専用のパネルが表示されこの中からコンポーネントを探しダブルクリックすることで追加することができます。
コンポーネントも大量にあるのでなにがどこにあるのか私もよくわかっていないです。
私がよく使うのは、
Physics→コライダー・ダイナミックボーン など
Transform→オブジェクトを動かしたり・掴んだりするもの 辺りをよく使いますね。
有料3Dモデルなどをだれかに保存されないようにする機能は、
Users→Common Avatar Syastem→(一番下の)simpleAvatarProtection になりますね。

まとめ

デブツール・フラックスツール・マテリアルツールそしてインスペクターの扱い方についてまとめました。
これら以外にもResoniteおいて扱えるものはまだまだありますが、開発ツールにおいてはこの辺りが段階的に触れていくところです。

基本的に困ったらResonite内でユーザーに聞くかResoniteJapanディスコードサーバーなどで聞くのが良いと思います。
また、これらのツールや機能は今後アプデで変わっていくことが想定されているので見た目や操作が異なる場合もありますのでご了承ください。

ちなみになんでTipをツールって言ってるんだという問いについては、昔のプラットフォームではツールだったようですよ。その名残かと思います。

その他の記事もご参照ください。


アバターをセットアップ

MAResonite(モジュラーアバターレゾナイト)

モジュラーアバターシステムを使用する場合はこれらを参考にしてください。

もっと初歩的なことについてはこちらに

ディスコードサーバー入場はこちらから!

このディスコードサーバーでは主に私の活動に対する告知やイベント開催時の通知、そしてそれから始まるコミュニティ運営を行います!

【プロフィール】

オンライン活動名 すむてみ ( Sumutemi )
リアルネーム 畑岡 聡  ( hataoka satoru )
販売ショップ名 3DKOBO
肩書 メタクリエイター
性別 男

VRChat・ResoniteなどVRSNSを舞台に、3Dモデリングやイベント主催を行うメタバースのものづくりや文化を作るメタクリエイター。
3Dプリンターを活用し、コスプレ製作、オリジナルフィギュア、サバイバルゲーム用パーツの制作など、リアルとバーチャルをつなぐクリエイティブ活動に取り組んでいます。

いいなと思ったら応援しよう!