バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はVRChatワールドの作り方を公式動画で学んでみたのでそれについての記事です。
Haptic Eventで振動追加したりドアをアニメーションで動かしたりしました。
前回の記事はこちら。

追記:
ドア開閉などイベントのトリガーについては別の記事で書いたので、良かったらこちらもどうぞ。
キー入力やVRコントローラーのボタン押したら切替えたりできます。






動画を見ながら学んでみる
とても参考になりました。
ありがとうございます(*^-^*)
8:00~11:00 Haptic Eventでドアが空いたらコントローラーが振動するようにする
これ動画の通りにやったらできてしまった。
ドアの開閉をBlockで受け取って…ってのはこれはOr条件みたいな感じかな。
動かしてみたら開く時も閉まる時も振動したので。
どちらかのSet LocalPositionが動作してtrueになったら、PlayHapticEventInHandを実行する…って感じだと思う。
あと例ではLocalPlayerにしてるけど、オンラインにアップした場合に動くか?或いはプレイヤー一人一人はローカルだからという解釈なのか…?実際アップしてみないとわからない。
11:00~アニメーションクリップで動かす
次はドアの開閉をトランスフォームではなくアニメーションクリップで動かすところ。
これができればワールドに配置したアバターやオブジェクトのアニメーションを変えたりできそう。
ドアにアニメーターコンポーネントを追加し、開閉のアニメーションを作る
ドアにアニメーターコンポーネントを追加する。
アニメーションウィンドウを開いて、アニメーションを新規作成する。
閉じた状態のはそのままでアニメーションのキーを打って、
開いた状態は上に上げてキーを打てばOK。
作り方は「プロパティーを追加」を押してトランスフォームのpositionを追加、赤い録画ボタンを押して緑矢印を移動させて録画する。
私はVeryAnimationが使い慣れているのでこちらを使いました。
Very Animation|Unity Asset Store
アニメーターを設定する
openとcloseを相互に行き来するトランジションを作って、bool型のIsOpenパラメーターを作成する。
transitionの条件はこんな感じ。trueとfalseでopenとcloseを切り替える。
「終了時間あり」はチェックを外す。
trueとfalseは逆だったかもしれない(~_~;)まぁやりながら調整してね。
↓の青い矢印みたいなのを動かせば、アニメーションの遷移を早くしたり遅くしたりできる。
再生ボタン押してテストしてみたけどちゃんと動作してるっぽい!
Udonを設定する
最終的にこんな感じになった。
ドアのアニメーターをudonグラフにD&DしてSetBoolでアニメーターのIsOpenを制御する感じっぽい。
SetBoolはString/boolにすればIsOpen変数を指定できる。
Exitのほうはfalseなのでチェックを外す。
これで動いた!
これでチュートリアル動画終わった。
動画は見るだけならすぐだけど、実際に考えながら手を動かすと時間がかかるね(;^_^A
でもそうしないと応用が利かないからね。
せっかくなので私の部屋も自動ドアにしてみるw
これだけだと「チュートリアル通りやったら動いた!」で終わりなのでさっそく私の部屋に学んだことを適用させます。
自動ドアだけじゃなくて配置したモデルのアニメーションを変えるのもできそう。
ドアの下にトリガーになる床を配置して、
扉には以前シェイプキーを仕込んであるから、トランスフォームいじらなくてもアニメーションがすぐ作れる。
一応扉全部仕込んでみたけどなんとか動いた!
ようやくギミックらしいギミックが仕込めた気がする。
近づくと自動で開いてますね。
注意したほうがいい点や気付いたこと
- 親オブジェクトにアニメーターコントローラーとUdon設定しても動く
- Udon Behaviorの参照がちゃんとされてるかチェック
- Udonの反映が遅い場合は一旦unity再起動すると動いた
こんなとこかな?
Udonノードグラフを書き換えてコンパイルしても、反映が遅いのか?Build&Testしても動かないことが多かった。
何度もunity再起動する羽目になったけどなんとか動いた。
どこか設定があるのかもしれないけど。
おわりに
なんとか動いて良かった。
少しはUdonのことが分かってきたかな?
あとは自分で考えながら組んでみるしかないかもしれない。
まだチュートリアル動画は続きがあるからそれもやろうかな。
あとyoutubeにVRChat海外勢の人たちもたくさん動画上げてくれてるから、そういうの見ながらやってみようかな。
まぁぼちぼちいじっていきます(*^-^*)
追記:
ドア開閉などイベントのトリガーについては別の記事で書いたので、良かったらこちらもどうぞ。
キー入力やVRコントローラーのボタン押したら切替えたりできます。


