第八回 コンポーネント紹介【直線的に動かす】

第八回 コンポーネント紹介【直線的に動かす】 Neosアーカイブ記事

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

直線的に動かす系のコンポーネントを5つご紹介いたします。
値を動かしたり、物を動かしたりできます。

前回はコチラ

これからはTransformのDriversに入っている動かす系のコンポーネントを取り扱いますので、とりあえず下記のリンクをご参照下さい。

・Neos Wikiのリンク【ドライブについて】
https://wiki.neosvr.com/Drive/ja

Panner(パナー)

0から指定の数値まで、一定の速度で値を駆動するコンポーネント。
Float1~4型の値を動かせる。周期的な動きが作れる。

・場所
Transform/Drivers/

項目解説初期値
_target:駆動したい値欄を指定。null
_offset:繰り返す値をずらす。0
_preOffset:駆動する値をずらす。0
_speed:速さ。0秒
_repeat:繰り返す量。1
PingPong:往復させる。無効

・使い方
適当なスロットにアタッチ。
_targetを指定して、_speedを設定。

・補足
マテリアルの模様を動かしたり、物の座標や大きさを動かしたり、他のコンポーネントと組み合わせたり等、様々な動きを作る事ができる汎用的なコンポーネントです。
_targetに回転(FloatQ型)欄は指定できません。(回転系は次回やります。)
0から指定の量(_repeat)まで、指定の速さ(_speed)で駆動する。
_offsetの例、_repeatが2で_offsetに-1を設定した時は-1~1の間で駆動します。
_preOffsetは別のパナーを用意すると分かりやすいです。駆動する値をずらせます。
逆に動かす場合は_speedにマイナスを入れればOK。
_speedを書き換えると、その都度駆動値が変化するので加減速的な変化はできません。別のコンポーネントを組み合わせて疑似的にやるか、LogiXでやりましょう。
_speedを0にした時やEnabledを無効にした時、駆動値は0になってしまいますが、スロットのActiveを切ることで一時停止する事ができます。
1D~3Dはよく使うけど、4Dの出番は少ないっぽい。マテリアルのカラーを駆動する場合はFloat4ToColorSwizzleDriver等を組み合わせることで可能。
3Dアクションゲームで定番の動く床も作れます。(人や物を乗せて移動できるようにする為のコンポーネントが別にあります。そのうち紹介します。)

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

・関連
Spinner

Wobbler(ウォブラー)

ヨロヨロするコンポーネント。
Float1~4型の値を動かせる。ランダムな動きが作れる。

・場所
Transform/Drivers/

項目解説初期値
_target:駆動したい値欄を指定。null
_baseValue:基準の値。0
_speed:速さ。0秒
_magnitude:大きさ。(振り幅)0
_seed:乱数の種。ランダム

・使い方
適当なスロットにアタッチ。
_targetを指定して、_speedと_magnitudeを設定。

・補足
パナー(PingPong有効)をランダムにしたようなヤツ。
_baseValueを基準として、_magnitudeの量だけ動く。例えば、_baseValueと_magnitudeをそれぞれ0.5に設定すると、0~1の間で駆動値がヨロヨロとランダムに変化する。
逆に動かす場合は_magnitudeにマイナスを入れればOK。
_seedは大きい数だとおかしくなるので、初期値をそのまま使うのがおススメです。
別の_seed欄に同じ値を入れれば、同じ動きになります。
_speed等を書き換えると、その都度駆動値が変化します。
Enabledを無効にすると一時停止できます。
ちなみにウォブラー3Dの場合は、自動的にアタッチしたスロットのScaleが_targetに指定されます。_baseValueも同じく設定されます。

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

・関連
Wiggler

AxisPanner(アクシス パナー)

軸に沿って物を動かしつつ大きさも変えられるコンポーネント。
何かが通過していくアニメーション(流れる景色)等が作れる。

・場所
Transform/Drivers/

項目解説初期値
TimeBase:AuthorityTimeBaseコンポーネントを指定する。null
Speed:移動する速さ。0秒
Range:移動する距離。0m
Offset:位置の調節。0m
Axis:移動する方向。z 1(前方向)
ReferenceScale:中間地点での大きさ。0
FullScaleRangeRatio:大きさを維持する比率。0
_position:駆動したい値欄を指定。自スロットのPosition
_scale:駆動したい値欄を指定。null

