VRChatワールド制作研究①

VRChatのワールド研究をしているので色々まとめていきたいと思います

今回は球体の中からパーティクルを放出するというものを作ってみました


まず最初は普通に球体を用意して、そこに親付けする感じでパーティクルを埋め込みました

最初見て思ったのは、常にパーティクルを放出しているとちょっとあれだったので、ボールが動いている時のみパーティクルが出るようにしようと思いました


というわけで動いているときのみパーティクルを放出するようにするスクリプトを作成しようということになりました

最初は確認のためにオブジェクトを自動で動かしてパーティクルを出力しようと思ったので



こうしてみました

Unity上で再生したらちゃんとオブジェクトはX方向に移動しました

でもVRChat上ではX方向に動いてくれない…

でちょっと色々調べてみたら…

どうやらC#スクリプト使わない(というか使えない)らしいです


というわけでここまでの説明はすべて忘れて!

色々調べた結果VRChatの開発には「U#」というのを使用するようです

中身はC#と同じようなものらしいです


そしてさらに「CyanTrigger」というのを使用するのがよさそうだと分かりました

色々設定するだけで勝手にU#プログラムを組んでくれるものらしいです

VRChatSDK2では「VRC_Tigger」というので色々やれたらしいのですがSDK3になってからVRC_Tiggerが無くなってしまったようです

それを復活させたのがCyanTriggerらしいです

普段はソースコードも書きますが最初はこれに頼って色々やってみようと思います(ついでに効率化のために)

というわけでこのCyanTriggerを使用してパーティクルのオンオフをしてみたいと思います(説明は…ごめんなさいいつも通り省略です…)


というわけで色々なサイトを参考にスイッチを作ってみました

でヒエラルキーの中にある「ballTrajectoryParticle」(自作パーティクル)をActionsの右下のSDK2からGameObjectを選び、その中に挿入しました

その結果スイッチを押すとボールからパーティクルが出るようになりました!

とりあえずこれでまた色々制御が出来そうです


今後の目標

ただの報告?みたいなものなので今回はここまでにしたいと思います

目標だけは書いておこうと思います

パーティクルボールを持ってる時だけパーティクルを放出できるようにしたいですね

スイッチだけだと正直めんどくさい…

あとはCyanTriggerを使用してちょっとしたミニゲームを作ってみるとかでしょうか

まずは簡単にボールを投げる的に当てるゲームを作ってみたいですね

というわけでここまで読んでいただきありがとうございました(読みやすいポートフォリオ作りたいサイリウムでした)