Language:

サイドバー

バーチャルキャスト公式Wiki

メインメニュー

初心者向けガイド

VirtualCast

遊ぶ世界

THE SEED ONLINE

ニコニコ

SHOWROOM

配信

配信ツール

その他

wikiについて

デベロッパー向け


開発環境

VRM(アバター)

VCI(アイテム/背景)

VCI更新情報

更新日 - UniVCI バージョン
2021/03/17 v0.32
2.0.3b
2021/01/14 v0.31
2.0.1a
2020/12/03 v0.30
2.0.0b
2020/11/12 v0.30
2.0.0a
2020/10/22 v0.29
1.9.5b
2020/07/30 v0.29
1.9.3e
2020/06/25 v0.28
1.9.3c
2020/05/21 v0.27
1.9.2e

以前のアップデート履歴


GLB(背景)

vci:script:reference:exportme

vci.me(ExportMe)(ローカルマシンの情報)

VCIを取り出したユーザーのローカル情報にアクセスする事ができます。

メンバ変数・関数一覧

[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと一覧を確認できます。

---マシンローカルの情報
---@class ExportMe
---@field GetAxisInput fun(): Vector3
---@field GetButtonInput fun(id: number): bool
---@field GetHeadMountedDisplayIsMounted fun(): bool
---@field GetSystemVersion fun(): string
---@field CompareSystemVersion fun(version: string): number
---@field GetHeadMountedDisplayType fun(): string
---@field GetHeadMountedDisplayName fun(): string
---@field GetLanguageCode fun(): string
---@field FrameCount number
---@field Time TimeSpan
---@field UnscaledTime TimeSpan
メソッド 説明 VCバージョン
GetAxisInput fun() VCIのキー操作の入力受付を行います
GetButtonInput fun() VCIのキー操作の入力受付を行います
FrameCount number クライアントを起動してから現在までのフレーム数
Time TimeSpan クライアントを起動してから現在までの時間
UnscaledTime TimeSpan Timeと同じですが、この値は timeScale の影響を受けません。
GetHeadMountedDisplayType fun(): string 使用しているHMDのタイプを取得します 1.9.2a以降
GetHeadMountedDisplayName fun(): string 使用しているHMDの名前を取得します 1.9.2a以降
GetHeadMountedDisplayIsMounted fun(): bool HMDを被っているかどうかの状態 2.0.0a以降
GetLanguageCode fun(): string 使用中の言語を取得します 1.9.2a以降
GetSystemVersion fun(): number バーチャルキャストのバージョンを取得します 1.9.2d以降
CompareSystemVersion fun(version: string): number バージョンを比較します 1.9.2d以降

バーチャルキャストの時刻を取得する

サンプル

main.lua
function update()
    print(vci.me.Time)
    print("H : "..vci.me.Time.Hours)
    print("M : "..vci.me.Time.Minutes)
    print("S : "..vci.me.Time.Seconds)
end

実行結果

00:00:03.6820000
H : 0
M : 0
S : 3

Timeの後にメソッドを追加すると細かい情報に分けてとる事ができます。
この時間はVCIスクリプトで定義された時間が表示されます。

OSの現在時刻を取得する

サンプル

main.lua
print(os.date("%Y-%m-%d %H:%M:%S"))
print(os.date("%m%d"))
print(os.date("%H"))
print(os.date("%M"))
print(os.date("%S"))

実行結果

2019-02-26 17:14:25
0226
17
14
25

os.dateというLua自体の機能を使う事によってOSの現在時刻を取得する事ができます。
詳細は os.date () を参照してください。

サンプル

main.lua
today = os.date("%m%d")
 
function onGrab()
    -- today は string型
    if today == "1225" then
        print("メリークリスマス!")
    end
end

月日を変数に保存しておけば、特定の日を条件にする事が可能です。
サンプルではクリスマスの日のみに実行されるサンプルです。
os.date()の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。

FrameCount

FrameCount : num
サンプル

main.lua
function updateAll()
    print(vci.me.FrameCount)
end

実行結果

10001
10002
10003
....

説明
クライアントを起動してから現在までのフレーム数

Time と UnscaledTime の違い

vci.me.Time vci.me.UnscaledTime はどちらも、ローカルマシン上での経過秒数を取得できます。 しかし、この2つは明確に違う値をとります。 なぜなら VR 空間内の時間の流れ方は、現実の時間の流れ方とは異なるからです。 使用用途によって、どちらの時間を使うのかを選択する必要があります。

vci.me.Time は VR 空間内での経過時間を測るときに使用します。 たとえば transform に対して AddForce を3秒間加えたいといった物理挙動に関するときなどです。

vci.me.UnscaledTime は現実の時間を基準にして経過時間を測るときに使用します。 たとえばタイマーなど、リアルの時間できっかり3分測りたいときなどです。 ただし、より正確に現在時刻を知りたい場合は os.date を使うのが良いでしょう。

Time UnscaledTime

Time : num
UnscaledTime : num
サンプル

main.lua
function updateAll()
    print(vci.me.Time)
    print(vci.me.UnscaledTime)
end

実行結果

02:29:51:1230000
02:30:00:2540000
....

説明
クライアントを起動してから現在までの経過時間

string型からnumber型へ型変換

サンプル

main.lua
day = tonumber(os.date("%d"))
 
function onGrab()
    if (day % 2) == 0 then
        print("今日は偶数の日")
    end
end

tonumber()を使う事で、string型からnumber型に変換する事ができます。
サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。

HMD情報と言語の取得

VCバージョン: 1.9.2a以降

HMDに関する情報と使用中の言語を取得できます。

サンプル

main.lua
print("HMD Type: "..vci.me.GetHeadMountedDisplayType())
print("HMD Name: "..vci.me.GetHeadMountedDisplayName())
print("Language Code: "..vci.me.GetLanguageCode())

GetHeadMountedDisplayTypeで取得可能な値

  • Vive
  • Index (1.9.3a以降)
  • Oculus
  • Oculus Quest 2(2.0.0b以降)
  • WindowsMR
  • ViveCosmos
  • Unknown: その他

GetLanguageCodeで取得可能な値

  • ja: 日本語
  • en: 英語
  • zh: 中国語(簡体)
  • zhtw: 中国語(繁体)

GetHeadMountedDisplayNameについて

処理内容はSteamVRのhmd_ModelNumberプロパティから取得しています。
この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。

バージョン取得

VCバージョン: 1.9.2d以降

バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。CompareSystemVersionは、引数で指定するバージョン文字列が、現在のバージョンと同じ場合は0、古い場合は正の値、新しい場合は負の値を返します。

サンプル

main.lua
print(vci.me.GetSystemVersion()) -- 1.9.2d
 
local result = vci.me.CompareSystemVersion("1.9.2d")
print("Result: "..result) -- Result: 0
 
result = vci.me.CompareSystemVersion("1.9.2c")
print("Result: "..result) -- Result: 1
 
result = vci.me.CompareSystemVersion("1.9.3")
print("Result: "..result) -- Result: -1
vci/script/reference/exportme.txt · 最終更新: 2021/06/17 19:37 by t-daihisa

ページ用ツール