おはこんにちこんばんわ、うぐいすです。
最近はVRChat内でBARを開いていましてそちらにギミック入りの小物を追加しています。
以前はSDK2.0でギミックを作っていたので、今まではほけ様のTrigger2to3を使わせていただいてました。
ですが8月14日にCyanTriggerという新しいギミック組めるものが一般公開されたので折角だし新しいの使ってみようということで少し触ってみました。
触った際にサンプルを作ったのでそちらを配布します。
一番最後にありますのでよければ参考にしてください。
CyanTriggerについて
■CyanTrigger配布場所
テキストエディタでプログラムを書いたり、ノードでグラフをつないだりせずに項目を選んで追加する方式でギミックを制作できるツールです。
SDK2.0時代のVRC_Triggerに仕組みは似ていますがUIは結構違います。
UIや操作感はほけ様のTrigger2to3の方が近いなと個人的には感じました。
Trigger2to3に関しては公式ドキュメントが日本語でわかりやすいです。
詳しくはこちらの公式のGitHubをご覧ください。
CyanTriggerはUDONのすべての機能が使えるそうなのでその点ではCyanTriggerの方が優れています。
後は変数が使えるのと、コメントが入れられること、コライダーやトリガーで判定するものがレイヤーを使わなくても特定のオブジェクトのみという組み方ができるのでその点が便利だなと感じました。
ただ公式ドキュメントやサンプルや色々すべてが英語です。
またブログを書いた現時点では新しいのであまり情報も転がってない気がします。
CyanTriggerの使い方、画面説明
ダウンロード、インストール
CyanTriggerを配布しているBOOTHでツールをダウンロードします。
■CyanTrigger配布場所
寄付もありますので使ってみてよければ投げ銭もできます。
WorldのSDK3もダウンロードしておきましょう。
■SDK3のワールド ダウンロード場所
Unityの2019.4.29f1をダウンロードして、起動した後SDK3のunitypackageをダブルクリックしてインポートします。CyanTriggerも同様にunitypackageをダブルクリックしてインポートします。
使い方、画面説明
オブジェクトにCyanTriggerのコンポーネントを追加する
unityを起動したらヒエラルキーにオブジェクトを出します。
何でも良いですが今回はキューブを出しましょう。
キューブを出したらキューブを選択してインスペクターのところにあるAdd Componentをクリック。クリックした後にcyanと検索窓に入力してCyan Triggerをクリックします。
初期画面の説明
クリックして追加するとCyanTriggerのscriptがインスペクターに追加されると思います。
Variables(変数)
変数を管理するところです。変数っていうのはなんか色々入れておける箱だと思ってください。
箱の中に数字をいれたり、オブジェクトをいれたり、好きなものをいれて保管しておき、後で取り出したり出来ます。同期関連にも変数を使います。
Sync Method(同期方法)
同期方法です。
VRChatの同期方法は2つあるようで連続同期と手動同期があると書かれていました。
■連続同期(Continuous)
よく変更されるデータの変数に使う。
定期的にデータを自動的に取得してすべてのクライアントに送信する処理をしている。
連続同期は重いらしい。
値が変更されてなくても送信されている。
■手動同期(Manual Sync)
あまり変更されないデータに使う
変数を変更するには処理が必要で手動でやらなきゃだめ
ただ、めっちゃ高速で変数の同期には推奨されている
後、CyanTriggerが用意しているManual With Auto Requestっていうのがあって
こちらは変数を変更したときにVRChatに同期してくれる処理を自動でやってくれるものみたいです。初期値はこれになってたと思います。基本はこれでいいです。
Add Event(イベント追加)
イベントを追加します。SDK2を使ってた方はIntractとかPickupUseDownとかでピンとくるかもしれません。
例えばですが「このオブジェクトを使った時に中の処理を発動させる」といったような開始条件のようなのを追加するところになります。その開始条件が色々沢山用意されているので選んで使います。
沢山あって選んで使ってって言われてもたぶん困ると思います。
なのでよく使うイベントを下にまとめときました。参考にどうぞ。
名前で検索かけたら出てくるので探すときは検索を使ってください。
個人的によく使うかなと思うイベント
■Intract
オブジェクトを使った時、何かしらのアクションを起こします。
使うとオブジェクトが出てくるだとか、使うと明かりがつくだとか、使うと声が大きくなるとか、まぁ使うと何か起こるオブジェクト全般に使います。
■OnPickupUseDown
オブジェクトを持った状態で使った時、何かしらのアクションを起こします。
使う場面としてはお酒を飲むギミックだったり、お酒を出すギミックだったり、持って食べれるアイテムとか作るのに使えます。あと持ってるアイテムを使うことで変形させたりとか、色を変えたりとか、いろんなことができますね。
■OnPlayerJoined
プレイヤーが入ってきた時に、何かしらのアクションを起こします。
これはワールドにだれかが入ってきた時の通知音に使えます。
後はイベントの時の注意文を表示したりにも使えます。
■OnPlayerTriggerEnter
プレイヤーがTriggerに入ったときに、何かしらのアクションを起こします。
Triggerって何ですかって思う方もいるかと思います。
右の赤い矢印の部分にIs Triggerっていうのがあると思うんですが
これをいれておくとコライダーがプレイヤーが通り抜けられる判定用オブジェクトみたいになります。
この画像で説明すると左の緑の四角の範囲にプレイヤーが入ったときにアクションが起こることになります。
これがなんに使えるかといえば、入ったらテレポートするワープゾーンとか、入ったら扉が閉まるとかいう罠とか、通り抜けたら後ろから岩落ちてくる罠とか、思いつくのが罠ばっかですが色々できます。
イベント追加後の画面説明
初期画面の説明が終わったのでイベントを追加して見ましょう。
Add Eventをクリックして何でもいいですが今回は上から2番目のIntractを追加します。
イベントを追加すると項目が増えます。
Other Setting(その他設定)
■Intraction Text
使うときに出てくる説明の文章を設定するところです。
Intractの時にしかないかも。
■Proximity
使うことのできる距離。この数値が大きくなると遠くからアクセスできるはずです。
ただ2.0時代は何かないと機能してなかった気がする。今はどうかわからないです。
Event head(イベントの上にある項目)
下記の画像の部分です。
■オレンジの部分
誰が処理を動かせるか設定するところになります。
Anyone 誰でも
Owner オーナーのみ
Master マスターのみ
User Allow List 許可リストを作ってその名前の人だけ操作できる
User Deny List 拒否リストを作ってその前の人だけ操作できない
Instance Owner インスタンスオーナーのみ
■赤の部分
local
イベントを起動した本人だけに処理を実行
Send to Owner
このオブジェクトのオーナーに処理を実行
(起動するのはオーナーじゃなくてもできる)
Send to All
インスタンス内にいる全員に処理を実行
Delay in Seconds(秒数分遅らせる)
記入した秒数分、処理を遅らせることができます。すぐ処理するのではなくちょっと遅延させたいときに使えます。
Action(起こる処理)
下の画像の部分です。
実際の動作を追加するところになります。こちらもイベントと同じく大量にあるのでよく使いそうなものを後でまとめるのでよければ参考にしてください。
SDK2時代にギミック組んでた方はSDK2というところを見ればほぼ同じようなものがあるのではないかと思います。イベントと同じくアクションも検索で探せるので活用するといいかもしれません。
個人的によく使うかなと思うアクション
いずれも上記の画像赤色の部分のSDK2の中に入っているアクションです。
そちらで検索をかけたら見つかると思います。
■GameObject.SetActive
オブジェクトの表示、非表示ができます。アイテム出したりしまったりするときに使います。
赤色の部分に設定したオブジェクトが表示されたり非表示されたりします。
青色の部分で表示、非表示の設定ができます。
■GameObject.ToggleActive
こちらもオブジェクトの表示、非表示です。
ただトグル方式になっているので表示されているときに非表示に非表示の時に表示させることができます。
赤色の部分に設定したオブジェクトが表示、非表示されます。
こちらはトグルなので表示、非表示の設定はありません。
■VRCPlayerApi.TeleportTo
プレイヤーをテレポートさせるアクションです。
ワープゾーンとか触ったらワープするスイッチとか作るときに使います。
赤色の場所にヒエラルキーからテレポートしたい場所にあるオブジェクトを追加します。
基本はEmptyのオブジェクト作って設定しておくのがいいと思います。
■Transform.Teleport
オブジェクトをテレポートさせるアクションです。
ボタンをおしたら特定の位置にアイテムが行くギミックや
アイテム位置のリセットとかに使えます。
赤色の部分にテレポートさせたいオブジェクトをヒエラルキーからドラッグ&ドロップで入れます。
青色の部分にテレポートさせる場所のオブジェクトをいれます。
プレイヤーテレポートと同じでEmptyオブジェクトでいいと思います。
■AudioSource.Play
音を鳴らします。
プレイヤーが入ってきた通知音や、
ボタンを押したら音が鳴るギミックが組めます。
赤色の部分にオーディオソースをいれます。
■ParticleSystem.TogglePlay ParticleSystem.Play
パーティクルを再生します。
トグルの方は再生されてた場合停止して停止されてた場合再生します。
Playの方は普通に再生するだけです。
きらきらしたパーティクルを表示したいとかそういうときに使います。
赤色の部分に再生させたり、停止させたりしたい
パーティクルオブジェクトをヒエラルキーからドラッグ&ドロップします。
青の部分で状態を変化できます。チェックが入ってる時が再生でチェックが入ってないと気が停止状態です。
トグルに関しては下にあるwith childrenがなく、再生の時に停止、停止の時に再生される感じになります。
CyanTrigger公式WIKIや情報
■画面説明
公式WIKIにすべて英語ですが…詳しく書いてあります。
グーグルクロームには右上に翻訳機能があるので自動翻訳して読めば何とか読めます。
わかる範囲でこのブログで日本語で説明していますが
そんなめっちゃ詳しくはないので、本当に正しい詳しい情報が
欲しい方はそちらを読むのがいいと思います。
■ギミックサンプル集
WIKIの方にもギミックサンプルがあります。こちらに同期ボタンの作り方もありました。
同期ボタンに関しては動画もあって、扉の開き方をやってましたね。
後は公式のunitypackageにサンプルシーンがついてます。
そちらもいろんなギミックがあって見ると勉強になるかと思います。
内容はすべて英語ですが…。
combatと普通のがあって、combatは戦闘系のギミックだそうです。
■CyanKey
後はCyanKeyという脱出ゲームを公式の方がCyanTriggerで組んだ例があるみたいです。
中身見たら参考になるかもしれないですね。
配布されているSDK3ギミック
作るの難しいし面倒って方向けにおすすめの既存ギミックもまとめておきます。
どなたかの役に立ったら幸いです。
■[無料版あり] VRchat向け 基本的でシンプルなUDONギミック
南緯74度のsarua様が配布している基本ギミック集です。これだけあれば十分そうな気がします。
■[VRChat]無段階高さ調整椅子 SDK3
KineLのnirila様が配布している
SDK2の時にあった調整椅子と同じギミックの椅子です。
自分のBARでありがたく使わせていただいてます。
■Lura’s Switch
仮想狐のデザイン工房様が配布している色んなワールドで見かけるスイッチ。スイッチならこれを使ったらいいかもしれません。
■Qv Pen [VRChat][SDK2][SDK3]
Package Shop @aivrcのureishi様が配布しているペン。こちらもいろんなワールドに置いてあります。私も使わせていただいてます。
■VRC Udon Starter Kit β Ver0.90
てすらのデザイン研究所のてすら博士様が配布しているワールドギミック集です。使い勝手良さそうなギミックが多そうです。
BOOTHでサンプル配布しています
BOOTHで自分が作ったサンプルギミックを置いてます。
良ければ参考にどうぞ。
ちょっと最適化が甘い部分が多いと思ったので、時間ができたらその辺りも考えて直したいなと思っています。また、今回配布したギミックについての解説とかも時間があれば書こうと考え中なのでのんびりお待ちください。
コメント
[…] Cyan Trigger についてと SDK3 配布ギミックまとめ | 梅に鶯 […]
[…] Cyan Trigger についてと SDK3 配布ギミックまとめ | 梅に鶯 […]