第11回 コンポーネント紹介 【コピーする】

第11回 コンポーネント紹介 【コピーする】 Neosアーカイブ記事

【注意】
この記事は、Resoniteの前身ともいえるVRSNSであるNeosVRに関する内容を転載しております。多くの共通点があるため参考資料として掲載しておりますが、内容が古いためそのままでは動かない場合、もしくは不具合が起きる場合もございます。
予めご了承ください。

値や動きをコピーしたり、コンポーネントをコピーできるコンポーネント等を9つご紹介いたします。
ついでに、ショートカットキーも少しだけ紹介します。

前回はコチラ

ValueCopy(バリュー コピー)

値欄をコピーしてドライブするコンポーネント。

・場所
Transform/Drivers/

項目解説初期値
Source:値のコピー元。null
Target:値のコピー先。null
WriteBack:Target先の値が書き換わると、Source先の値に返ってくる。無効

・使い方
コピー先のスロットにアタッチ。
SourceとTargetを指定。

・補足
このコンポーネントをアタッチするスロットは、コピー先と同じスロットがお勧めです。
スロットやコンポーネントが非アクティブでも動く。
WriteBackが有効の場合、Targetの値を書き換えるとSourceの値も変化する。
裏技的な使い方ですが、WriteBackを有効にして同じSourceとTargetを指定すると、全てローカル(ユーザー毎)で処理されます。ただし、初期値の設定がややこしくなるので使用する際には工夫が必要になるかも。
ローカル化ならValueUserOverrideでも可能ですが、上記の方法ならネットワーク通信が発生しません。
ちなみに、Targetだけを指定してSourceを指定しない場合、Target先の値が固定されます。工夫すれば、鍵等のギミックが作れます。

・Neos Wiki リンク
https://wiki.neosvr.com/ValueCopy_(Component)

ReferenceCopy(リファレンス コピー)

参照欄をコピーしてドライブするコンポーネント。

・場所
Transform/Drivers/

項目解説初期値
Source:参照のコピー元。null
Target:参照のコピー先。null
WriteBack:Target先の参照が書き換わると、Source先の値に返ってくる。無効

・使い方
コピー先のスロットにアタッチ。
SourceとTargetを指定。

・補足
バリューコピーのリファレンス版。

・Neos Wiki リンク
https://wiki.neosvr.com/ReferenceCopy_(Component)

ValueDriver(バリュー ドライバー)

値でドライブするコンポーネント。

・場所
Relations/

項目解説初期値
ValueSource:値の参照元。null
DriveTarget:値のドライブ先。null

・使い方
ドライブ先のスロットにアタッチ。
ValueSourceとDriveTargetを指定。

・補足
スロットやコンポーネントが非アクティブだと動かない。(←コレ重要)
おそらくたぶん、バリューコピーと比べると1フレーム遅れるっぽい。
Targetだけを指定してSourceを指定しない場合、Target先の値はFalse・null・0等になります。
働きはバリューコピーとそっくりだけど、中身は違う。

ValueMultiDriver(バリュー マルチ ドライバー)

1つの値で、複数ドライブできるコンポーネント。

・場所
Relations/

項目解説初期値
Value:値。0(型によって違う)
Drives(list):ドライブ先のリスト。(Addで追加できる。)

・使い方
適当なスロットにアタッチ。
Valueを設定。
Drives(list)をAddで追加して、ドライブ先を指定。

・補足
すごく便利。1つのスイッチで複数個のライトをON/OFFしたりできる。
スロットやコンポーネントが非アクティブでも動く。

・Neos Wiki リンク
https://wiki.neosvr.com/ValueMultiDriver%601_(Component)

ReferenceMultiDriver(リファレンス マルチ ドライバー)

1つの参照で、複数ドライブできるコンポーネント。

・場所
Relations/

項目解説初期値
Reference:参照。null
Drives(list):ドライブ先のリスト。(Addで追加できる。)

・使い方
適当なスロットにアタッチ。
Valueを設定。
Drives(list)をAddで追加して、ドライブ先を指定。

・補足
バリューマルチドライバーのリファレンス版。

