このページは過去の情報となります。
新しいスクリプトリファレンスはこちらになります。
VCIを取り出したユーザーのローカル情報にアクセスする事ができます。
名前 | 説明 | バージョン |
---|---|---|
Time | クライアントを起動してから現在までの時間 | |
UnscaledTime | timeScale の影響を受けないTime | |
Framecount | クライアントを起動してから現在までのフレーム数 | |
GetHeadMountedDisplayType | 使用しているHMDのタイプを取得 | 1.9.2a 以降 |
GetHeadMountedDisplayName | 使用しているHMDの名前を取得 | 1.9.2a 以降 |
GetHeadMountedDisplayIsMounted | HMDを被っているかどうかの状態 | 2.0.0a 以降 |
GetXXControllerName | 使用しているControllerの名前を取得 | 2.2.7a 以降 |
GetLanguageCode | 使用中の言語を取得 | 1.9.2a 以降 |
GetSystemVersion | バーチャルキャストのバージョンを取得 | 1.9.2d 以降 |
CompareSystemVersion | バージョンを比較 | 1.9.2d 以降 |
GetDspTime | 現在のオーディオシステム上の時刻を取得 | 2.3.9c 以降 |
GetAxisInput | VCIのキー操作の入力受付(※別ページ) | |
GetButtonInput | VCIのキー操作の入力受付(※別ページ) |
Time : TimeSpan
バーチャルキャストの時刻を取得する
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スクリプトで定義された時間が表示されます。
UnscaledTime : TimeSpan
バーチャルキャストの時刻を取得する
クライアントを起動してから現在までの経過時間
function updateAll() print(vci.me.Time) print(vci.me.UnscaledTime) end
02:29:51:1230000 02:30:00:2540000 ....
vci.me.Time
vci.me.UnscaledTime
はどちらも、ローカルマシン上での経過秒数を取得できます。
しかし、この2つは明確に違う値をとります。
なぜなら VR 空間内の時間の流れ方は、現実の時間の流れ方とは異なるからです。
使用用途によって、どちらの時間を使うのかを選択する必要があります。
vci.me.Time
は VR 空間内での経過時間を測るときに使用します。
たとえば transform
に対して AddForce
を3秒間加えたいといった物理挙動に関するときなどです。
vci.me.UnscaledTime
は現実の時間を基準にして経過時間を測るときに使用します。
たとえばタイマーなど、リアルの時間できっかり3分測りたいときなどです。
ただし、より正確に現在時刻を知りたい場合は os.date
を使うのが良いでしょう。
os.date string
os.date
というLua自体の機能を使う事によってOSの現在時刻を取得する事ができます。
詳細は Lua 5.2 リファレンスマニュアル - os.date () を参照してください。
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()
の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。
today = os.date("%m%d") function onGrab() -- today は string型 if today == "1225" then print("メリークリスマス!") end end
サンプル
day = tonumber(os.date("%d")) function onGrab() if (day % 2) == 0 then print("今日は偶数の日") end end
tonumber()
を使う事で、string型からnumber型に変換する事ができます。
サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。
FrameCount : num
クライアントを起動してから現在までのフレーム数
function updateAll() print(vci.me.FrameCount) end
10001 10002 10003 ....
GetHeadMountedDisplayType fun(): string
HMDに関する情報を取得できます。
print("HMD Type: "..vci.me.GetHeadMountedDisplayType())
HMD Type: Vive
GetHeadMountedDisplayTypeで取得可能な値
GetHeadMountedDisplayName fun(): string
HMDに関する情報を取得できます。
処理内容はSteamVRのhmd_ModelNumberプロパティから取得しています。
この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。
print("HMD Name: "..vci.me.GetHeadMountedDisplayName())
HMD Name: Vive. MV
GetHeadMountedDisplayIsMounted fun(): bool
HMDを被っているかを所得できます。
GetLeftControllerName fun(): string
GetRightControllerName fun(): string
Controllerに関する情報を取得できます。
Controllerの電源が入っていない等の理由によってControllerが認識していない場合は none
が返されます。
また、別のControllerに切り替えた場合は返される値も変化します。
print("LeftController Name: "..vci.me.GetLeftControllerName()) print("RightController Name: "..vci.me.GetRightControllerName())
LeftController Name: Vive. Controller MV RightController Name: Vive. Controller MV
GetLanguageCode fun(): string
使用中の言語を取得できます。
print("Language Code: "..vci.me.GetLanguageCode())
GetLanguageCodeで取得可能な値
GetSystemVersion fun(): string
バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。
print(vci.me.GetSystemVersion()) -- 1.9.2d
CompareSystemVersion fun(version: string)
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
GetDspTime fun(): number
現在のオーディオシステム上の時刻を返します。
print(vci.me.GetDspTime())