VCIで出来ないこと その3 スクリプト編


この記事はVCIアドベントカレンダー2020の参加記事です

内容を三行で

  1. できる範囲でやりたいことを実現しよう!
  2. 今回はunityでの設定でできないことをご紹介します。
  3. 3つに分けたので今後の記事も参考にしてね

敵を知り己を知れば百戦殆うからず

ネガティブなことを言うなと言われるかもしれませんが、何ができないか予め把握した上で、やりたいことを実現する方法を考えましょう。じゃないと、時間をかなり無駄にしてしまうこともあるので目を背けてはいけないと思います(百敗くらい)。ここではスクリプトでできないことを紹介します。前回記事unity上の設定でできないことや、VCIの仕様については別の記事で触れたいと思います。

スクリプト

  1. 部屋(スタジオ・ルーム)をまたいだ情報の保存
  2. 外部通信
  3. ファイルの保存
  4. 直接的な速度の設定・取得
  5. physical update
  6. luarockなどでインストールするような外部ライブラリインポート

部屋(スタジオ・ルーム)をまたいだ情報の保存

場所を移動したときにはそれまでの処理内容やアイテムそのものなどを受け継ぐことは出来ません。
唯一VCIの位置だけは保存されます。アップデートや落ちたときにはリセットされてしまうので完全な代替にはならないですが、どうしても何か保存したいときは使ってみてください。

外部通信

ネットワーク上から情報を拾ってきたり、逆にリクエストを送って保存しておくようなことも出来ません。
これが出来たら色々できそうなのですが、残念ながら対応してません。ただ、進捗報告会で開放されていないもののできるようには作っているそうなので、開発が進むのを待ちましょう。

ファイルの保存

ファイルの保存などに関係する関数は存在しますが、実行時に無視されてしまいます。
一応手元では調べ尽くしたと思いますが、あんまり公開するのもはばかられるので公開はしません。興味があったらご自身の目で確かめてみてください。

直接的な速度の設定・取得

直接的に速度をいじるような関数はありません(angular velocityを除く)。同様に取得もできません。速度を付加する際はaddforceを、速度を取得する際はpositionとtimeとから取るしかなさそうです。ただしこれはかなりブレるので(コチラを参照)工夫が必要です。

physical update

unityにはfpsを無視して一定間隔で実行するupdate関数もあるようです。これにアクセスできれば上記の問題は解決なのですが、現状アクセスできないようです。

luarockなどでインストールするような外部ライブラリインポート

だいぶ残念だったのですが、luaならtorch使えるのでは!?とか思ったりする方もいらっしゃるかと思うのですが、残念ながらインポートできるのは標準のものと、自作のものだけです。