NeosのPlusな世界線(NeosPlus プラグイン)

こんにちは。NeosVR(その2) Advent Calendar 2022 の11日目担当のcer12uです。
カレンダー10日目 のホーカムさんを引きずり込んだ人です。ぜひそちらの記事も見てね
その1の方ではorangeさんがNeosARの記事を出す予定です、こちらもどうぞ

はじめに

ネタにされる くらいアップデートの来ないNeosVRですが、その間にも有志によりModやPluginの更新が行われています。
Modについては1日目のよっしーさんが記事を書いているので、私はPluginの方に触れてみます。

PluginはMod以上に情報がなく難しいです。こういう世界もあるんだ、くらいで読んでみてください。できそうなら行ってみても良いかもしれません。

!!!注意!!!

  • mod同様、公式ではないので自己責任です。
  • 通常版のワールドには原則参加できません。(だからタイトルが「世界線」)
  • プラグイン環境で作ったものを通常版のNeosで出さないこと。迷惑はかけちゃダメ

導入方法

導入方法はModとほぼ同じです。

パッケージはこちら。
GitHub - Xlinka/NeosPlus: NeosVR Plugin Extra Logix nodes and features

このページの「Releases」を開いて、「NEOSPlus.dll」をダウンロードしてください。
ダウンロードしたDLLを通常版であれば「C:\Neos\app\Libraries」にコピーしておきます。

あとはMod同様、Neos.exeのショートカットに引数を設定して起動しましょう。

こんな感じ。

C:\Neos\app\Neos.exe -LoadAssembly "Libraries\NEOSPlus.dll"

ほら、(導入は)簡単。

設定後に起動すれば、フレンド全員ピンク(互換性なし)表示のNeosPlusの世界に辿り着きます。

Pluginで増えた機能を使ってみる

NeosPlusの世界に辿り着いたところで、Plusの機能を使っていきます。

LogiX

こちらの世界では、LogiXに色々な機能追加が行われています。
見比べてみるとこんな感じ。

今回はこのうちいくつかに触れてみます。

JSON配列

この世界のLogiXではJSONが扱えます。
主にRESTAPI操作を想定していそうな機能が多く追加されています。

AppendやDelete、ToString/Parseなどが使えます。

Jsonオブジェクト

JSONは配列以外にオブジェクトもありますよね?そちらも一応使えます。

ただ検証段階ではstringのParseは動くものの、Addがうまく動かせていない…
現状、外部からデータを取ってくる際に使うことになりそうです。

文字処理関連

BASE64ハッシュ関数、ハミング距離などが追加されています。

認証などに使うことを想定しているのでしょう、多分。

Material

プラグインではToonを増やすこともできるようです。
NeosPlusでは、MToonとTestMaterialが追加されています。

MToonはVRM向けのトゥーンシェーダのため、XiexeToonの代わりになりそうです。VRoid Studioで作ったアバターと相性がよさそう。
TestMaterialは…何だろう…?

Clothコンポーネント

NeosPlusには布を再現するClothコンポーネントが追加されています。
このコンポーネントは例えば、球体にClothを設定して重力をかけると右画像のように変形します。

アバター向けに有効な機能ですが、少し分かりづらい機能なので手順を解説

1. テスト用のオブジェクト準備

球体を2個用意し、片方にCloth、片方にClothSphereColliderコンポーネントを追加します。
Cloth側はメッシュが多いもの、Collider側はSphereCapsuleを設定するのがよいでしょう。

2. コライダーの登録

ClothSphereColliderをClothの「ClothColliders」のListに追加します。

これはDynamicBoneと同じと思えばよいかと思います。

3. Clothのメッシュを設定

Clothは独自のメッシュを保持し、それを変形させる仕組みのようです。
そこで、メッシュとマテリアルの設定をMeshRendererからClothに移します。

  • MeshRendererのMeshとMaterialsをClothのMeshとMaterialsに転記する
  • MeshRendererのEnabledをオフにする

4.Clothの動作を試す

ClothSphereColliderを設定した球体を、Cloth側に衝突させてみましょう。
すると変形するはずです。

後は適宜Dampingの値を変えて変形度合いを調整します。

変形しすぎた場合

ClothEnabledのチェックを一度OFFにすると戻ります。

重力を表現

Collider側を中に入れた状態でUseGravityを有効にすれば、布のように被さります。

Rigidコンポーネント

patreonの先行ビルドにはRigid(剛体)コンポーネントが含まれています。
…が、使い方が分からなかったので今回は省略

おわりに

以上、NEOSPlusプラグインの紹介でした。

通常Neosの機能不足に飽きたら一度行ってみても良いかもしれません。

本家のリリース来てくれないかな

明日と明後日(12/12,13)は銀鮭さんがライテルさんへの友情を語ってくれるようです。ご期待ください。