Triggerセットでワープするスイッチ~UnityぐりぐりしてVマケ~
VRC Triggerを使ってみよう
VRC World作成で、Trigger発生させてみた。
すけあくろうSpawn
なんの変哲もない箱
うっすら緑のとげが生えてるのはParticleで芝作ろうと思った名残
(わりとそれっぽく見えなくもない。Particleなのでウゴウゴしてて、風になびているように見えなくもない。)
クリックするとオジさんが飛び出すシステム
(シュールすぎて一人で笑ってた)
やり方はぐぐればすぐ出てくる。セットアップしているCubeのInspectorがこちら
(なお飛び出したオジサンは飛び出したままである。)
1. Add Component-> VRC Trigger で追加する。EventHandlerとTriggerが追加される(Handlerはとりあえず無視してOK)
2. 適当にぽちぽちしてそれっぽいイベントを探す。(正しくは、リファレンスなりを見て適切なイベントを探す)
今回は
OnInteract(VRCのクリック操作)に対して、SpawnObjectを選択。SpawnするObjectはVRCSDKから拝借してそのまま。
てな具合にすぐできる。
あばたーじゃんぷ
同じ流れでアバターを任意のオブジェクトにワープさせられる。
ワープ先のcubeにもTriggerを付与して(OnAvaterHit とTeleportPlayerの組み合わせ)で次々ワープさせている。
1段目のジャンプ
2段目のジャンプ
3段目のジャンプ。到着
うっすらオジサンが見える。
画像は最終的に調整したWorldで撮影してるけど、
最初は移動が速すぎて、認知できなかった。(クリックした瞬間最終地点に飛ぶ)
ので、各移動先で次のTriggerが実行されるまで
ディレイをかけた(DelayInSeconds)
移動しただけだと微妙なので、Particleの放出させることにした。
移動先の各地点のOnAvaterHitに、Teleportに追加する形でSetParticlePlaying付与させたかったけど
・Teleport用のOnAvaterに同居させるとこっちにもディレイが効いてしまって意味なし。
・それじゃあともう一つOnAvaterHitをAddComponentしたけど、今度は片方のOnAvaterHitしか反応なし。
なのですごく困った。
これであってるのか?感はいまだにあるけど、
結局、Particleの放出は一番最初のTelport地点のCubeで制御するようにした。
計3回ジャンプしているけど、途中の経由地点(ピンクと黄色のParticleを放出してる場所)
のParticleを「同じタイミング」で射出開始している。
このままだと、まだ到達していない2個め(黄色いほう)が勝手に放出開始されてしまうので、
2個目のParticleにはParticle自身にStartDelayを設定
だいぶ無理やり感がでてきてる。いい加減に作っても、それとなく動くからとっつきやすい感はありありと感じる。
好きなように作れてしまううえに、ネット上にはただやり方だけボコボコ書いてあるので、
他の人がつくったWorldとかちゃんと読めるのか非常に不安。