この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
vci:script:reference:exportme [2021/06/17 19:37] t-daihisa |
vci:script:reference:exportme [2023/11/30 20:01] (現在) pastatto Lua 5.2 リファレンスマニュアルのページをWikiページに差し替え |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== vci.me(ExportMe)(ローカルマシンの情報) ====== | + | ~~NOTOC~~ |
+ | ====== ExportMe(ローカルマシンの情報) ====== | ||
+ | <WRAP center round important 80%> | ||
+ | このページは過去の情報となります。\\ | ||
+ | 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/|こちら]]**になります。 | ||
+ | </WRAP> | ||
VCIを取り出したユーザーのローカル情報にアクセスする事ができます。 | VCIを取り出したユーザーのローカル情報にアクセスする事ができます。 | ||
- | ===== メンバ変数・関数一覧 ===== | ||
- | ** [EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと一覧を確認できます。** | ||
- | <code lua> | + | ^ 名前 ^ 説明 ^ バージョン ^ |
- | ---マシンローカルの情報 | + | | [[vci/script/reference/exportme#Time ]] | クライアントを起動してから現在までの時間 | |
- | ---@class ExportMe | + | | [[vci/script/reference/exportme#UnscaledTime ]] | [[https://docs.unity3d.com/jp/current/ScriptReference/Time-timeScale.html|timeScale ]] の影響を受けないTime | |
- | ---@field GetAxisInput fun(): Vector3 | + | | [[vci/script/reference/exportme#Framecount]] | クライアントを起動してから現在までのフレーム数 | |
- | ---@field GetButtonInput fun(id: number): bool | + | | [[vci/script/reference/exportme#GetHeadMountedDisplayType ]] | 使用しているHMDのタイプを取得 | 1.9.2a 以降 | |
- | ---@field GetHeadMountedDisplayIsMounted fun(): bool | + | | [[vci/script/reference/exportme#GetHeadMountedDisplayName ]] | 使用しているHMDの名前を取得 | 1.9.2a 以降 | |
- | ---@field GetSystemVersion fun(): string | + | | [[vci/script/reference/exportme#GetHeadMountedDisplayIsMounted ]] | HMDを被っているかどうかの状態 | 2.0.0a 以降 | |
- | ---@field CompareSystemVersion fun(version: string): number | + | | [[vci/script/reference/exportme#GetXXControllerName ]] | 使用しているControllerの名前を取得 | 2.2.7a 以降 | |
- | ---@field GetHeadMountedDisplayType fun(): string | + | | [[vci/script/reference/exportme#GetLanguageCode]]| 使用中の言語を取得 | 1.9.2a 以降 | |
- | ---@field GetHeadMountedDisplayName fun(): string | + | | [[vci/script/reference/exportme#GetSystemVersion]] | バーチャルキャストのバージョンを取得 | 1.9.2d 以降 | |
- | ---@field GetLanguageCode fun(): string | + | | [[vci/script/reference/exportme#CompareSystemVersion]]| バージョンを比較 | 1.9.2d 以降 | |
- | ---@field FrameCount number | + | | [[vci/script/reference/exportme#GetDspTime ]] | 現在のオーディオシステム上の時刻を取得 | 2.3.9c 以降 | |
- | ---@field Time TimeSpan | + | | [[vci/script/reference/vciinput#getaxisinput |GetAxisInput ]] | VCIのキー操作の入力受付(※別ページ) | | |
- | ---@field UnscaledTime TimeSpan | + | | [[vci/script/reference/vciinput#getbuttoninput | GetButtonInput ]]| VCIのキー操作の入力受付(※別ページ) | | |
- | </code> | + | |
- | ^ メソッド ^ 説明 ^ VCバージョン ^ | ||
- | | [[vci/script/reference/vciinput#getaxisinput |GetAxisInput fun()]] | VCIのキー操作の入力受付を行います | | ||
- | | [[vci/script/reference/vciinput#getbuttoninput | GetButtonInput fun()]]| VCIのキー操作の入力受付を行います | | ||
- | | [[vci/script/reference/exportme#framecount | FrameCount number]] | クライアントを起動してから現在までのフレーム数 | | ||
- | | [[vci/script/reference/exportme#time_と_unscaledtime_の違い | Time TimeSpan]] | クライアントを起動してから現在までの時間 | | ||
- | | [[vci/script/reference/exportme#time_と_unscaledtime_の違い | UnscaledTime TimeSpan]] | Timeと同じですが、この値は [[https://docs.unity3d.com/jp/current/ScriptReference/Time-timeScale.html|timeScale]] の影響を受けません。 | | ||
- | | [[vci/script/reference/exportme#hmd情報と言語の取得 | GetHeadMountedDisplayType fun(): string]] | 使用しているHMDのタイプを取得します | 1.9.2a以降 | | ||
- | | [[vci/script/reference/exportme#hmd情報と言語の取得 | GetHeadMountedDisplayName fun(): string]] | 使用しているHMDの名前を取得します | 1.9.2a以降 | | ||
- | | [[vci/script/reference/exportme#hmd情報と言語の取得 | GetHeadMountedDisplayIsMounted fun(): bool]] | HMDを被っているかどうかの状態 | 2.0.0a以降 | | ||
- | | [[vci/script/reference/exportme#hmd情報と言語の取得 | GetLanguageCode fun(): string]]| 使用中の言語を取得します | 1.9.2a以降 | | ||
- | | [[vci/script/reference/exportme#バージョン取得 |GetSystemVersion fun(): number]] | バーチャルキャストのバージョンを取得します | 1.9.2d以降 | | ||
- | | [[vci/script/reference/exportme#バージョン取得 |CompareSystemVersion fun(version: string): number]]| バージョンを比較します | 1.9.2d以降 | | ||
+ | ===== Time ===== | ||
+ | **Time : TimeSpan**\\ | ||
+ | バーチャルキャストの時刻を取得する | ||
- | ===== バーチャルキャストの時刻を取得する ===== | + | === サンプル === |
- | + | ||
- | サンプル | + | |
<file lua main.lua> | <file lua main.lua> | ||
function update() | function update() | ||
ライン 49: | ライン 40: | ||
</file> | </file> | ||
- | 実行結果 | + | === 実行結果 === |
<code lua> | <code lua> | ||
00:00:03.6820000 | 00:00:03.6820000 | ||
ライン 57: | ライン 49: | ||
</code> | </code> | ||
- | ''Time''の後にメソッドを追加すると細かい情報に分けてとる事ができます。\\ | + | ''Time''の後に関数を追加すると細かい情報に分けてとる事ができます。\\ |
この時間はVCIスクリプトで定義された時間が表示されます。 | この時間はVCIスクリプトで定義された時間が表示されます。 | ||
- | ===== OSの現在時刻を取得する ===== | ||
- | サンプル | + | ===== UnscaledTime ===== |
+ | **UnscaledTime : TimeSpan**\\ | ||
+ | バーチャルキャストの時刻を取得する\\ | ||
+ | クライアントを起動してから現在までの経過時間 | ||
+ | |||
+ | |||
+ | === サンプル === | ||
+ | <file lua main.lua> | ||
+ | |||
+ | function updateAll() | ||
+ | print(vci.me.Time) | ||
+ | print(vci.me.UnscaledTime) | ||
+ | end | ||
+ | </file> | ||
+ | |||
+ | === 実行結果 === | ||
+ | <code lua> | ||
+ | 02:29:51:1230000 | ||
+ | 02:30:00:2540000 | ||
+ | .... | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== 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 === | ||
<file lua main.lua> | <file lua main.lua> | ||
print(os.date("%Y-%m-%d %H:%M:%S")) | print(os.date("%Y-%m-%d %H:%M:%S")) | ||
ライン 71: | ライン 105: | ||
</file> | </file> | ||
- | 実行結果 | + | === 実行結果1 === |
<code lua> | <code lua> | ||
2019-02-26 17:14:25 | 2019-02-26 17:14:25 | ||
ライン 80: | ライン 114: | ||
</code> | </code> | ||
- | ''os.date''というLua自体の機能を使う事によってOSの現在時刻を取得する事ができます。\\ | ||
- | 詳細は [[http://milkpot.sakura.ne.jp/lua/lua53_manual_ja.html#pdf-os.date|os.date ()]] を参照してください。\\ | ||
- | サンプル | + | |
+ | === サンプル2 === | ||
+ | 月日を変数に保存しておけば、特定の日を条件にする事が可能です。\\ | ||
+ | サンプルではクリスマスの日のみに実行されるサンプルです。\\ | ||
+ | ''os.date()''の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。 | ||
<file lua main.lua> | <file lua main.lua> | ||
today = os.date("%m%d") | today = os.date("%m%d") | ||
ライン 95: | ライン 132: | ||
</file> | </file> | ||
- | 月日を変数に保存しておけば、特定の日を条件にする事が可能です。\\ | + | |
- | サンプルではクリスマスの日のみに実行されるサンプルです。\\ | + | |
- | ''os.date()''の戻り値はnumber型ではなくstring型なので、条件は文字列で指定するように気を付けましょう。 | + | |
+ | |||
+ | ==== string型からnumber型へ型変換 ==== | ||
+ | |||
+ | サンプル | ||
+ | <file lua main.lua> | ||
+ | day = tonumber(os.date("%d")) | ||
+ | |||
+ | function onGrab() | ||
+ | if (day % 2) == 0 then | ||
+ | print("今日は偶数の日") | ||
+ | end | ||
+ | end | ||
+ | </file> | ||
+ | |||
+ | ''tonumber()''を使う事で、string型からnumber型に変換する事ができます。\\ | ||
+ | サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。 | ||
===== FrameCount ===== | ===== FrameCount ===== | ||
**FrameCount : num**\\ | **FrameCount : num**\\ | ||
- | サンプル | + | クライアントを起動してから現在までのフレーム数 |
+ | |||
+ | === サンプル === | ||
<file lua main.lua> | <file lua main.lua> | ||
ライン 109: | ライン 164: | ||
</file> | </file> | ||
- | 実行結果\\ | + | === 実行結果 === |
<code lua> | <code lua> | ||
10001 | 10001 | ||
ライン 117: | ライン 172: | ||
</code> | </code> | ||
- | 説明\\ | ||
- | クライアントを起動してから現在までのフレーム数 | ||
- | ===== Time と UnscaledTime の違い ===== | ||
- | ''vci.me.Time'' ''vci.me.UnscaledTime'' はどちらも、ローカルマシン上での経過秒数を取得できます。 | ||
- | しかし、この2つは明確に違う値をとります。 | ||
- | なぜなら VR 空間内の時間の流れ方は、現実の時間の流れ方とは異なるからです。 | ||
- | 使用用途によって、どちらの時間を使うのかを選択する必要があります。 | ||
- | ''vci.me.Time'' は VR 空間内での経過時間を測るときに使用します。 | + | ===== GetHeadMountedDisplayType ===== |
- | たとえば ''transform'' に対して ''AddForce'' を3秒間加えたいといった物理挙動に関するときなどです。 | + | **GetHeadMountedDisplayType fun(): string**\\ |
+ | HMDに関する情報を取得できます。 | ||
- | ''vci.me.UnscaledTime'' は現実の時間を基準にして経過時間を測るときに使用します。 | + | === サンプル === |
- | たとえばタイマーなど、リアルの時間できっかり3分測りたいときなどです。 | + | |
- | ただし、より正確に現在時刻を知りたい場合は ''os.date'' を使うのが良いでしょう。 | + | |
- | + | ||
- | ===== Time UnscaledTime ===== | + | |
- | **Time : num**\\ | + | |
- | **UnscaledTime : num**\\ | + | |
- | サンプル | + | |
<file lua main.lua> | <file lua main.lua> | ||
- | + | print("HMD Type: "..vci.me.GetHeadMountedDisplayType()) | |
- | function updateAll() | + | |
- | print(vci.me.Time) | + | |
- | print(vci.me.UnscaledTime) | + | |
- | end | + | |
</file> | </file> | ||
- | 実行結果\\ | + | === 実行結果(VIVE を使用した場合) === |
<code lua> | <code lua> | ||
- | 02:29:51:1230000 | + | HMD Type: Vive |
- | 02:30:00:2540000 | + | |
- | .... | + | |
</code> | </code> | ||
- | 説明\\ | + | ** GetHeadMountedDisplayTypeで取得可能な値 ** |
- | クライアントを起動してから現在までの経過時間 | + | |
- | ===== string型からnumber型へ型変換 ===== | + | * Vive |
+ | * Index (1.9.3a以降) | ||
+ | * Oculus | ||
+ | * Oculus Quest 2(2.0.0b以降) | ||
+ | * WindowsMR | ||
+ | * VIVECosmos | ||
+ | * Unknown: その他 | ||
- | サンプル | + | ===== GetHeadMountedDisplayName ===== |
- | <file lua main.lua> | + | **GetHeadMountedDisplayName fun(): string**\\ |
- | day = tonumber(os.date("%d")) | + | HMDに関する情報を取得できます。 |
- | function onGrab() | + | 処理内容はSteamVRの[[https://valvesoftware.github.io/steamvr_unity_plugin/api/Valve.VR.SteamVR.html|hmd_ModelNumberプロパティ]]から取得しています。\\ |
- | if (day % 2) == 0 then | + | この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。 |
- | print("今日は偶数の日") | + | |
- | end | + | === サンプル === |
- | end | + | <file lua main.lua> |
+ | print("HMD Name: "..vci.me.GetHeadMountedDisplayName()) | ||
</file> | </file> | ||
- | ''tonumber()''を使う事で、string型からnumber型に変換する事ができます。\\ | + | === 実行結果(VIVE を使用した場合) === |
- | サンプルではdayを2で割った時のあまりが0である事を条件にする事で、偶数の日である事を判定しています。 | + | <code lua> |
+ | HMD Name: Vive. MV | ||
+ | </code> | ||
- | ===== HMD情報と言語の取得 ===== | ||
- | VCバージョン: 1.9.2a以降 | ||
- | HMDに関する情報と使用中の言語を取得できます。 | ||
- | サンプル | + | ===== GetHeadMountedDisplayIsMounted ===== |
+ | **GetHeadMountedDisplayIsMounted fun(): bool**\\ | ||
+ | |||
+ | HMDを被っているかを所得できます。 | ||
+ | |||
+ | ===== GetXXControllerName ===== | ||
+ | **GetLeftControllerName fun(): string**\\ | ||
+ | **GetRightControllerName fun(): string**\\ | ||
+ | Controllerに関する情報を取得できます。 | ||
+ | |||
+ | Controllerの電源が入っていない等の理由によってControllerが認識していない場合は'' none ''が返されます。\\ | ||
+ | また、別のControllerに切り替えた場合は返される値も変化します。 | ||
+ | |||
+ | === サンプル === | ||
<file lua main.lua> | <file lua main.lua> | ||
- | print("HMD Type: "..vci.me.GetHeadMountedDisplayType()) | + | print("LeftController Name: "..vci.me.GetLeftControllerName()) |
- | print("HMD Name: "..vci.me.GetHeadMountedDisplayName()) | + | print("RightController Name: "..vci.me.GetRightControllerName()) |
- | print("Language Code: "..vci.me.GetLanguageCode()) | + | |
</file> | </file> | ||
- | ** GetHeadMountedDisplayTypeで取得可能な値 ** | + | === 実行結果(VIVE を使用した場合) === |
+ | <code lua> | ||
+ | LeftController Name: Vive. Controller MV | ||
+ | RightController Name: Vive. Controller MV | ||
+ | </code> | ||
- | * Vive | + | |
- | * Index (1.9.3a以降) | + | |
- | * Oculus | + | |
- | * Oculus Quest 2(2.0.0b以降) | + | |
- | * WindowsMR | + | ===== GetLanguageCode ===== |
- | * ViveCosmos | + | **GetLanguageCode fun(): string**\\ |
- | * Unknown: その他 | + | 使用中の言語を取得できます。 |
+ | |||
+ | === サンプル === | ||
+ | <file lua main.lua> | ||
+ | print("Language Code: "..vci.me.GetLanguageCode()) | ||
+ | </file> | ||
** GetLanguageCodeで取得可能な値 ** | ** GetLanguageCodeで取得可能な値 ** | ||
ライン 202: | ライン 264: | ||
* zhtw: 中国語(繁体) | * zhtw: 中国語(繁体) | ||
- | ** GetHeadMountedDisplayNameについて ** | + | ===== GetSystemVersion ===== |
+ | **GetSystemVersion fun(): string**\\ | ||
+ | バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。 | ||
- | 処理内容はSteamVRの[[https://valvesoftware.github.io/steamvr_unity_plugin/api/Valve.VR.SteamVR.html|hmd_ModelNumberプロパティ]]から取得しています。\\ | + | === サンプル === |
- | この値はSteamVRの仕様に準拠しますので、今後のアップデートで取得できる値が変わる可能性があります。 | + | <file lua main.lua> |
+ | print(vci.me.GetSystemVersion()) -- 1.9.2d | ||
+ | </file> | ||
- | ===== バージョン取得 ===== | + | ===== CompareSystemVersion ===== |
+ | **CompareSystemVersion fun(version: string)**\\ | ||
+ | CompareSystemVersionは、引数で指定するバージョン文字列が、現在のバージョンと同じ場合は0、古い場合は正の値、新しい場合は負の値を返します。 | ||
- | VCバージョン: 1.9.2d以降 | + | === サンプル === |
- | + | ||
- | バーチャルキャストのバージョン情報をGetSystemVersionから取得できます。CompareSystemVersionは、引数で指定するバージョン文字列が、現在のバージョンと同じ場合は0、古い場合は正の値、新しい場合は負の値を返します。 | + | |
- | + | ||
- | サンプル | + | |
<file lua main.lua> | <file lua main.lua> | ||
print(vci.me.GetSystemVersion()) -- 1.9.2d | print(vci.me.GetSystemVersion()) -- 1.9.2d | ||
ライン 226: | ライン 290: | ||
print("Result: "..result) -- Result: -1 | print("Result: "..result) -- Result: -1 | ||
</file> | </file> | ||
+ | |||
+ | ===== GetDspTime ===== | ||
+ | **GetDspTime fun(): number**\\ | ||
+ | 現在のオーディオシステム上の時刻を返します。 | ||
+ | * 単位は「秒」です。 | ||
+ | * ここで取得した時刻は、[[vci/script/reference/exportaudiosource#PlayScheduled]] で指定のタイミングで音声を再生する際に使用できます。 | ||
+ | |||
+ | === サンプル === | ||
+ | <file lua main.lua> | ||
+ | print(vci.me.GetDspTime()) | ||
+ | </file> | ||
+ | |||
+ |