バーチャルキャスト公式Wiki
メニュー
Steam版
デバイス
アセット
配信
その他
リリース情報
- wiki編集者用ページ
-
以前のリビジョンの文書です
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以降 |
サンプル
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スクリプトで定義された時間が表示されます。
サンプル
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 () を参照してください。
サンプル
today = os.date("%m%d") function onGrab() -- today は string型 if today == "1225" then print("メリークリスマス!") end end
月日を変数に保存しておけば、特定の日を条件にする事が可能です。
サンプルではクリスマスの日のみに実行されるサンプルです。
os.date()
の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。
FrameCount : num
サンプル
function updateAll() print(vci.me.FrameCount) end
実行結果
10001 10002 10003 ....
説明
クライアントを起動してから現在までのフレーム数
vci.me.Time
vci.me.UnscaledTime
はどちらも、ローカルマシン上での経過秒数を取得できます。
しかし、この2つは明確に違う値をとります。
なぜなら VR 空間内の時間の流れ方は、現実の時間の流れ方とは異なるからです。
使用用途によって、どちらの時間を使うのかを選択する必要があります。
vci.me.Time
は VR 空間内での経過時間を測るときに使用します。
たとえば transform
に対して AddForce
を3秒間加えたいといった物理挙動に関するときなどです。
vci.me.UnscaledTime
は現実の時間を基準にして経過時間を測るときに使用します。
たとえばタイマーなど、リアルの時間できっかり3分測りたいときなどです。
ただし、より正確に現在時刻を知りたい場合は os.date
を使うのが良いでしょう。
Time : num
UnscaledTime : num
サンプル
function updateAll() print(vci.me.Time) print(vci.me.UnscaledTime) end
実行結果
02:29:51:1230000 02:30:00:2540000 ....
説明
クライアントを起動してから現在までの経過時間
サンプル
day = tonumber(os.date("%d")) function onGrab() if (day % 2) == 0 then print("今日は偶数の日") end end
tonumber()
を使う事で、string型からnumber型に変換する事ができます。
サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。
VCバージョン: 1.9.2a以降
HMDに関する情報と使用中の言語を取得できます。
サンプル
print("HMD Type: "..vci.me.GetHeadMountedDisplayType()) print("HMD Name: "..vci.me.GetHeadMountedDisplayName()) print("Language Code: "..vci.me.GetLanguageCode())
GetHeadMountedDisplayTypeで取得可能な値
GetLanguageCodeで取得可能な値
GetHeadMountedDisplayNameについて
処理内容はSteamVRのhmd_ModelNumberプロパティから取得しています。
この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。
VCバージョン: 1.9.2d以降
バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。CompareSystemVersionは、引数で指定するバージョン文字列が、現在のバージョンと同じ場合は0、古い場合は正の値、新しい場合は負の値を返します。
サンプル
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