・Neos Wiki リンク
https://wiki.neosvr.com/ReferenceMultiDriver_(Component)

CopyGlobalTransform(コピー グローバル トランスフォーム)

位置と回転を、別のオブジェクトの位置と回転でドライブするコンポーネント。

・場所
Transform/Drivers/

項目解説初期値
Source:コピー元のスロット。null
_posDrive:位置のドライブ先。自動的に自スロットのPositionが指定される
_rotDrive:回転のドライブ先。自動的に自スロットのRotationが指定される

・使い方
動かしたいオブジェクトのスロットにアタッチ。
Sourceを指定。

・補足
このコンポーネントをアタッチすると、自動的にスロットの位置と回転をドライブしちゃうのでグラバブルが利かなくなります。
グローバル座標系で位置と回転をコピーしてくれる。
大きさはコピーしてくれない。階層内の全スロットスケールが均一なら問題ないが、歪んでいる場合は変形するかも。
アバターの服やアクセサリー等はスナッパーを使ったり、手動で親子付けした方が良いかも。

・Neos Wiki リンク
https://wiki.neosvr.com/CopyGlobalTransform_(Component)

・関連
VirtualParent

CopyGlobalScale(コピー グローバル スケール)

大きさを、別のオブジェクトの大きさでドライブするコンポーネント。

・場所
Transform/Drivers/

項目解説初期値
Source:コピー元のスロット。null
NonUniform:不均一に変形させる。無効
_scaleDrive:大きさのドライブ先。自動的に自スロットのScaleが指定される

・使い方
変形させたいオブジェクトのスロットにアタッチ。
Sourceを指定。

・補足
コピーグローバルトランスフォームのスケール版。
NonUniformが無効だと、Sourceの大きさの平均値で計算される。有効だと、Sourceの大きさxyzそれぞれで計算される。

・Neos Wiki リンク
https://wiki.neosvr.com/CopyGlobalScale_(Component)

ComponentCloneTip(コンポーネント クローン チップ)

あるスロットから別のスロットに、コンポーネントをコピーしてくれるツールチップのコンポーネント。

・場所
Tools/Tooltips/

項目解説初期値
TipReference:ツールの基準点(レーザーが出る場所)。自動
BlockGripEquip:掴んだ時にツールとして機能させない。無効
BlockRemoteEquip:レーザーで選択した時に、装備選択をさせない。無効
EquipName:レーザーで選択した時の装備選択で表示する名前。null(ツール)
_overrideActiveTool:?null
_gripPosesGenerated:掴んだ時のツール位置(両手のGripPose)を自動的に生成する。作った(自動)
ApplyToObjectRoot:オブジェクトルートに適応する。
(コンテキストメニューから変更可能。)
有効
EnsureSingleInstance:同じ名前のコンポーネントがあるとコピーしない。
(コンテキストメニューから変更可能。)
有効
AllowPickup:コンポーネントのコピー(格納)を行う。有効
_label:コピーしたコンポーネント名の表示先。Text(自動)
_templateRoot:コピーしたコンポーネントの格納先。
(コンテキストメニューから削除可能。)
null(自動)

・使い方
空スロットにアタッチ。
自動的にコンポーネントクローンチップが生成される。

・ツールの使い方
ツールチップを装備します。
インスペクターに表示されているスロットのコンポーネントの名前部分を掴んで、セカンダリーボタンを押します。
すると、ツールチップの中にそのコンポーネントが格納されて、名前が表示されます。
コピー先のオブジェクトにレーザーを当てて、プライマリーボタンを押すとコピーされます。ただし、誤射する可能性が非常に高いので以下の操作方法をお勧めします。
コピー先スロットのインスペクターの取っ手部分にレーザーを当てて、プライマリーボタンを押す。又は、そのインスペクターの何もない所を掴んでプライマリーボタンを押す。

