Camera

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

複製されていません

カメラオブジェクトは、3D 世界のビューを定義します。実行中のエクスペリエンスでは、各クライアントにはそれぞれのローカル Class.Workspace の中にあるカメラオブジェクトがあり、Workspace プロパティを通じてアクセスできます。

最も重要なカメラプロパティは次のとおりです:

  • Camera.CFrame は、カメラの位置と向きを表します。

  • Camera.CameraType は、エクスペリエンスのカメラスクリプトによって読み取られ、カメラがどのフレームを更新するかを決定します。

  • Camera.CameraSubject は、エクスペリエンスのカメラスクリプトによって読み取られ、カメラがフォローするオブジェクトを決定します。

  • Camera.FieldOfView 、これは、観測可能な世界の可視性の範囲を表します。

  • Camera.Focus は、カメラが見ているポイントを表します。このプロパティは、特定のビジュアルが詳細になり、フォーカスポイントに近づくたびに更新されるため、このプロパティを設定することは重要です。

カメラの動作を調整、カスタマイズする方法については、カメラのカスタマイズ を参照してください。

概要

プロパティ

  • 並列読み取り

    Class.Camera の Camera 、3D 世界での位置と方向を定義します。

  • 並列読み取り

    Class.Humanoid または BasePart その内容は Camera です。

  • 並列読み取り

    カメラスクリプトによって読み込まれる Enum.CameraType を指定します。

  • 複製されていません
    並列読み取り

    カメラのダイアゴナルフィールドオブビューの角度を設定します。

  • 並列読み取り

    カメラの垂直フィールドオブビューの角度を設定します。

  • ビューポートサイズ変更の下で Camera の FOV 値を決定します。

  • 並列読み取り

    Roblox のグラフィックシステムによって優先される 3D 空間を設定します。

  • 並列読み取り

    VR デバイスを使用してプレイヤーの頭の動きを自動で追跡するかどうかを切り替えます。

  • 並列読み取り

    VR を使用すると、ユーザーの世界の見通しのスケールが設定されます。

  • 複製されていません
    並列読み取り

    最長のビューポート軸にカメラの視界の角度を設定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    カメラの近くのクリッププレーンのオフセットの Z をスタッドで説明します。

  • 並列読み取り

    プレイヤーが VR デバイスを使用しているときに、Camera.CFrame プロパティからスピンとロールを適用するかどうかを切り替えます。

  • 読み取り専用
    複製されていません
    並列読み取り

    Roblox クライアントのデバイスセーフエリアのサイズ。

方法

  • GetPartsObscuringTarget(castPoints : Array,ignoreList : Instances):Instances

    Class.BasePart|BaseParts を返す Camera.CFrame とキャストポイントの間のビューラインを隠す配列を返す。

  • Class.Camera がレンダリングされている実際の Camera を返し、適用されたロールと VR デバイスの影響を計算します。

  • Class.Camera を使用して Camera:SetRoll() で 現在のロール、または回転をカメラの Z 軸の周りに適用した 1> ラジアンズ1> を返します。

  • 並列書き込み

    画面の位置 (in ピクセル) から、Ray がカメラの方向に沿って設定された深度から、Camera を作成します。GUI のオンセット。

  • SetRoll(rollAngle : number):void

    カメラの Z 軸の周りに適用される現在の回転を設定します。

  • 並列書き込み

    ビューポート (ピクセル単位) の位置から、Ray の方向に沿って、Camera のユニットを作成します。CoreUISafeInsets のインセットは、カメラの方向に沿って、2>Enums.ScreenInsets|CoreUISafeInsets2> によって計算されません。

  • 並列書き込み

    Datatype.Vector3 のスクリーン位置と深度、およびこの位置が画面の境界内かどうかを返します。worldPoint およびこの位置が画面の境界内にあるかどうかに対応します。GUI のインセットに対応します。

  • 並列書き込み

    Datatype.Vector3 の画面位置と深度、worldPoint のこのポイントが画面の境界内にあるかどうか、およびこのポイントが画面の境界内にあるかどうかを返します。この GUI のインセットはカウントされません。

  • ZoomToExtents(boundingBoxCFrame : CFrame,boundingBoxSize : Vector3):void

