前回やったこと
環境構築・・・具体的にはUnityを準備して、SDK3を入れた。
この後何しようとなってしまったので、とりあえずチュートリアル的な動画を見つつ、方針を決めたので、今回はそこを目指してやっていく。
とりあえず最初にしたいこと
まずはどこの解説サイト見ても、最低限、
- 床おいて
- 椅子置いて
- 鏡を置いてオンオフできるようにして
- ビルドする
といったかんじで、Hello World的なことをしようというふうだったので、この4点(内容的には3点)をまずはやる。
床
シーンに床になるオブジェクトをPlaneで作って終わり。
とはいかず。
どうやらVRCWorldというのを置く必要があるそう。
というかこれがあることでワールドになるらしい。
とりあえず、シーンにExampleのPrefabに入っていたVRCWorldをコピー。
あ、あと床真っ白だと見づらいそうなので、マテリアルを作って、色つけて、床のオブジェクトにアタッチして色もつけておいた。
床、とりあえずクリア・・・?
ビルドしてみないとわからないけど。
椅子
PrefabからVRCChairをシーンに置いて終わり。
終わり・・・?????
本当か???
どうやら、今はとりあえずこれでよさそう。
どうにも、実際任意のモデルとかを使って作るときは、このPrefabを重ねる・・・子にすることで、そのモデルに椅子の機能がつくらしい。
かしこくなった!!
鏡
これもPrefabからMirror自体をシーンに引っ張ってきて・・・映った!
ではスイッチを作ろう。
キューブで適当にぽっちつくってー、動画とか資料ではVRC_Triggerとかいうコンポーネントを追加しt・・・ない!!
VRC_Triggerないよ??
はい。調べました。
SDK2と3の決定的(?)違いらしい。
SDK3を入れたときからよく目にしてた、Udonの正体。
このUdonシステムみたいなのを使うらしい。
VRC_Triggerではなく、udonBehaviour
なんか急にうどんでてきた。
どうやら、どうしたらどうなるというプログラムを矢印の線つなぎで組めるすごいやつらしい。
とりあえず、やってみる。
参考資料
スイッチになるキューブにコンポーネントを追加。
ここまでは同じ。
ここで、追加するのが、VRC_Triggerではなく、udonBehaviour。
そして、UdonBehaviorでNew Programする。
このとき、U#とかいう言語(?)で書くか、線つなぎで作るかを決められるらしい。
線つなぎでとりあえずやりたいので、Graphって書いてあるのを確認。
Open Udon Graphして、フローチャート図書けそうな画面を開く。
この画面で線つなぎをしていくらしい。
とりあえずつなぐもの(「~したら」や「~する」というブロック)をノードというそうなので、まずはノードを出す。
- 使ったら→Event > Interact
- 物のオンオフ→UnityEngine > GameObject > SetActive
- 鏡の変数を用意→Variableで+ > GameObject([]なしのやつ)
- 作った鏡変数を場に出ていなかったら出す
- 鏡変数にVRCMirrorを設定→鏡変数の>でパブリックにすると、インスペクター(右の画面)のUdonBehaviourで変数のところが設定できるようになるので、ヒエラルキーから鏡をアタッチ
- SetActiveの青丸から鏡変数の青丸につなぐ
これで鏡をオンにはできるようになったよう。
鏡のオンオフ切り替え
上でオンにすることはできたらしいので、今度はオンオフ切り替えできるようにしたい。
先程の参考資料を読み進めてみると、つまるところ、条件分岐を作ってやればいいらしい。線つなぎで。
これ、もしかしたらがんばってコードで書いたほうが楽・・・?
とりあえずオンオフつくるのに使ったノードだけ。
- branch→条件分岐のノード。booleanっぽい。Special > branch
- SetActiveとかに名前を付ける→Custom Event。「その名前を読んだら」にあたるノードらしい。Special > Event Custom
- 名前を呼ぶノード→UdonBehaviour >UdonBehaviour.SendCustomEvent
- SendCustomNetworkEvent→SendCustomEventの同期版。みんなで見る鏡とかのみんなが使えるようになってほしいときはNetwork、個人のみ動いてほしいときはSendCustomEvent。
- Get activeSelf→オンオフ確認に使う。trueかfalseかチェックみたいな。UnityEngine > GameObject > get activeSelf
ついでに、スイッチのUdonBehaviourのinteruction textでホバーメッセージを変えられる。
ここまでできたので一旦ビルドしてみる。
ビルド
VRChat SDK > Show Control panel > builber で、なんか言われてたら対処して、ビルド&テストみたいなやつでVRChatを起動。
1回目・・・鏡がつかん。と思ったら、enableとdisableを逆に繋いでた。
2回目・・・やっぱりつかん。と思って3秒悩んで、これ、ローカルだからネットワークのやつ使えない??とか思ってやってみたら当たり。ローカルだとCustom Eventでできた!
冒険はこれからだ!!的なやつ
とりあえずHello World的なことはできたので、第1歩は踏めたと思いたい。
今後は床にテクスチャとかをやってみたい。
あと、とあるとこの再現とかもいずれ。