・補足
わざわざコンポーネントで生成しなくても、インベントリーのEssential Toolsに入ってます。
なにがなんでも_gripPosesGeneratedを無効にしたい場合は、BlockGripEquipとBlockRemoteEquipを有効にしましょう。
EquipNameがNullだと、装備選択時に「ツール」と表示されます。(言語設定によって変化します。)
ApplyToObjectRootが有効だと、オブジェクトにレーザーを当てて追加した時に、オブジェクトルートスロットに追加されます。レーザーが当たったコライダーのスロットに追加したいときは無効にしましょう。
EnsureSingleInstanceが有効だと、同じ種類のコンポーネントがコピー先のスロットに既にある場合はコピーされません。
AllowPickupが有効だと、コンポーネントをコピーしてTemplateスロットに格納できます。Templateスロットに格納したコンポーネントを書き換えたくないときは無効にしましょう。
Templateスロットに、コピーしたコンポーネントが格納されます。(コンテキストメニューのClear Templateを押すとTemplateスロットが破棄されます。)
コピー元の設定や参照等も全部クローンされますので、気を付けましょう。
Templateスロットに手動でコンポーネントを追加すれば、複数個のコンポーネントを一括で追加できるようになります。非常に便利な技なので、覚えておいて損はないです。
このツールに限りませんが、ツールを使う際はマナーを守ってホストの指示に従いましょう。悪用は厳禁です!

・Neos Wiki リンク
https://wiki.neosvr.com/ComponentCloneTip_(Component)
https://wiki.neosvr.com/Component_Clone_Tooltip

DuplicatorTip(デュプリケーター チップ)

掴んだ物を複製できるツールチップのコンポーネント。

・場所
Tools/Tooltips/

項目解説初期値
TipReference:ツールの基準点(レーザーが出る場所)。null
BlockGripEquip:掴んだ時にツールとして機能させない。無効
BlockRemoteEquip:レーザーで選択した時に、装備選択をさせない。無効
EquipName:レーザーで選択した時の装備選択で表示する名前。null(ツール)
_overrideActiveTool:?null
_gripPosesGenerated:掴んだ時のツール位置(両手のGripPose)を自動的に生成する。作った(自動)

・使い方
空スロットにアタッチ。
自動的にデュプリケーターチップが生成される。

・ツールの使い方
ツールチップを装備します。
複製したいオブジェクトを掴んでトリガーを押すと、複製されます。

・補足
わざわざコンポーネントで生成しなくても、インベントリーのEssential Tools/Miscに入っています。
片方の立方体にだけコライダーが設定されているので、レーザーで選択しづらい。(改造すれば解決。)
掴んで複製したとき、増やした方がその場に残り、掴んでいる方が複製元です。
DuplicateBlockコンポーネントが設定されているオブジェクトも複製できちゃう。

・Neos Wiki リンク
https://wiki.neosvr.com/DuplicatorTip_(Component)

ショートカットキー

コピーに関連するショートカットキーを、少しだけ紹介します。(VRモードでも使えます。)

キー内容
F8VRとデスクトップモードの切替え。(ただしVRモードで起動している場合のみ。)
Ctrl+Cデスクトップやブラウザから、3Dモデルや画像等のファイルやYoutube等のURLをコピー。
Ctrl+VNeosVRの画面で、クリップボードからペースト。(ちなみに、ドラッグ&ドロップもOK。)
Ctrl+D掴んでいる物を複製。(デスクトップモードだと超便利。)
Ctrl+Shift+D掴んでいる物を破棄。
Ctrl+S現在のワールドを保存。
Ctrl+Shift+S現在のワールドのコピーを名前を付けて保存。(画面だけがフリーズした時の、頼みの綱です。)

・Neos Wiki リンク
https://wiki.neosvr.com/Basic_Controls/ja
https://wiki.neosvr.com/Emergency_Save

おわり

以上で第11回は終了です。拙文ではございますが、最後までご覧頂きありがとうございました。
一部の項目がNeosWikiの解説内容と異なっておりますが、この紹介記事では2023年1月に実験・調査した結果を基に執筆しております。今後、Neosの更新でコンポーネントの仕様が変化する可能性がありますので、御留意下さい。
次回はローカル(ユーザー毎)で動くコンポーネントを紹介予定です。
お楽しみに!

第12回 コンポーネント紹介 【ローカルで動かす】

タイトルとURLをコピーしました