ユーザ用ツール

サイト用ツール


vci:script:tutorial

VCIScriptのチュートリアル

VCIスクリプトはLua言語によって実装されています。
ここでは VCI作成 で作成したVCIを使って実際にスクリプトを書き、VCIに追加していきます。
デバックはバーチャルキャストを実行しながら行います。


スクリプトの作成

スクリプトの基準となる[EmbeddedScriptWorkspace]フォルダは、

C:/Users/__USER_NAME__/AppData/LocalLow/infiniteloop Co,Ltd/VirtualCast/EmbeddedScriptWorkspace

となります。
ここで作成したスクリプトをバーチャルキャスト上で実行することができます。

※AppDataフォルダが非表示になってる場合はエクスプローラーオプション(フォルダ設定)から[表示 > 隠しファイル]にチェックを入れてください。


(1)VSCodeでフォルダを開く

EmbeddedScriptWorkspaceをVSCodeで開きます。
メニューの[ファイル] > [フォルダーを開く]をクリックして、上記ファイルパスを選択してください。

VSCodeのサイドメニューにEmbeddedScriptWorkspaceのエクスプローラーが表示され、ソースを参照しやすくなります。


(2)対象VCIの専用フォルダ作成

バーチャルキャスト上でVCIアイテムを出すと、対象のVCIフォルダが自動生成されます。
例えばVCIsampleというアイテム名であれば、`VCIsample` というフォルダが作成されます。

THE SEED ONLINEからVCIを入れた場合

VCIを出した時点でフォルダが作成されます。
この中に書かれたmain.Luaを編集すればスクリプトの書き換えができます。
(バーチャルキャスト実行中に可能、SEEDに上げなおす必要はありません)


(3)main.luaを作成

上記で生成されたフォルダに `main.lua` を作成します。 EmbeddedScriptWorkspace/template.luaをコピーして `main.lua` にファイル名を変更するのがお勧めです


printとConsoleの確認方法

VCIアイテムのデバッグ設定


  • config.jsonに以下の内容を追加
  "embedded_script": {
    "websocket_console_port": 8080,
    "vr_debug": true
  }
  • config.json 全体
{
   "embedded_script": {
      "websocket_console_port": 8080,
      "vr_debug": true
   }
}
  • websocket_console_port
    • WebSocketコンソールを有効にします。設定値はVCI-Embedded-ScriptのWebSocket LoggerをHostするTCP Port番号になり、0より大きい値の場合に起動します。
  • vr_debug

VR内コンソール


全般
  • バーチャルキャスト内にデバッグコンソールが生成される
  • コンソール画面は自分にだけ表示され、Monobitで同期されていない(ほかの人からは見えない)
  • 通常のアイテムと同様に、掴んで動かしたり両手で持って拡縮することは可能
LuaSysmteConsole
  • 主にVCIスクリプトのSystemメッセージが表示される
  • スレッドが停止したり、応答が無い場合など
SharedVariableConsole
  • 共有変数を使用した場合に、内容がjsonで表示される
ItemConsole
  • アイテム個別のコンソール
  • アイテムの出現時に生成され、アイテムを消すと一緒に消える
  • 掴んでグリップすることで、以下の表示内容を見ることができる
    • Console
    • SubItem一覧
    • Material一覧
    • Animation一覧
    • Audio一覧

WebSocketコンソール


  • バーチャルキャストを起動し、スタジオ内に入室した状態でlocalhost:8080にアクセスすることでVCIアイテムのデバッグ情報を見ることができる

ConsoleにPrintする


  • VCIスクリプト内で以下のように記述することでコンソールに表示されます
main.lua
print("VCIScript")

サンプルスクリプトをバーチャルキャストで確認する

1.下記サンプルをVCIフォルダ内の[main.lua]にコピー&ペーストして保存してください。

main.lua
GrabCount = 0
function onGrab(target)
    GrabCount = GrabCount + 1
    print("Grab : "..GrabCount)
    print(target)
end

2.バーチャルキャストの中で掴んだ時にConsoleにログが流れて、掴んだ回数をカウントできたら成功です。

※チュートリアルなので確認用のスクリプトとなります。
※VCIスクリプトの詳細は VCIスクリプトリファレンス を参考にしてください。

VCIスクリプトを組み込む

1.VCIを作成した時のプロジェクトを開いて、VCI作成のシーンを読み込みます。
2.[VCIObject]の[Scripts] > [Size]を1に変更してエンターを押します。
3.Inspectorが拡張するので以下のように入力します。
 [Name] > [main.lua]
 [Source] > [(完成したVCIスクリプトを張り付ける)]
文字数が多い場合(1万5000字以上)エラー表示が出ることがあります
4.シーンを保存して、再度VCIをExportします。
 メニューバーから[VRM] > [UniVCI-x.xx] > [Export] を選択し名前をつけて保存します。
5.THE SEED ONLINEにExportしたVCIを上書きすれば、VCIスクリプトが動くVCIの完成になります。

vci/script/tutorial.txt · 最終更新: 2019/07/26 20:10 by navana

ページ用ツール