イベント

プロパティ

CFrame

並列読み取り

このプロパティは、CFrameCameraで、ポジションと向きを 3D 世界で定義します。頭の回転など、一部の変換はこのプロパティに反映されないので、Class.Camera:GetRenderCFrame()|GetRenderC

このプロパティを設定することでカメラを動かすことができます。ただし、デフォルトのカメラスクリプトも設定されているので、次のいずれかを行う必要があります:

  • カメラを Camera.CameraType に設定して、デフォルトのカメラスクリプトがカメラの Enum.CameraType.Scriptable を更新しないようにします。このメソッドは、ほとんどの場合に最適です。

  • デフォルトのカメラスクリプトをオルタネティブに完全に置き換えます。このアプローチは、デフォルトのカメラ機能が必要ない場合にのみ推奨されます。

Class.Camera を配置およびオリエントする最も直感的な方法は、CFrame.lookAt() コンストラクターを使用することです。次の例では、Camera は 1>Datatype.Vector3.new(0


local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
local pos = Vector3.new(0, 10, 0)
local lookAtPos = Vector3.new(10, 0, 0)
workspace.CurrentCamera.CFrame = CFrame.lookAt(pos, lookAtPos)

カメラを上記のように配置することができますが、CFrame から別のDatatype.CFrame にスムーズに移動するためにアニメートしたい場合があります。この場合、Datatype.CFrame を使用して、2> Datatype.CFrame2> から5> Datatype.CFrame5> まで、および8> Datatype.CFrame8> から1> Datatype.CFrame1> まで、

  • Class.RunService:BindToRenderStep() と CFrame:Lerp() メソッドで、カメラの位置/オリエンテーションを設定します。

  • カメラの位置/方向をアニメートする Tween を作成し、プレイします:


    local Players = game:GetService("Players")
    local TweenService = game:GetService("TweenService")
    local camera = workspace.CurrentCamera
    camera.CameraType = Enum.CameraType.Scriptable
    local player = Players.LocalPlayer
    local character = player.Character
    if not character or character.Parent == nil then
    character = player.CharacterAdded:Wait()
    end
    local pos = camera.CFrame * Vector3.new(0, 20, 0)
    local lookAtPos = character.PrimaryPart.Position
    local targetCFrame = CFrame.lookAt(pos, lookAtPos)
    local tween = TweenService:Create(camera, TweenInfo.new(2), {CFrame = targetCFrame})
    tween:Play()

CameraSubject

並列読み取り

CameraSubject は、さまざまな Instances を受け入れます。デフォルトのカメラスクリプトは、利用可能な設定に応答して異なります:

  • デフォルトでは、カメラスクリプトはローカルキャラクターの Humanoid に従います。これには、人形の現在の状態と Humanoid.CameraOffset が含まれます。

  • Class.BasePart に設定されると、カメラスクリプトはその位置をフォローし、垂直オフセットがある場合は VehicleSeats です。

カメラサブジェクトnil に設定できません。これを試行すると、以前の値に戻ります。

カメラサブジェクト をデフォルトの値に戻すには、ローカルキャラクターの Humanoid に設定してください:


local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local function resetCameraSubject()
if workspace.CurrentCamera and localPlayer.Character then
local humanoid = localPlayer.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
workspace.CurrentCamera.CameraSubject = humanoid
end
end
end

CameraType

並列読み取り

デフォルトの Roblox カメラスクリプトには、いくつかの内蔵動作があります。このプロパティを設定すると、さまざまな Enum.CameraType 動作の間で切り替わります。一部のカメラタイプでは、正しく動作するために Camera.CameraSubject が有効でなければなりません。

デフォルトのカメラスクリプトは、カメラタイプがEnum.CameraType.Scriptable に設定されている場合、カメラの動きや更新はありません。 For more information on positioning and orienting the camera manually, see Camera.CFrame .

For all CameraType settings except Enum.CameraType.Scriptable , the 1> Class.Camera.Focus1> is set to.

DiagonalFieldOfView

複製されていません
並列読み取り

カメラが視野のどの隅にからでも眺めることができる度数を設定します。FieldOfView を参照して、フィールドオブビューの説明を参照してください。

注意 DiagonalFieldOfView は、Camera のレンダリングによって表示されるビューフィールドを表しますが、一部のデバイスのビューポートに隠れている可能性のあるオープンスクリーンエリアには、Class. Camera.ViewportSize|ViewportSize に参照してください。

FieldOfView

並列読み取り

フィールドオブビュー プロパティは、カメラが垂直方向に何度の度を見ることができるかを設定します。このプロパティは 1 から 120 度の間にクランプされ、デフォルトは 70 です。非常に低いまたは非常に高いフィールドオブビューは、プレイヤーに混乱させる可能性があるため、お勧めしません。

ユニフォームスケーリングは強制されているため、縦と横のビューフィールドは常に画面のアセプト比率によって関連しています。

FieldOfView (FOV) の提案された使用法には、次のようなものが含まれます:

  • FOV を減らして、単に拡大を感じるために、例えばビンオーラーを使用するときに使用します。
  • プレイヤーが「ダッシュ」するときにFOVを上昇させて、コントロールの欠如の印象を与えます。

注意 FieldOfView は、Camera のレンダリングによって表示されるビューポートを表します。一部のデバイスでは、Class.Camera. ViewportSize|ViewportSize によってフルスクリーンエリアが隠される場合があります。詳細は、1> Class.Camera. ViewportSize|ViewportSize1>

FieldOfViewMode

並列読み取り

カメラのフィールドオブビュー (FOV) は、ViewportSize の変更を反映する必要があります。 FieldOfViewMode の値は、保持コンセント値 を決定します。

たとえば、このプロパティが Enum.FieldOfViewMode.Vertical に設定されると、ビューポートのサイズが変更されると、横の FOV が更新されますが、縦の FOV は常にコンセントを保持します。このプロパティが Enum.FieldOfViewMode.Diagonal に設定されると、横の FOV と縦の FOV

Focus

並列読み取り

エンジンが実行するグラフィックオペレーション、例えば照明の更新、は時間または計算コストがかかる場合があります。カメラの フォーカス プロパティは、エンジンがこれらのオペレーションを実行する領域を優先するようにカメラに伝えます。たとえば、 PointLights

デフォルトの Roblox カメラスクリプトは、フォー

フォーカス はカメラの位置やオリエンテーションに影響しません。これについては、Camera.CFrame を参照してください。

HeadLocked

並列読み取り

カメラが VR デバイスを使用してプレイヤーの頭の動きを自動で追跡するかどうかを切り替えます。true (デフォルト) では、エンジンは Camera.CFrame とユーザーの頭の Enum.UserCFrame を組み合わせて、


local UserInputService = game:GetService("UserInputService")
local camera = workspace.CurrentCamera
local headCFrame = UserInputService:GetUserCFrame(Enum.UserCFrame.Head)
headCFrame = headCFrame.Rotation + headCFrame.Position * camera.HeadScale
-- これはカメラ:GetRenderCFrame() と同等になります
local renderCFrame = camera.CFrame * headCFrame

次の理由で、 このプロパティを無効にしないでください ことをお勧めします:

  • 同等のヘッドトラッキングソリューションが追加されない場合、プレイヤーはモーション不快症を経験する可能性があります。
  • Roblox エンジンは、 HeadLocked が true の場合、ラテンシーの最適化を実行します。

参照してください

HeadScale

並列読み取り

ヘッドスケール は、VR を使用するときにユーザーの世界の視点のスケールです。

VR の 1 スタッドのサイズは、0.3 meters / HeadScale で、これは、ユーザーの VR デバイスを使用しているとき、ユーザーの視点から世界が小さく見えることを意味します。たとえば、1つの高さのパーツは、 HeadScale の 0.5に相当する

このプロパティは自動的に VRService.AutomaticScaling によって制御されています。玩プレイヤーの視点をアバターのサイズに沿わせるために。如果HeadScaleを自分で制御するか、カスタムキャラクターを使用する意図です。VRService.AutomaticScaling

このプロパティは、Humanoid.HeadScale という、NumberValue を持つ Class.Humanoid を制御するためのスケールを含める必要がありません。

MaxAxisFieldOfView

複製されていません
並列読み取り

MaxAxisFieldOfView プロパティは、カメラが最長のビューポートの軸にどれだけの度を見ることができるかを設定します。

最長軸が垂直軸の場合、このプロパティは Class.Camera.FieldOfView|FieldOfView プロパティと同様の動作を示します。これは、デバイスがポートレートオリエンテーションにある場合が多いです。ランドスケープオリエンテーションの場合、最長軸は横長の軸です。この場合、プロパテ

NearPlaneZ

読み取り専用
複製されていません
並列読み取り

The NearPlaneZ プロパティは、カメラの近くにあるクリッププレーンがどれくらい遠くにあるかをスタッドで説明します。 The 近くのクリッププレーンは、カメラの Camera.CFrame の前にあるジオメトリ

Diagram showing how the NearPlaneZ clips (does not render) 3D content between the plane and the camera.

VRTiltAndRollEnabled

並列読み取り

このプロパティは、Camera.CFrame プロパティから VR デバイスを使用している間、Class.Camera.CFrame プロパティに適用するかどうかを切り替えます。

モーション sickness を防止するために、地平線はレベルで保持される必要があります。 VR デバイスを使用してプレイヤーのビューを傾けてスクロールすると、プレイヤーの物理スペースとバーチャルスペースの間の接続が切断される可能性があります。プレイヤーが明らかな下向き方向を変更すると、バランスを失うか、吐き気を経験する可能

これらの理由で、このプロパティを無効にすることは一般的に推奨されますが、これらのエフェクトのためにエクスペリエンスを広くテストした場合を除きます。特に、スクロールとロールを有効にしている場合、プレイヤーが常に安定した参照フレームを持つことを確認する必要があります。たとえ、スクロールとロールを有効にしている場合で

ViewportSize

読み取り専用
複製されていません
並列読み取り

ViewportSize は、現在の画面のデバイスの安全エリアのサイズを返します。このエリアは、Roblox トップバーエリアを含む正方形ですが、デバイスのスナップまたはスクリーンカットアウトは含まれていません。ViewportSize

Mobile device screen with cutout showing device safe area.

上記の通り、ViewportSize は、カットアウトまたはスナップのあるディスプレイのサイズに等しくあり

最後に、ViewportSize は、カメラがレンダリングするために使用するビューポートサイズではありません。また、Camera.FieldOfView および Camera.DiagonalFieldOfView プロパティは、

カメラのアップデート

Class.Camera は、Class.Workspace. CurrentCamera によって現在参照されているのみで、ViewportSize は、1> Class.RunService.PreRender|

方法

GetPartsObscuringTarget

Instances

このメソッドは、BaseParts がカメラの Camera.CFrameVector3 の位置の間のラインを隠すアレイを返します。2>CastPoints2> 配列に含まれる

castPoints パラメータは、Vector3 ポジションのアレイとして渡されます。注意、返されるアレイの BaseParts は、任意の順序であり、追加のレイキャストデータは提供されません。ヒットポジション、ヒ


local camera = workspace.CurrentCamera
local castPoints = {
Vector3.new(0, 10, 0),
Vector3.new(0, 15, 0)
}
local ignoreList = {}
local partsObscuringTarget = camera:GetPartsObscuringTarget(castPoints, ignoreList)

Class.Terrain がキャストポイントを隠すと、BaseParts は、隠す前の Terrain と隠す後の 1>Class.BasePart1> の間のキャストポイントを隠しません。

パラメータ

castPoints: Array

Datatype.Vector3 ポイントのキャストポイントの位置のアレイ。

ignoreList: Instances

Class.Instance|Instances 以外の子孫を含む、無視するべき配列。


戻り値

Instances

Class.BasePart|BaseParts 配列、Camera.CFramecastPoints の間の視線を隠す。

コードサンプル

X-Ray Function

local Workspace = game:GetService("Workspace")
local camera = Workspace.CurrentCamera
local function XRay(castPoints, ignoreList)
ignoreList = ignoreList or {}
local parts = camera:GetPartsObscuringTarget(castPoints, ignoreList)
for _, part in parts do
part.LocalTransparencyModifier = 0.75
for _, child in pairs(part:GetChildren()) do
if child:IsA("Decal") or child:IsA("Texture") then
child.LocalTransparencyModifier = 0.75
end
end
end
end
XRay({ Vector3.new() })

GetRenderCFrame

この関数は、CFrame のレンダリング中の実際の Camera を返し、VR ヘッドトランスフォームは 2> Class.Camera.CFrame2> プロパティに適用されないので、最善のプラ

たとえば、VR を使用すると、Camera は次の CFrame に実際にレンダリングされます:


local UserInputService = game:GetService("UserInputService")
local camera = workspace.CurrentCamera
local headCFrame = UserInputService:GetUserCFrame(Enum.UserCFrame.Head)
headCFrame = headCFrame.Rotation + headCFrame.Position * camera.HeadScale
renderCFrame = camera.CFrame * headCFrame

カメラのレンダリング CFrame は、Camera.HeadLocked プロパティが true の場合にのみ頭を計算します。


戻り値

Datatype.CFrame は、Camera をレンダリングしています。

GetRoll

この関数は、CameraCamera:SetRoll() を使用して適用された現在のロールをラジアンで返します。ロールはカメラの Z 軸の回転で定義されます。

この関数は、Camera:SetRoll() 関数を使用してのみロールを返します。ロールを手動でカメラの Camera.CFrame に適用した場合は、ロールのロールアップはカウントされません。Camera のロールを取得するには、次のスナップショットを使用できます:


local function getActualRoll()
local camera = workspace.CurrentCamera
local trueUp = Vector3.new(0, 1, 0)
local cameraUp = camera:GetRenderCFrame().upVector
return math.acos(trueUp:Dot(cameraUp))
end

戻り値

Class.Camera:SetRoll() によって適用される現在のロール。

コードサンプル

Camera:GetRoll

local currentRoll = math.deg(workspace.CurrentCamera:GetRoll()) -- Gets the current roll of the camera in degrees.
if currentRoll ~= 20 then
workspace.CurrentCamera:SetRoll(math.rad(20)) -- If the camera isn't at 20 degrees roll, the roll is set to 20 degrees.
end

ScreenPointToRay

並列書き込み

この関数は、画面の 2D 位置から Ray を作成します (定義されたピクセル)、GUI の挿入をカウントします。 Ray は、世界の Vector3 の 2D 位置からの 2>Class.Camera2> の

この関数は、GUIのインセットを承認するために、GUIエレメントのオフセットを適用します。これにより、画面の位置がトップバーの下の左上隅に開始することがあります。たとえ同じ機能でも、ギュイのオフセットを計算しない場合は、Camera:ViewportPointToRay() を使用してください。

作成された Ray はユニットレイで、長さは 1 スタッドしかありません。長いレイを作成するには、フォロー中のコードを実行できます:


local camera = workspace.CurrentCamera
local length = 500
local unitRay = camera:ScreenPointToRay(100, 100)
local extendedRay = Ray.new(unitRay.Origin, unitRay.Direction * length)

この関数は、現在のワークスペースカメラのみに作動します。他のカメラ、例えば、ViewportFrame を作成するなど、は、(1, 1) の初期ビューポートサイズを持ち、Workspace.CurrentCamera にのみ更新され

パラメータ

X軸、ピクセル単位の画面ポイントの位置。この位置は、Ray の起点に対応する GUI のインセットを計算します。

Y軸、ピクセル単位の画面ポイントの位置。この位置は、Ray の起点に対応する GUI のインセットを計算します。

depth: number

深度 Camera 、スタッド 、Ray のオリジンをオフセットするための。

既定値: 0

戻り値

ユニット Ray 、原点は同等の Datatype.Vector3 世界の位置で、Vector3 から離れた深度のある屏幕コーディネートです。このレイは、Camera の方向に向きます。

SetRoll

void

この機能は過時になっており、最高の実践としてはもう考えられません。

この関数は、Camera の現在のロール、in radians、を設定します。ロールは、Camera.CFrame の後に適用され、カメラの Z 軸の回転を表示します。

たとえば、次のコードは Camera を逆コードにします:


workspace.CurrentCamera:SetRoll(math.pi) -- math.pi radians = 180 degrees

SetRoll は、Camera.CFrame プロパティを使用して適用されたすべてのロールに影響しません。Camera.CFrame プロパティを使用してロールを適用すると、CFrame プロパティに反映されませんが、1> Class.Camera:GetRenderCFrame

この関数は、デフォルトのカメラスクリプトが使用されているかどうかにかかわらず、Camera.CameraType が 「スクリプト可能」 に設定されている場合にのみ使用できます。Camera.CameraType が他の 2>Class.Camera.CameraType2> と一緒に使用されている場合は、出力で警告が表示されます

この関数を使用して適用されたすべてのロールは、Camera.CameraType が スクリプト可能 から変更されたときに失われます。

この関数を使用してロールセットを取得するには、Camera:GetRoll() を使用します。

この関数は古いため、Camera にロールを適用する代わりに、Camera.CFrame プロパティを使用してください。たとえば:


local currentCFrame = workspace.CurrentCamera.CFrame
local rollCFrame = CFrame.Angles(0, 0, roll)
workspace.CurrentCamera.CFrame = currentCFrame * rollCFrame

パラメータ

rollAngle: number

Class.Camera に適用するロール角度、in radians。


戻り値

void

ViewportPointToRay

並列書き込み

この関数は、デバイスの安全ビューポートコーディングの 2D 位置から Ray を作成します、その結果はピクセルによって定義された深度 (in studs) からの Vector3Camera に等しいです。

以下の例に示すように、 (0, 0) は、Roblox トップバーの左上隅にあります。これは、入力 2D 位置が En册.ScreenInsets|CoreUISafeInsets のセットには影響しませんが、CoreUISafeInsets

Diagram showing the origin of the device safe area viewport coordinate system.

UI インスタンスは、異なるコーディネートシステムを使用します (GuiObject.AbsolutePosition は、この関数が使用する CoreUISafeInsets ビューポートコーディネートシステムを使用しています)。コア UI コ

また、この関数は Class.Workspace. CurrentCamera カメラのみに作動します。他のカメラ、例えば、 ViewportFrame を作成するカメラの場合、最初のビューポートサイズは (1, 1)</

この関数は、ViewportSize プロパティと一緒に使用して、画面の中央からレイを作成するために使用できます:


local Workspace = game:GetService("Workspace")
local camera = Workspace.CurrentCamera
local viewportPoint = camera.ViewportSize / 2
local unitRay = camera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y, 0)

