LoginSignup
2
1

More than 1 year has passed since last update.

【NeosVR】おなじ数字を色々な場所に書き込みたい。コンポーネントだけで。【LogiX】

Last updated at Posted at 2022-10-19

Relation/ValueMultiDriver<T>で解決

好きな値をどこか別の場所にコピーしたい時は、Transform/Drivers/ValueCopy<T>を使いますが、いろんなところにコピーして使いたい時はValueMultiDriverというコンポーネントがおすすめです。

・「コンポーネントをアタッチ」を押し、Relationsを開いたところにあります。

image.png
Value(Reference)MultiDriverは、Transform/Drivers内ではなく、Relations内にある。
image.png
クリックすると、ズラっといっぱい出てくる。例えば、文字だったら「String」、ブレンドシェイプであれば「float」、座標やスケールであれば「float3」を選ぼう。

つかいかた

image.png
コンポーネントを置いた直後の様子

コンポーネントはこんなかんじです。『Add』ボタンを押すと「コピーして上書きしたいとこリスト」が増えます

image.png
要素名 説明
persistent
基本的にTrue(☑)のままでいい。詳細は折り畳み。インベントリ等に保存、あるいはワールドをしたときにこのコンポーネントを残すかどうか。True(☑)だとそのまま残り、False(☐)にすると保存時に消えてくれる。
bool
UpdateOrder
基本的に0のままでいい。詳細は折り畳み。NeosVRが1フレームごとに行う処理の中の順番を指定できる。数字が小さければ先に、数字が大きければ後になる。
int
Enabled コンポーネントが動作するかを設定できる。False(☐)にすると動作しなくなる……はずだが、なぜかこのコンポーネントに関しては、どうあがいても動く。 bool
Value
コピーして描き込みたい数値を入れる。ValueCopyコンポーネントは「『ここの中身』を『ここの中身』にコピーしてね」みたいに使うが、ValueMultiDriverは「『この数字』を『ここの中身』にコピーしてね」みたいに使う。数字を直接描き込まないといけない。
ユーザーが指定した型
この記事ではfloat
Drives(list) コピー先(後述)を入れる。 IValueField
  • コピー先の入れ方
    • コピー先の数字を入力するところの左にある文字にレーザーを当ててグラブして「掴む」(↓例の場合Valueをつかんでいる)
    • 掴んだままDrives(list)のnullとなっている場所にレーザーを当てて離す
image.png
コピー先の数字を入力するところの左にある文字にレーザーを当ててグラブして「掴む」
image.png
掴んだままDrives(list)のnullとなっている場所にレーザーを当てて離す。
image.png
コピーされるとピンクになる。この状態のことを「Drive(ドライブ)されている」と言う

実践的な使いかた

コンポーネント単体を説明されても「これは何に使えるの」ってなりますが、いくつか楽しい使いかたができます。

  • コントローラーの入力をLogiXでドライブさせ、ValueMultiDriverでシェイプキーに書き込む。
    • トリガーを押し込むと、目を閉じて、口角を上げる、等ができる。
  • 設定したマテリアルの色(明るさ)を複数のマテリアルに書き込む。
    • コンテクストメニューのボタンを押すと、服に紋様(Emission)が浮かぶようになる。

これらは一例です。ぜひ皆さんで楽しく使ってください。

image.png
トリガーの押し込み具合をValueMultiDriver<float>に書き込むLogiX。NeosVRで表情を自力で設定する場合はこのようにLogiXを組むことが多い。
2
1
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
2
1