VRService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
VRService は、Roblox とバーチャルリアリティ (VR) の間のインタラクションを処理する責任があります。そのメソッド、プロパティ、イベントは、最高のエクスペリエンスを提供するために、エンドユーザーが Roblox を VR デバイスで経験しようとしています。
VR デバイス用のエクスペリエンスの公開については、VR ガイドライン を参照してください。
コードサンプル
local VRService = game:GetService("VRService")
local part = workspace.Part
local handOffset = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
-- Account for headscale
handOffset = handOffset.Rotation + handOffset.Position * workspace.CurrentCamera.HeadScale
part.CFrame = workspace.CurrentCamera.CFrame * handOffset
概要
プロパティ
自動的に VR のスケーリングを調整して、プレイヤーをアバターに合わせます。
真の場合、VR プレイヤーはコントローラーとヘッドセットを使用して手と頭をアニメートできます。
真にすると、VR プレイヤーのビューは、頭がオブジェクトに当たると黒になります。
VR の入力に責任を持つ Enum.UserCFrame の説明を行います。
ユーザーがバーチャルリアリティデバイスを使用しているかどうかを記述します。
方法
指定された VRTouchpad のモードを示す VRTouchpadMode を返します。
実世界の空間からのオフセットで指定されたバーチャルリアリティデバイスの位置と方向を記述する CFrame を返します。
指定された Enum.UserCFrame が聞き取り可能であることが確認されると、 true が返されます。
ユーザーが着用している VR ヘッドセットの現在の場所に CFrame をリセンターします。
視覚化パラボラのオリジンとして、指定された CFrame を使用してナビゲートします。
指定された Enum.VRTouchpad のモードを指定された Enum.VRTouchpadMode に設定します。
イベント
ナビゲーションが VRService からリクエストされたときに発動します。
Enums.VRTouchpadMode の Enum.VRTouchpad が変更された場合、Fire します。
変更された Enum.UserCFrame でファイアーします。
枚数.UserCFrame が有効にされたり無効にされたりするとファイアーされます。
プロパティ
AutomaticScaling
Class.Camera.HeadScale を Camera.HeadScale に設定すると、Class.Camera.HeadScale は、アバターの視点から世界のスケールを調整します。小さなアバターを持つプレイヤーは、周りのオブジェクトを大きなアバターを持つプレイヤーよりも大きなサイズで見ることがあります。
AvatarGestures
設定を「真」にすると、VR プレイヤーはコントローラーとヘッドセットを使用して手と頭をアニメートできるようになります。
このプロパティは、サーバーに設定する必要があります。
ControllerModels
FadeOutViewOnCollision
[VR] プレイヤーのビューは、頭がオブジェクトに当たると黒に濃くなります。これは、プレイヤーが VR で壁を見ることができないようにします。デフォルトの値は true です。
GuiInputUserCFrame
このプロパティは、VR の入力に責任を持つ Enum.UserCFrame です。たとえば、VR ヘッドセットが責任を持っている場インスタンス、このプロパティの値は Enum.UserCFrame.Head になります。
Roblox が VR デバイスを検出するかどうかを確認するには、VREnabled プロパティをチェックできます。
コードサンプル
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
このプロパティは、ユーザーがバーチャルリアリティ (VR) デバイスを使用しているかどうかを記述します。
VR デバイスが有効になっている場合は、UserInputService:GetUserCFrame() などのメソッドを使用して、その場所と移動をインタラクトできます。また、UserInputService.UserCFrameChanged イベントを使用して、VR デバイスの移動に反応することもできます。
local UserInputService = game:GetService("UserInputService")local isUsingVR = UserInputService.VREnabledif isUsingVR thenprint("User is using a VR headset!")elseprint("User is not using a VR headset!")end
このプロパティは LocalScript 内のみで使用できます。
参照してください
コードサンプル
local VRService = game:GetService("VRService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.CharacterAdded:Wait()
local head = character:WaitForChild("Head")
local function TrackHead(inputType, value)
if inputType == Enum.UserCFrame.Head then
head.CFrame = value
end
end
if VRService.VREnabled then
-- Set the initial CFrame
head.CFrame = VRService:GetUserCFrame(Enum.UserCFrame.Head)
-- Track VR headset movement and mirror for character's head
VRService.UserCFrameChanged:Connect(TrackHead)
end
方法
GetTouchpadMode
このメソッドは、 Enum.VRTouchpadMode を返し、指定された Enum.VRTouchpad のモードを示しています。返されたモードは、ユーザーがタッチパッドにどのようにインタラクトするかを示しています。
これは、さまざまな UserInputService VR メソッドとイベントと一緒に使用できます。
このメソッドは LocalScript 内でのみ使用できます。
パラメータ
指定された VRTouchpad。
戻り値
指定された VRTouchpad のモード。
コードサンプル
local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)
GetUserCFrame
このメソッドは、CFrame を返します。これは、特定のバーチャルリアリティ (VR) デバイスの位置と方向を実世界スペースのオフセットで表現します。このメソッドは、ゲームに VR のコンパビリティを実装する際に使用する必要があります。これは、接続された VR デバイスの移動を追跡するためにゲーム内の VR コ
メソッドを使用すると、ユーザーのインゲームキャラクターを、接続された VR デバイスの場所に対応させるなど、機能の再設定を実装できます。これは、ユーザーのインゲームキャラクターの CFrame を変更して、ユーザーCFrame の CFrame 値アルガートを
VRService また、UserCFrameChanged イベントを提供します。これは、接続された VR デバイスの CFrame が変更されると自動的に発動するので、0> Class.LocalScript0> で使用されています。
このメソッドは LocalScript 内でのみ使用できます。
パラメータ
指定された UserCFrame 。
戻り値
コードサンプル
local Workspace = game:GetService("Workspace")
local VRService = game:GetService("VRService")
local camera = Workspace.CurrentCamera
local part = script.Parent.Part
local handOffset = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
-- Account for headscale
handOffset = handOffset.Rotation + handOffset.Position * camera.HeadScale
part.CFrame = camera.CFrame * handOffset
GetUserCFrameEnabled
このメソッドは、指定の Enum.UserCFrame バーチャルリアリティデバイス (VR) が聞き取り可能であるかどうかにより、Enum.UserCFrame.Head などの指定のバーチャルリアリティデバイス (VR) が接続されているかどうかを判断できます。これを使用して、特定の VR デバイス、例えば enum.UserCFrame.
これは、さまざまな UserInputService VR メソッドとイベントと一緒に使用できます。
このメソッドは LocalScript 内でのみ使用できます。
パラメータ
指定された VR デバイスの種類。
戻り値
指定された VR デバイスが有効 ( true ) または無効 ( false ) です。
コードサンプル
local VRService = game:GetService("VRService")
local isEnabled = VRService:GetUserCFrameEnabled(Enum.UserCFrame.Head)
if isEnabled then
print("VR device is enabled!")
else
print("VR device is disabled!")
end
RecenterUserHeadCFrame
このメソッドは、CFrame のユーザーの頭を現在の VR ヘッドセットの位置に再センターします。これは、ユーザーのゲーム内頭がユーザーの VR ヘッドセットの位置に基づいて配置されることを確認するために使用できます。
これは UserInputService:RecenterUserHeadCFrame() と同じように動作します。
このメソッドは LocalScript 内でのみ使用できます。
戻り値
コードサンプル
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
このメソッドは、指定の CFrame にネビゲーションをリクエストし、指定の Enum.UserCFrame をオリジンとして、ビジュアライザーパラボラを視覚化するために使用します。これを使用すると、ゲームにバーチャルリアリティ (VR) を統合できます。ユーザーの VR デバイスから目
VRService には、類似するイベント、NavigationRequested、が使用されています。これは、これらのリクエストを検出するために使用されます。これは、UserInputService VRメソッドとイベントのいくつかと一緒に使用できます。
このメソッドは LocalScript 内でのみ使用できます。
パラメータ
ナビゲーションをリクエストされた VR デバイス。
戻り値
コードサンプル
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
このメソッドは、指定された Enum.VRTouchpad のモードを指定された Enum.VRTouchpadMode に設定します。これを使用すると、ユーザーのバーチャルリアリティ (VR) タッチパッドモードを変更して、タッチパッドを使用してゲームとユーザーが異なってインタラクトできます。
これは、さまざまな UserInputService VR メソッドとイベントと一緒に使用できます。
このメソッドは LocalScript 内でのみ使用できます。
パラメータ
指定された VRTouchpad を設定しています。
指定した VRTouchpad に設定したいモード。
戻り値
コードサンプル
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
イベント
NavigationRequested
このイベントは、VRService から指定された Enum.UserCFrame VR デバイスのためにナビゲーションをリクエストすると発動します。ナビゲーションをリクエストするのは、CFrame コーディネートで、指定された 1> Class.UserCFrame1> がデバ
このイベントは UserInputService サービスのイベントとメソッドと一緒に使用できます。
このイベントはローカルで発生するため、 LocalScript 内のみで使用できます。
パラメータ
ナビゲーションがリクエストされている VR デバイスを指します。
コードサンプル
local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)
TouchpadModeChanged
このイベントは、Enum.VRTouchpadModeのEnum.VRTouchpad が変更された場合に発生します。このイベントを使用して、ユーザーのクライアントを介して接続された VR タッチパッドの状態を追跡できます。
このイベントは UserInputService サービスのイベントとメソッドと一緒に使用できます。
このイベントはローカルで発生するため、 LocalScript 内のみで使用できます。
パラメータ
モードが変わったタッチパッド。
新しいモード。
コードサンプル
local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)
UserCFrameChanged
このイベントは、ユーザーが接続された VR デバイスを移動するなど、Enum.UserCFrame が変更されたときに発動します。GetUserCFrame() サービスイベントとメソッドを使用して、CFrame コ
このイベントはローカルで発生するため、 LocalScript 内のみで使用できます。
パラメータ
変更した VR デバイスのタイプ。
コードサンプル
local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)
UserCFrameEnabled
このイベントは、Enum.UserCFrame が有効になったり無効になったりすると発動します。GetUserCFrameEnabled() の状態を追跡するために、UserCFrame サービスイベントとメ
このイベントはローカルで発生するため、 LocalScript 内のみで使用できます。
パラメータ
UserCFrame|UserCFrame を有効にするか無効にする。
UserCFrame|UserCFrame が有効 ( true ) または無効 ( false ) であるかを示すブールーン。
コードサンプル
local VRService = game:GetService("VRService")
VRService.UserCFrameEnabled:Connect(function(type, enabled)
if enabled then
print(type.Name .. " got enabled!")
else
print(type.Name .. " got disabled!")
end
end)