作成された Ray はユニットレイで、長さは 1 スタッドしかありません。長いレイを作成するには、フォロー中のコードを実行できます:


local Workspace = game:GetService("Workspace")
local camera = Workspace.CurrentCamera
local length = 500
local unitRay = camera:ScreenPointToRay(100, 100)
local extendedRay = Ray.new(unitRay.Origin, unitRay.Direction * length)

パラメータ

位置X 軸の位置、 ピクセルで、デバイスの安全エリアコーディネートの Ray のオリジンになるビューポートポイント。

位置 Y 軸のピクセル単位のビューポートポイントのオリジン、デバイスの安全エリアのコーディション。Ray のオリジンは、デバイスの安全エリアのコーディションです。

depth: number

深度 Camera 、スタッド 、Ray のオリジンをオフセットするための。

既定値: 0

戻り値

ユニット Ray 、同等の Datatype.Vector3 世界の位置から、Vector3 からの深度のあるコーディネートコードの指定のビューポートコーディネートコードの指定の位置から、このレイはCamera の方向に向きます。このレイは1> Class.Camera1> からの

WorldToScreenPoint

並列書き込み

この関数は、Vector3 の画面位置と深度、およびこの位置が画面の境界内かどうかを返します。

この関数は、トップバーの空きスペースなど、現在の GUI を考慮します。これにより、返される 2D 位置は、GUI ポジションと同じように使用でき、GUI 要素を配置することができます。For an otherwise identical function that ignores the GUI inset, see Camera:WorldToViewportPoint() .


