View on GitHub

NeosVRJP-Techbook

NeosVRJP-Techbook (NeosVRの応用編・技術ノート)

オブジェクトに入ってるLogixを見てみよう!!!

オブジェクトをDevToolTipでパッド押し込みで選択したら、オブジェクトの中のLogixを探す

Logixを見つけたら、LogixTipを手に装備してレーザーを当ててグリップを押して掴む。(掴むと水色の文字が手の近くに表示される)

掴んだ状態でメニューキーを押して黄色いボタンを押すと開かれる

LogiXをオブジェクトに設定しよう!

オブジェクトを用意しよう!

LogiXを設定するオブジェクトを用意しましょう。
設定する対象のオブジェクトを持っていない場合は、オブジェクトを出してみようを参考に作成してみてください。
今回はオブジェクトを出してみようのページで作ったBoxにLogiXを設定していきます。

インスペクターを開いて、設定対象のSlot(もしくはComponent)のLogiX Nodeを取り出そう!

DevToolTipを装備し、オブジェクトに対してセカンダリーアクションを行うと、オブジェクトを編集状態にできます。
その状態で、メニューから「Open Inspector」を開いてみましょう。

すると、インスペクターが開きます。

インスペクター左側のツリーに、オブジェクトの名前が表示されています。
今度は、LogixTipを装備して、オブジェクトの名前をグラブしましょう。
すると、LogixTipの上に、青い文字でオブジェクトの名前が表示されます。

グラブは維持したまま、何もない空間に向けて、セカンダリーアクションを行ってください。
すると、オブジェクトのSlotのLogiX Nodeが表示されます。

これに対してLogiXをつなげていきます。

レッツLogiX!

こちらにLogiXを始めるにあたり基本的なことが書いてあります。
わかりやすいので、LogiXの書き方はこちらの記事を読んでみてください。
https://qiita.com/pet_sensei/items/ea9bf12e07e04e803496

また、LogiXで使うNodeについてはノード一覧を見てみてください。

今回はサンプルとして、Boxを回転させるLogiXを作ってみました。

ここまでで、Boxが回転するようになり無事にオブジェクトにLogiXを設定することができました!

LogiXの保存の仕方

オブジェクトにLogiXを設定している場合

要約

流れ

まずはインスペクターを開きましょう。
インスペクターの開き方は、ガイド2やLogiXをオブジェクトに設定しよう!を参考にしてください。

LogiXを保存したいオブジェクトの下に、LogiXを入れるための子どもオブジェクトを作ります。 インスペクターの上で、保存対象オブジェクトが選択されていることを確認します。 そのあと、インスペクター右上にある星マークをクリックしましょう。

すると、「(オブジェクト名) - child」というオブジェクトが子どもとして作成されます。

LogiXを入れる用に、わかりやすい名前を付けましょう。
(ここでは「rotate-logix」としました)

ここからは、LogixTipを装備して行います。 インスペクターの左側ツリーの中に、先ほど名前をつけたオブジェクト(今回はrotate-logix)があります。
この名前をグラブすると、LogixTipの上に青い文字でrotate-logixと表示されます。

その状態で、メニューを開き「set packing root」を選択します。

すると、LogixTip上にピンクの文字でrotate-logixが表示されます。 その状態で、保存したいLogiX Nodeのうち、どれでもよいのでLogixTipを向け、セカンダリーアクションを押しっぱなしにします。

青い円がLogixTipの周りを一周するので、一周したらセカンダリーアクションのボタンから手を離します。
そうしたらLogiXが消えてしまいますが、安心してください。
これでオブジェクトの中にLogiXが設定されました。

(注意):最後はグラブしているとできないので、グラブを外す必要があります。あとセカンダリーアクションは押しっぱなしの長押しです。クリックではダメです。
(解説):SetPackingRootはPackingRootを現在装備しているLogiXtipにsetしています。そのsetされたLogiXtipでLogiXのノードを指してセカンダリーアクションをすることで、LogiXのノードをパックすることができます。

設定したオブジェクトは、インベントリーに保存しましょう。

オブジェクトはなく、LogiXのみの場合

(あとで追記します)
blueprintに張り付けてインベントリに保存

インタフェースノードを取り出す方法

LogixTipを装備する。

リングメニューを出して、一番右端のアイコンが”Extract: Interface”に切り替わっていることを確認してください。

インスペクターの中のコンポーネントの名前にレーザーを当ててグリップする。そして何も無い空間にそのままグリップして持ち出すと図のように青字でそのコンポーネントの名前が表示されます。

そのまま、セカンダリーアクションを押します。そうするとインタフェースノードが現れます。

さらにインタフェースノードの各項目にLogixTipの先端をあてて、プライマリーアクションを長押しして、引き出して離すとノードで値が表示されます。あるいは引き出して、LogiXにつなげばLogiXに値を流し込むことができます。

リファレンスノードを取り出す方法

LogixTipを装備する。

リングメニューを出して、一番右端のアイコンが”Extract: Reference Node”に切り替わっていることを確認してください。

インスペクターの中のコンポーネントの名前にレーザーを当ててグリップする。そして何も無い空間にそのままグリップして持ち出すと青字でそのコンポーネントの名前が表示されます。
そのまま、セカンダリーアクションを押します。そうするとリファレンスノードが現れます。

RenderQueueというコンポーネントの値がリファレンス(参照)されてノードに表示されています。

リファレンスノードの利用の仕方

ここではExtract: Reference Nodeでとりだしたリファレンスノードが二つあって、上のID358FE01から->ノードを使って実体を取り出し、さらにこれをWriteRefを使ってポインタ情報を次のリファレンスノードに出力しています。まだWriteRefのPulseをクリックしていないので、下はID0となっていてこれはNullを意味しています。つまり情報が書き込まれていません。

Pulseをクリックすると、上のリファレンスノードの内容が下のリファレンスノードに書き込まれることが分かります。ここの例ではメッシュが反映されて音楽のナチュラル記号が対象に書き込まれました。このようにしてリファレンス(ポインタ)の情報を扱うノードの入力と出力を取り扱うことができます。

ドライブノードを取り出す方法

LogixTipを装備する。

リングメニューを出して、一番右端のアイコンが”Extract: Drive Node”に切り替わっていることを確認してください。

インスペクターの中のコンポーネントの名前にレーザーを当ててグリップする。そして何も無い空間にそのままグリップして持ち出すと青字でそのコンポーネントの名前が表示されます。
そのまま、セカンダリーアクションを押します。そうするとドライブノードが現れます。

LogiXにつなげばLogiXから値を流し込むことができます。