ユーザ用ツール

サイト用ツール


vci:script:reference:exportme

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

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


メンバ変数・関数一覧

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

---マシンローカルの情報
---@class ExportMe
---@field GetAxisInput fun(): Vector3
---@field GetButtonInput fun(id: number): 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 クライアントを起動してから現在までのフレーム数
Time クライアントを起動してから現在までの時間
UnscaledTime Timeと同じですが、この値は timeScale の影響を受けません。
GetHeadMountedDisplayType fun() 使用しているHMDのタイプを取得します 1.9.2a以降
GetHeadMountedDisplayName fun() 使用しているHMDの名前を取得します 1.9.2a以降
GetLanguageCode fun() 使用中の言語を取得します 1.9.2a以降
GetSystemVersion fun() バーチャルキャストのバージョンを取得します 1.9.2d以降
CompareSystemVersion fun(version: string) バージョンを比較します 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型なので、条件は文字列で指定するように気を付けましょう。


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
  • 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 · 最終更新: 2020/05/28 12:33 by h-eguchi

ページ用ツール