local camera = workspace.CurrentCamera
local worldPoint = Vector3.new(0, 10, 0)
local vector, onScreen = camera:WorldToScreenPoint(worldPoint)
local screenPoint = Vector2.new(vector.X, vector.Y)
local depth = vector.Z

この関数は、worldPoint が画面の範囲内にあるかどうかを示すボーキャストを実行しません。true または BaseParts の隠すかどうかにかかわらず、2>true2> は、ポイントが 5>Class.BasePart|BaseParts5> または 8>Class.Terrain</

パラメータ

worldPoint: Vector3

The Vector3 世界位置。


戻り値

次の順序で含まれる配列:

  • A Vector3 の X と Y コンポーネントは、画面の左上隅の worldPoint からのオフセットを表示します。Vector3 の深度は、画面 (in studs) からの 1> worldPoint1> から表示されます。

  • worldPoint が画面の境界内にあるかを示すブールーン。

WorldToViewportPoint

並列書き込み

この関数は、Vector3 の画面位置と深度、およびこの位置が画面の境界内かどうかを返します。

この関数は、トップバーの空き位置など、現在の GUI インセットを考慮しません。これは、2D 位置を表示ポートの左上隅から取得することを意味し、ScreenGui.IgnoreGuiInset を使用していない場合、この位置は GUI 要素を配置するのに適していません。

