VRService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
VRService は、Roblox とバーチャルリアリティ (VR) の間のインタラクションを処理する責任があります。そのメソッド、プロパティ、イベントは、VR デバイスで Roblox を経験しようとする最終ユーザーに最高のエクスペリエンスを提供するのに役立ちます。
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 が聴くことができる場合、真を返します。
ユーザーが着用している VR ヘッドセットの現在の場所に CFrame を再センターします。
指定された CFrame を視覚化パラボラの起源として使用して、指定された Enum.UserCFrame を使用して特定のナビゲーションリクエストを行います。
指定された Enum.VRTouchpad のモードを指定された Enum.VRTouchpadMode に設定します。
イベント
ナビゲーションがリクエストされると、VRService から発射されます。
Enum.VRTouchpadMode の Enum.VRTouchpad が変更された場合に発火します。
Enum.UserCFrame が変更されると発火します。
Enum.UserCFrame が有効になっているか無効になっていると、発火します。
プロパティ
AutomaticScaling
Enum.VRScaling.World に設定すると、Camera.HeadScale は世界のスケールがアバターの視点から見えるように調整します。小さなアバターを持つプレイヤーは、大きなアバターを持つプレイヤーよりも、周囲のオブジェクトを大きく感じるでしょう。
ControllerModels
FadeOutViewOnCollision
真になると、VR プレイヤーのビューは頭がオブジェクトに衝突すると黒に消えます。このプロパティは、プレイヤーが VR 中に壁を通して見ることができないようにします。デフォルト値は true です。
GuiInputUserCFrame
このプロパティは、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 でのみ使用できます。
参照してください: See Also
コードサンプル
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.VRTouchpad のモードを示す Enum.VRTouchpadMode を返します。返されたモードは、ユーザーがタッチパッドとどのように対話してゲームをプレイするかを示します。
これは、複数の UserInputService VR メソッドとイベントとともに使用できます。
このメソッドは LocalScript で使用するときのみ機能します。
パラメータ
指定された VRTouchpad 。
戻り値
指定された VRTouchpad のモード。
コードサンプル
local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)
GetUserCFrame
このメソッドは、特定のバーチャルリアリティ (VR) デバイスの位置と方向を実世界空間からオフセットとして記述する CFrame を返します。このメソッドは、VR の互換性をゲームに実装して、接続された VR デバイスの動作を取得し、追跡するときに使用する必要があります。
メソッドを使用すると、開発者は、接続された VR デバイスの場所に対応するユーザーのゲーム内キャラクターの再配置などの機能を実装できます。これは、ユーザーのゲーム内キャラクターの CFrame を変更して、ユーザーCFrame枚数と CFrame 値引数を使用して指定された VR デバイスの CFrame にマッチさせることで行うことができます。
は、接続された VR デバイスの が変更されると自動的に発動するイベントを提供しますが、それは で使用されている限りです。
このメソッドは 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) が聴くことができる場合、真を返します。特定の VR デバイス、例えば Enum.UserCFrame.Head が、ユーザーのゲームに接続されているかどうかを判断するのに使用できます。
これは、複数の 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
このイベントは、指定された VR デバイスからナビゲーションがリクエストされたときに発動します。それは CFrame 座標で発射し、指定された Enum.UserCFrame がナビゲーションをリクエストするデバイスを示します。
このイベントは、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 が変更されたときに発動します。It can be used alongside GetUserCFrame() を使用して、VR デバイスの CFrame 座標を追跡し、変更/移動するとき。また、UserInputService サービスイベントやメソッドと一緒に使用することもできます。
このイベントはローカルで発動するため、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 が有効になっているか、その状態が変更されたときを追跡することができます。また、UserInputService サービスイベントやメソッドと一緒に使用することもできます。
このイベントはローカルで発動するため、LocalScript でのみ使用できます。
パラメータ
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)