Open4
寝るよ~
VRChatでついつい夜更かしして、体調を崩してしまうことも...
そんな問題を解決するために、指定時刻になると倒れるギミックをアバターに搭載。
ここには『寝るよ~(仮称)』の技術的なメモなどを記録予定。
アバター側
TODO:画像を貼る
頭上に時刻を表示するためのオブジェクトを追加。
オブジェクトは6つの子オブジェクト(1
/2
/:
/3
/4
/に寝るよ~
)を持つ。
時刻は0~9が並んだテクスチャ画像をliltoonのUVスクロールで変更することで表現。
パラメータは以下の6つ:
パラメータ | 型 |
---|---|
時の十の位 | integer |
時の一の位 | integer |
分の十の位 | integer |
分の一の位 | integer |
時計表示/非表示 | boolean |
アニメーション(VRCEMote) | integer |
※パラメータの削減の観点からすると時/分は桁ごとに分けない方が良いが、今回は実装のシンプルさを優先した。
外部アプリ側
時刻指定用のWEBページをローカルに用意し、XS Overlayから操作する仕組み。
VRコントローラーから操作しやすいように画面いっぱいに特大のテンキーを配置。
時刻を入力すると、OSCを通して時刻パラメータが設定され、時計が表示される。
同時にサーバー内でその時刻にイベントが発火するようにスケジュールされる。
指定した時刻になると、OSCでVRCEmote
を8
にするようにコマンドを送信する。
これはデフォルトのアニメーションでDie
に割り当てられている。
SteamVR Overlay版
この記事を参考にOverlayを作成。
上記WEBページで行っていたことをOverlayのDashboardに移植した。
Unity内でゲームモードにしたときは快適に動作するものの、exeにビルドして実行するとかなりカクついてしまう。
以下の記事が参考になりそう?
またdashboardだけあれば十分だが、exeを起動すると全画面の真っ黒な画面が表示される。
画面なしにできないか調べてみる。