~~NOTOC~~ ====== ExportMe(ローカルマシンの情報) ====== このページは過去の情報となります。\\ 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/|こちら]]**になります。 VCIを取り出したユーザーのローカル情報にアクセスする事ができます。 ^ 名前 ^ 説明 ^ バージョン ^ | [[vci/script/reference/exportme#Time ]] | クライアントを起動してから現在までの時間 | | [[vci/script/reference/exportme#UnscaledTime ]] | [[https://docs.unity3d.com/jp/current/ScriptReference/Time-timeScale.html|timeScale ]] の影響を受けないTime | | [[vci/script/reference/exportme#Framecount]] | クライアントを起動してから現在までのフレーム数 | | [[vci/script/reference/exportme#GetHeadMountedDisplayType ]] | 使用しているHMDのタイプを取得 | 1.9.2a 以降 | | [[vci/script/reference/exportme#GetHeadMountedDisplayName ]] | 使用しているHMDの名前を取得 | 1.9.2a 以降 | | [[vci/script/reference/exportme#GetHeadMountedDisplayIsMounted ]] | HMDを被っているかどうかの状態 | 2.0.0a 以降 | | [[vci/script/reference/exportme#GetXXControllerName ]] | 使用しているControllerの名前を取得 | 2.2.7a 以降 | | [[vci/script/reference/exportme#GetLanguageCode]]| 使用中の言語を取得 | 1.9.2a 以降 | | [[vci/script/reference/exportme#GetSystemVersion]] | バーチャルキャストのバージョンを取得 | 1.9.2d 以降 | | [[vci/script/reference/exportme#CompareSystemVersion]]| バージョンを比較 | 1.9.2d 以降 | | [[vci/script/reference/exportme#GetDspTime ]] | 現在のオーディオシステム上の時刻を取得 | 2.3.9c 以降 | | [[vci/script/reference/vciinput#getaxisinput |GetAxisInput ]] | VCIのキー操作の入力受付(※別ページ) | | | [[vci/script/reference/vciinput#getbuttoninput | GetButtonInput ]]| VCIのキー操作の入力受付(※別ページ) | | ===== Time ===== **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 ===== **UnscaledTime : TimeSpan**\\ バーチャルキャストの時刻を取得する\\ クライアントを起動してから現在までの経過時間 === サンプル === function updateAll() print(vci.me.Time) print(vci.me.UnscaledTime) end === 実行結果 === 02:29:51:1230000 02:30:00:2540000 .... ==== Time と UnscaledTime の違い ==== ''vci.me.Time'' ''vci.me.UnscaledTime'' はどちらも、ローカルマシン上での経過秒数を取得できます。\\ しかし、この2つは明確に違う値をとります。\\ なぜなら VR 空間内の時間の流れ方は、現実の時間の流れ方とは異なるからです。\\ 使用用途によって、どちらの時間を使うのかを選択する必要があります。 ''vci.me.Time'' は VR 空間内での経過時間を測るときに使用します。\\ たとえば ''transform'' に対して ''AddForce'' を3秒間加えたいといった物理挙動に関するときなどです。 ''vci.me.UnscaledTime'' は現実の時間を基準にして経過時間を測るときに使用します。\\ たとえばタイマーなど、リアルの時間できっかり3分測りたいときなどです。\\ ただし、より正確に現在時刻を知りたい場合は ''os.date'' を使うのが良いでしょう。 ===== os.date を利用する場合 ===== ** os.date string **\\ ''os.date''というLua自体の機能を使う事によってOSの現在時刻を取得する事ができます。\\ 詳細は [[vci/script/luareference|Lua 5.2 リファレンスマニュアル]] - os.date () を参照してください。\\ === サンプル1 === 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")) === 実行結果1 === 2019-02-26 17:14:25 0226 17 14 25 === サンプル2 === 月日を変数に保存しておけば、特定の日を条件にする事が可能です。\\ サンプルではクリスマスの日のみに実行されるサンプルです。\\ ''os.date()''の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。 today = os.date("%m%d") function onGrab() -- today は string型 if today == "1225" then print("メリークリスマス!") end end ==== string型からnumber型へ型変換 ==== サンプル day = tonumber(os.date("%d")) function onGrab() if (day % 2) == 0 then print("今日は偶数の日") end end ''tonumber()''を使う事で、string型からnumber型に変換する事ができます。\\ サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。 ===== FrameCount ===== **FrameCount : num**\\ クライアントを起動してから現在までのフレーム数 === サンプル === function updateAll() print(vci.me.FrameCount) end === 実行結果 === 10001 10002 10003 .... ===== GetHeadMountedDisplayType ===== **GetHeadMountedDisplayType fun(): string**\\ HMDに関する情報を取得できます。 === サンプル === print("HMD Type: "..vci.me.GetHeadMountedDisplayType()) === 実行結果(VIVE を使用した場合) === HMD Type: Vive ** GetHeadMountedDisplayTypeで取得可能な値 ** * Vive * Index (1.9.3a以降) * Oculus * Oculus Quest 2(2.0.0b以降) * WindowsMR * VIVECosmos * Unknown: その他 ===== GetHeadMountedDisplayName ===== **GetHeadMountedDisplayName fun(): string**\\ HMDに関する情報を取得できます。 処理内容はSteamVRの[[https://valvesoftware.github.io/steamvr_unity_plugin/api/Valve.VR.SteamVR.html|hmd_ModelNumberプロパティ]]から取得しています。\\ この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。 === サンプル === print("HMD Name: "..vci.me.GetHeadMountedDisplayName()) === 実行結果(VIVE を使用した場合) === HMD Name: Vive. MV ===== GetHeadMountedDisplayIsMounted ===== **GetHeadMountedDisplayIsMounted fun(): bool**\\ HMDを被っているかを所得できます。 ===== GetXXControllerName ===== **GetLeftControllerName fun(): string**\\ **GetRightControllerName fun(): string**\\ Controllerに関する情報を取得できます。 Controllerの電源が入っていない等の理由によってControllerが認識していない場合は'' none ''が返されます。\\ また、別のControllerに切り替えた場合は返される値も変化します。 === サンプル === print("LeftController Name: "..vci.me.GetLeftControllerName()) print("RightController Name: "..vci.me.GetRightControllerName()) === 実行結果(VIVE を使用した場合) === LeftController Name: Vive. Controller MV RightController Name: Vive. Controller MV ===== GetLanguageCode ===== **GetLanguageCode fun(): string**\\ 使用中の言語を取得できます。 === サンプル === print("Language Code: "..vci.me.GetLanguageCode()) ** GetLanguageCodeで取得可能な値 ** * ja: 日本語 * en: 英語 * zh: 中国語(簡体) * zhtw: 中国語(繁体) ===== GetSystemVersion ===== **GetSystemVersion fun(): string**\\ バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。 === サンプル === print(vci.me.GetSystemVersion()) -- 1.9.2d ===== CompareSystemVersion ===== **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 ===== **GetDspTime fun(): number**\\ 現在のオーディオシステム上の時刻を返します。 * 単位は「秒」です。 * ここで取得した時刻は、[[vci/script/reference/exportaudiosource#PlayScheduled]] で指定のタイミングで音声を再生する際に使用できます。 === サンプル === print(vci.me.GetDspTime())