・使い方
動かしたいスロットにアタッチ。
SpeedとRangeを設定。

・補足
スケールの変化は_scaleに動かしたいスロットのScaleを指定して下さい。
ReferenceScaleの初期値は0なので、そのままでは何も表示されないです。
逆に動かす場合はSpeedかAxisにマイナスを入れればOK。
Speed、Axis、Enabled、Activeでは一時停止できない。(位置が戻ったり、動かした時にワープしちゃう。)
初期設定だと座標が0になってしまうので、親スロットを作成して移動するか、Offsetを設定して調節しましょう。
ちなみにTimeBaseにオソーリティタイムベースを指定しなくても動かせるけど、加減速や一時停止等を滑らかに行いたい場合は必要です。

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

AuthorityTimeBase(オソーリティ タイム ベース)

アクシスパナーに使うコンポーネント。

・場所
Utility/

項目解説初期値
BaseSpeed:速さ。0秒
TimePosition:
_actualSpeed:?自動
_actualOffset:?自動

・使い方
適当なスロットにアタッチ。
BaseSpeedを設定。

・補足
アクシスパナーのTimeBase欄に使う。このコンポーネントかSlotの名前を掴んで放り込むと入る。
BaseSpeedを変更して滑らかに加減速できちゃうのスゴイ。マイナスを入れれば逆方向にもできる。
アクシスパナーのSpeedと掛け合わさってるっぽい。
これ1個で、複数のアクシスパナーを制御できるので、流れる景色のアニメーションが容易に作れる。
鉄道の車窓や、2D横スクロールゲームの背景等のアニメーションを作る場合…
木、山、雲等のオブジェクトにアクシスパナーを設定して、それらを1個のオソーリティタイムベースで動かします。
加速や停止等をBaseSpeedで行うことで、全部のオブジェクトを支配して動かせます。
オブジェクトの移動速度を個別に変更したい場合は、アクシスパナーのSpeedを増減させればOK。

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

LineTransform(ライン トランスフォーム)

2点間を直線的に移動させることができるコンポーネント。
動的な2点間を往復するアニメーションを作ったり、常に2点間の中間位置にしたりも出来る。

・場所
Transform/Drivers/

項目解説初期値
Point0:点0の座標。0
Point1:点1の座標。0
Point0Anchor:点0の基準にしたいSlotを指定。null
Point1Anchor:点1の基準にしたいSlotを指定。null
LinePositionType:相対的か絶対的か。Relative
PlanePositionType:?Relative
LinePoint:点0からの距離。(相対なら割合、絶対ならメートル。)0
OffsetPoint:距離の調節。0
RotationOffset:回転の調節。0
_position:駆動したい値欄を指定自スロットのPosition
_rotation:駆動したい値欄を指定自スロットのRotation
AllowRepositioning:?有効
RepositionOffset:?有効

・使い方
動かしたいスロットにアタッチ。
Pointを設定又は、PointAnchorを指定。
LinePointを設定。

・補足
初期設定だと座標が0になってしまうので、親スロットを作る等して調節しましょう。
2点の指定は自由にできます。座標かSlotを使います。組み合わせて使用することも可能です。
PositionTypeはRelative(相対)とAbsolute(絶対)の2種類。相対の時LinePointを0.5にすると、常に2点間の中間位置になります。
LinePointの値を、パナー1DやLogiX等で駆動することで2点間を移動するアニメーションが作れます。
動的な2点間を移動するだけではなく、向きも制御されるのでLookAtコンポーネント等に似た動きも作れます。
工夫する事で、槍のような両手で持つアイテムを作ることも可能です。

宣伝になりますが、MMC22(メタバースメーカーコンペディション2022)に出展したワールド『TENINU Field』で、このコンポーネントを活用しています。パーフェクトなテニスが出来るワールドですので、是非遊んでみてください。

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

おわり

以上で第八回は終了です。拙文ではございますが、最後までご覧頂きありがとうございました。
ちなみに、私が書いているコンポーネント紹介記事でのカタカナ表記(コンポーネント名)は私が勝手に付けているだけなので、あくまでも参考程度に留めておいてください。
次回は回転系のコンポーネントを紹介予定です。
お楽しみに!

第九回 コンポーネント紹介【回転】

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