For an otherwise identical function that accounts for the GUI inset, see Camera:WorldToScreenPoint() .


local camera = workspace.CurrentCamera
local worldPoint = Vector3.new(0, 10, 0)
local vector, onScreen = camera:WorldToViewportPoint(worldPoint)
local viewportPoint = Vector2.new(vector.X, vector.Y)
local depth = vector.Z

この関数は、worldPoint が画面の範囲内にあるかどうかを示すボーキャストを実行しません。true または BaseParts の隠すかどうかにかかわらず、2>true2> は、ポイントが 5>Class.BasePart|BaseParts5> または 8>Class.Terrain</

パラメータ

worldPoint: Vector3

The Vector3 世界位置。


戻り値

次の順序で含まれる配列:

  • A Vector3 の X と Y コンポーネントは、ビューポートの左上隅からの worldPoint オフセットを表示します。 Datatype.Vector3 の Z コンポーネントは、スタッドでビューポー

  • worldPoint が画面の境界内にあるかを示すブールーン。

ZoomToExtents

void

パラメータ

boundingBoxCFrame: CFrame
boundingBoxSize: Vector3

戻り値

void

イベント

InterpolationFinished

このイベントは、CameraCamera:Interpolate() 関数を使用してインターポリрова完了したときに発生します。

このイベントは、Camera:Interpolate() が再び呼び出されたため、減速しません。

代わりに、TweenService をアニメートするために Camera を使用することをお勧めします。