Workspace
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
この動作を理解することは重要です。これは、オブジェクトが必要ないときに ワークスペース から削除できるようにするからです。たとえば、マップ Class.Model|Models は、別のマップがプレイされているときに <
アクティブな 3D オブジェクトの所有者としての役割において、 Workspace には、パーツ、その位置、およびジョイント間の関連する多くの便利な機能が含まれています。
ワークスペースにアクセスする
Workspace は、いくつかの方法でアクセスできますが、すべてが有効です。
- workspace
- game.Workspace
- game:GetService("Workspace")
注意
- オブジェクト、例えば ParticleEmitters や BillboardGuis など、装飾が必要なオブジェクトは、装飾がない場合、または Workspace に親化されていない場合、0,0,0 ポジションにあります。
- Class.Model:MakeJoints() と Model:BreakJoints() メソッドは、Model クラスから継承された 1>Class.Workspace:MakeJoints1> と 4>Class.Workspace:BreakJoints4> のみがプラグインで使用できます。
- Class.Workspace を削除することはできません。
- クライアントの現在の Camera オブジェクトは、Workspace.CurrentCamera プロパティを使用してアクセスできます。
- Class.Terrain オブジェクトは、Workspace.Terrain プロパティを使用してアクセスできます。
概要
プロパティ
地上レベルの空気の密度、航空力学モデルに使用されています。
他のユーザーによって作成されたアセットがゲームで販売可能かどうかを決定します。
ローカルクライアントのアニメーション制限モードを指定します。
ローカルプレイヤーが使用している Camera オブジェクト。
ゲームが実行されている秒数。
Class.BasePart|BaseParts とその先祖 Models が Workspace から削除される高さを決定します。
物理エンジンが BaseParts の EnableFluidForces プロパティを有効にするかどうかを決定します。
アニメーションされた地形の草、ダイナミックな雲、パーティクルのグローバルウィンドベクトルを指定します。
落下する BaseParts に適用される重力による加速度を決めます。
IKControls の制限に対応するサポートを有効にします。無効にすると、IKControls は物理的な制限を無視します。
キャラクターの頭とアクセサリーが MeshParts としてダウンロードされるかどうかを設定します。
モーバーの制限を使用している場合、アセンブリのルートパーツを選択するロジックを制御します。
ソリューターが物理シミュレーションを時間内に進めるかどうかを設定します。
エンジンがイベントハンドラーを再開するときに構成します。
エンジンがコンテンツをプレイヤーからストリームするタイミングを決める方法を構成します。
場プレースにコンテンツストリーミングを有効にしているかどうか。
ストリーミング整合性モードがアクティブかどうかを決定します。
コンテンツを優先の高いプレイヤーにストリームする最小の距離。
コンテンツがプレイヤーにストリームされる最大距離。
Class.Terrain オブジェクトの親になった Workspace に参照。
異なるグループで parts を設定しても、衝突とタッチイベントを無視することを決定します。
インスタンスストリーミングを有効にしたエクスペリエンスの詳細レベルを設定します。
インスタンスストリーミングが有効になっているときに Models のモデルストリーミング動作を制御します。
Class.Model または nil が明示的に設定する定されていない場合のメイン部分。
モデルのピボットの周りにモデルをスケールするための編集者専用プロパティ。このプロパティを設定すると、スケールが Model/ScaleTo が呼び出されたように移動します。
Class.Model のピボットが 不 に設定されている場所を決定します。
方法
最近物理学の影響を受けているため、BaseParts が物理的に有効であると認められた数を返します。
0 から 100 の間の整数を返し、現在の物理シミュレーションがスロートされている時間の割合を表します。
現在、物理学がシミュレートされているフレーム数を毎秒返します。
サーバーのエポック時間を秒単位で返します。
Class.BasePart|Parts と指定されたパーツの表面、および指定された共同作成モードによって、パーツ間のジョイントを作成します。
PGS 物理解析ソルバーが有効になっている場合、ゲームが真実であることを返します。
Class.BasePart|BaseParts と他の BaseParts の間のすべての関節を破壊します。
ポジションとズーム Workspace.CurrentCamera を表示して、BaseParts が現在 Workspace にあることを示します。
Class.BasePart のいずれかが他のパーツに触れている場合、Class.BasePart は true です。
指定した方向にブロックの形状を投影し、RaycastResult または BasePart セルにヒットすると、Terrain が返されます。
指定したボックスと重複する パーツの境界ボックス を返します。
境界ボックス を重複するパーツの配列を返します。
与えられたパーツと共有されているパーツのアレイを返します。
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):void
部品を直接移動するのではなく、逆キネマティクスを使用して指定された場所に移動させ、ジョイント、制限、または衝突が参加することを確認して、部品が物理的に満足していることを確認します。
オリジン、方向、オプションの RaycastParams を使用して、レイを投射し、RaycastResult を返します。これは、資格のあるオブジェクトまたは地形がレイに接触する場合にのみ返す オプションの Datatype.RaycastParams を使用して、レイを投射し、1>Datatype.RaycastResult1> を返します。
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
指定された方向に球形を投げ、RaycastResultまたはBasePartのセルにヒットすると、Terrainを返します。
指定された時間増加とオプションのセットを含む、世界中のパーツのシミュレーションを進めます。Advances the simulation for parts in the world forward based on a specified time increment and an optional set of BaseParts .
このモデルを特定のプレイヤーのために持続化するように設定します。 Model.ModelStreamingMode は、 PersistentPerPlayer に設定されなければ、動作が追加された結果により変更されることはありません。
モデルのすべてのパーツが含まれているボリュームの説明を返します。
Class.BasePart|BaseParts が含まれる最小限のバウンドボックスのサイズを返します。Model 、Model.PrimaryPart が設定されている場合は、1>Class.BasePart|BaseParts1> が返されます。
このモデルオブジェクトが持続する Player すべてのオブジェクトを返します。このメソッドを Script から呼び出すか、LocalScript から呼び出すかによって動作は変わります。
モデルのキャノニカルスケールを返します。モデルの新規作成には、デフォルトで 1 が返されますが、Model/ScaleTo でスケールされると変更されます。
Class.Model.PrimaryPart|PrimaryPart を指定された位置に移動します。Class.Model.PrimaryPart が指定されていない場合は、モデルのルートパーツが使用されます。
このモデルは特定のプレイヤーのために再び持続しなくなります。 Model.ModelStreamingMode は、 PersistentPerPlayer に設定されて、結果として動作を変更するために変更された場合には持続しなくなります。
スケールファクターを設定し、すべての子孫インスタンスのサイズと場所を調整して、スケールファクターが 1 の場合、インスタンスのオリジナルサイズと場所に対するスケールファクターが相対的に変更されます。
Class.Model を Datatype.Vector3 のオフセットを保持しながら シフトすると、モデルのオリエンテーションを保持します。如果 他の Class.BasePart または Class.Terrain が新しい位置に既に存在する場合は、1> Class.Model は1>
Class.PVInstance のピボットを取得します。
Class.PVInstance とそのすべての子孫 PVInstances は、ピボットが指定の CFrame に移動します。
イベント
持続モデルが指定されたプレイヤーに送信されると、ファイアを起動します。
プロパティ
AllowThirdPartySales
この Workspace プロパティは、他のユースによって作成されたアセットがゲームで販売可能かどうかを決定します。
サードパーティセールとは何ですか?
この値が偽りである場合、場所の作成者 (プレイヤーまたはグループ) が作成したアセットのみが MarketplaceService を使用して販売できます。
ほとんどの場合、ゲームはサードパーティのアセットを販売する必要はありません。しかし、取引ハングアウトなどのいくつかのゲームでは、この機能が必要であり、それはオプトインオプションとして存在します。
以下のサードパーティ製品を販売できますか?
注、開発者製品 は、AllowThirdPartySales が設定されているゲームでのみ販売できます。このプロパティは、ゲームパス と2>服装2> に影響します。
AvatarUnificationMode
CSGAsyncDynamicCollision
ClientAnimatorThrottling
ローカルクライアントに使用する Enum.ClientAnimatorThrottlingMode を指定します。
有効にすると、リモートシミュレートされた Model インスタンスのアニメーションがスロットルを開始します。スロットルは、次のパラメータを使用してスロットルの強度を計算します:
- Class.Camera との関連で Camera の可視性
- ゲーム内FPS
- アクティブなアニメーションの数
CurrentCamera
ローカルプレイヤーが使用している Camera オブジェクト。
現在のカメラを使用する
クライアントの Camera オブジェクトを検索するときは、Workspace の子としての「Camera」ではなく、このプロパティを使用してください。
このプロパティを設定すると、Camera 内のすべての他の Workspace オブジェクトが破壊され、CurrentCamera が含まれます。Workspace (または Workspace の下位) がディスコントを減らすために作成さ
詳しくは、カメラのスクリプト化 を参照してください。
DistributedGameTime
ゲームが実行されている秒数。
タイトルにもかかわらず、この値は現在、クライアントとサーバーの間で「分散」されていません。代わりに、サーバーでは、サーバーの稼働時間を表します。クライアントでは、サーバーに接続されている時間を表します。
開発者は上記の動作に依拠してはならないで、このプロパティが将来、クライアントとサーバー間で同期される可能性があります。
プログラムの実行開始時から時間を計算したい場合は、代わりに「時間」関数を使用する必要があります。以下では、DistributedGameTime とその代替品の間の比較を示しています。
print(workspace.DistributedGameTime) --> Time the game started runningprint(os.time()) --> Time since epoch (1 January 1970, 00:00:00) UTCprint(tick()) --> Time since epoch (1 January 1970, 00:00:00) system timeprint(time()) --> Time the game started runningprint(elapsedTime()) --> Time since Roblox started running
FallenPartsDestroyHeight
このプロパティは、Roblox エンジンが自動的に落下する BaseParts とその祖先 Models をマップから親化することで、Workspace によって親化されたパーツが永遠に続きます。これは、マップから落下したパーツが永遠に続きます。
この動作により削除されたパーツが Model の最後のパーツである場合、そのモデルはすべて削除されます。これは、パーツのすべてのモデルの祖先に適用されます。
このプロパティは -50,000 と 50,000 の間に固定されています。BaseParts は、原点の不正確さにより、大きな距離から正しくシミュレートまたはレンダリングできません。
このプロパティはスクリプトによって読み取ることができますが、プラグイン、コマンドバー、または Studio のプロパティウィンドウによってのみ設定できます。
FluidForces
このプロパティを有効にすると、物理エンジンは BaseParts の EnableFluidForces プロパティを持つユーザーの、 Default を含む航空力を計算します。デフォルトでは、
GlobalWind
このプロパティは、風がエクスペリエンスを通過する方向と強度を指定し、地形の草、ダイナミックな雲、パーティクルに影響を与えます。グローバルウィンド アーティクルを参照して詳細をご覧ください。
Gravity
落下するBaseParts に適用される重力の加速度を決めます。この値は、秒あたりのスタッド per 秒 2 で測定され、デフォルトでは 196.2 スタッド / 秒 2 に設定されます。この値を変更すると、開発者はゲームで低重力または高重力のエフェクトをシミュレートできます。
コードサンプル
local MOON_GRAVITY_RATIO = 1.62 / 9.81
local DEFAULT_GRAVITY = 196.2
local MOON_GRAVITY = DEFAULT_GRAVITY * MOON_GRAVITY_RATIO
-- Create a touch pad
local pad = Instance.new("Part")
pad.Size = Vector3.new(5, 1, 5)
pad.Position = Vector3.new(0, 0.5, 0)
pad.Anchored = true
pad.BrickColor = BrickColor.new("Bright green")
pad.Parent = workspace
-- Listen for pad touch
local enabled = false
local debounce = false
local function onPadTouched(_hit)
if not debounce then
debounce = true
enabled = not enabled
workspace.Gravity = enabled and MOON_GRAVITY or DEFAULT_GRAVITY
pad.BrickColor = enabled and BrickColor.new("Bright red") or BrickColor.new("Bright green")
task.wait(1)
debounce = false
end
end
pad.Touched:Connect(onPadTouched)
IKControlConstraintSupport
IKControls の制限に対応を有効にします。Default 値は、Enabled と同じです。IKControl を無効にすると、IKControls は物理コンストリンクトを無視します。2>Class.IKControl2> については、参照してください。
InsertPoint
MeshPartHeadsAndAccessories
キャラクターの頭とアクセサリーが MeshParts としてダウンロードされるかどうかを設定します。デフォルト値は Default と同じです。この機能が有効になっている場合、内蔵アバターは Enabled の頭とアクセサリーを使用します。
ModelStreamingBehavior
MoverConstraintRootBehavior
次の制限のいずれかを使用するメカニズムのアセンブリルートパーツを選択するロジックを制御します:
このプロパティを Enum.MoverConstraintRootBehaviorMode.Enabled に設定すると、この制限は、制限が 2つのパーツ間のフォースを伝達しないことを
このプロパティを Enum.MoverConstraintRootBehaviorMode.Disabled に設定すると、アセンブルのルートパーツを選択すると、これらの制限が不正確に評価される可能性があり、ネットワークの所有権と遅延が不一致する可能性があります。
PathfindingUseImprovedSearch
PhysicsSteppingMethod
ソリューターが物理シミュレーションを時間内に進める方法を設定します。このオプションはスクリプト不可能であり、Workspace 内の PhysicsStepping Method プロパティから設定する必要があります。詳細は、「Adaptive Timestepping」を参照してください。
<tbody><tr><td><b>アダプティブ</b></td><td>エンジンは、240 Hz、120 Hz、または 60 Hz の個々のアセンブリの最適なシミュレーションレートを割り当てようとします。この設定は、パフォーマンスのために最適化されています。</td></tr><tr><td><b>修正済み</b></td><td>ワークスペース内のすべてのシミュレートされたアセンブルは、240 Hz で前進します。このオプションは、最高の安定性とシミュレーション精度のために最適です。</td></tr><tr><td><b>デフォルト</b></td><td>現在のデフォルトは <b>Fixed</b> です。</td></tr></tbody>
オプション | 説明 |
---|
注意、Constraints または衝突によって、異なるシミュレーションレートのアセンブルが接続されると、組み合わせメカニズムは安定性のために最高のシミュレーションレートにデフォルトします。
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
このプロパティは、イベントが発動したときにイベントハンドラーがすぐに再開されるか、または遅らせてから再開されるかを決定します。リスポーンポイントには現在以下が含まれています:
- 入力処理 (入力ごとに 1 回、UserInputService を参照)
- レガシーのスクリプトの再起動、例えば wait() 、 spawn() 、および delay()
For more information, see 遅延イベント .
StreamOutBehavior
StreamOutBehavior は、デバイスのメモリコンディション、またはストリーミング範囲に基づいて、コンテンツを ReplicationFocus から読み取ることを制御します。
参照してください:
- Workspace.StreamingEnabled は、コンテンツストリーミングを有効化するかどうかを制御します
StreamingEnabled
StreamingEnabled プロパティは、ゲームコンテンツのストリーミングが場プレースに有効であるかどうかを決定します。このプロパティはスクリプト不可能であるため、Studio の ワークスペース オブジェクトに設定する必要があります。
参照してください:
StreamingIntegrityMode
インスタンス ストリーミング が有効になっている場合、プレイヤーのキャラクターが、クライアントにストリーミングされていない世界の地域に移動すると、エクスペリエンスは不審議な方法で動作する可能性があります。ストリーミング完全性機能は、これらの潜在的に問題的な状況を避ける方法を提供します。
StreamingMinRadius
プロパティ StreamingMinRadius は、プレイヤーのキャラクターまたは現在の ReplicationFocus の周りのラジウスを指します。デフォルトは 64 スタッドです。
デフォルトの最小範囲を上げると、メモリとサーバーのバンドウィドを他のコンポーネントの代わりに増加させるため、慎重に検討する必要があります。
参照してください:
- Workspace.StreamingEnabled は、コンテンツストリーミングを有効化するかどうかを制御します
StreamingTargetRadius
StreamingTargetRadius プロパティは、プレイヤーのキャラクターからの最大距離や、ReplicationFocus の内容をストリームするコンテンツのスタンダードに 1024 スタッドを設定します。デフォルトは 1024 スタッドです。
エンジンは、ターゲット範囲を超えて以前にロードされたコンテンツを保持することができます。メモリー許可です。
参照してください:
- Workspace.StreamingEnabled は、コンテンツストリーミングを有効化するかどうかを制御します
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
このプロパティは、parts が異なるグループで設定されているかどうかにより、衝突を無視するか、false を無視するかを決定します。デフォルトでは、このプロパティの値は false に設定されています。
このプロパティを有効にすると、CanTouch プロパティのように、異なるグループのパーツが衝突しないようにするものも同じように無視されます。BasePart.CanCollide プロパティのページを参照してください。For more information on the behavior of CanTouch, please visit its property page.
方法
GetNumAwakeParts
最近物理学の影響を受けているため、BaseParts が物理的に有効であると認められた数を返します。
この関数は、BaseParts が物理的な力に影響されているか、または最近影響されているかを示します。
print(workspace:GetNumAwakeParts()) -- prints the number of 'awake' parts
眠っている部分と目覚めた部分
Roblox は、良履行なパフォーマンスを保証する
戻り値
目覚めたパーツの数。
GetPhysicsThrottling
0 から 100 の間の整数を返し、現在の物理シミュレーションがスロートされている時間の割合を表します。
この関数は、物理的なスロットが発生しているかどうか、およびどの程度、を判断するために使用できます。
物理学のスロットは何ですか?
物理エンジンは、ゲームがライブで実行できないことを検知すると、Physics throttling が発生します。物理エンジンが速度を落とすと、BaseParts が遅く表示されるようになります。
スロットルを無効にすると、物理シミュレーションはゲームとシンクロしなくなります。これにより、フレームレートが低下し、他の不欲しい動作が発生する可能性があります。
Class.Humanoid|Humanoids に関連するオブジェクトは、物理スロットルの制限から免れます。
また、Workspace:SetPhysicsThrottleEnabled() を参照してください。
物理的なスロットを押さえることを示す
開発者は常に物理エンジンをオーバーロードする場所を作成しないでください、 as it leads to sub-par experience for players. しかし、研究目的で物理をシミュレートする必要がある場合は、非常に速く Parts を多く作成する必要があります。
local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", workspace)end
戻り値
現在、物理シミュレーションの実行時間が減速している割合。
GetRealPhysicsFPS
現在、物理学がシミュレートされているフレーム数を毎秒返します。
GetRealPhysicsFPS を使用して、エクスプロイターに対抗する
この関数の一般的な使用は、エクスプロイターがローカルの物理フレームレートを上げているかどうかを確認することです。これは通常、クライアントの GetRealPhysicsFPS の結果を比�
戻り値
現在、物理学がシミュレートされているフレーム数を毎秒返します。
コードサンプル
local Players = game:GetService("Players")
local player = Players.LocalPlayer
while task.wait(1) do
if workspace:GetRealPhysicsFPS() > 65 then
player:Kick()
end
end
GetServerTimeNow
GetServerTimeNow は、マイクロ秒単位のサーバーのエポック時間を返します。時間はドリフトとスムーズに調整されます(0.006×速度と 0.994×速度の両方で保証されています)。サーバークロックは 1.006×速度より速く、また 0.994×速度より遅くありません。
Library.os|os.date() または DateTime.fromUnixTimestamp() と一緒に使用できる Unix タイムスタンプを返します。
この関数は、シンクロされたエクスペリエンスを作成するのに便利です。シンクロに必要な 3つのプロパティがあり、実世界の時計、モノトニック、そしてディザート精度があります。
この関数はサーバーに依存するため、接続されていないクライアントから呼び出すとエラーが発生します。
参照してください:
- DistributedGameTime、ゲーム時間クロック
戻り値
サーバーの推定エポックス時間。
JoinToOutsiders
この関数は、Parts と指定されたパーツの表面、および指定されたパーツの共同作成モードにより、パーツ間のジョイントを作成します。
この関数は、パーツの表面と指定されたプラナーリングの表面を含む、指定されたパーツと任意のプラナーリングの間のジョイントを作成します。
- 接着剤、スタッド、入れ歯、ユニバーサル、ワールド、およびスムーズな表面はすべてワールドインスタンスを作成します。
- 球は何も表面に焼かれません。円筒の周囲の側面は表面に焼かれませんが、平面の端面は表面に焼かれます。
最初のパラメーターは、BaseParts の配列です。 共同体は、配列内のパーツ間でのみ作成され、アレイ内のパーツ間では作成されません。 共同体は、配列内のパーツ間で作成されません。
第2パラメーターは、共同作業の作成方法を決定します。共同値を入力すると、 Enum.JointCreationMode または Enum.JointCreationMode.All を通過します。共同値を入力すると、 Enum.JointCreationMode.Surface と同じ動作が表示され
この関数は、Roblox Studio Move ツールがユーザーが選択を移動したときに使用するときに使用されます。Plugin:GetJoinMode() とWorkspace:UnjoinFromOutsiders() との併用により、カスタムスタジオビルドツールの開発中に参加機能を維持できます。下のスナップショットに示すように。
-- 選択を移動した後、ジョイントを作成する
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
workspace:JoinToOutsiders(parts, joinMode)
end
-- 選択を移動し始めました、ジョイントを破壊しました
local function startMovingParts(parts)
workspace:UnjoinFromOutsiders(parts)
end
パラメータ
共同者が参加する必要がある BaseParts のアレイ。
使用する Enum.JointCreationMode.All を使用する。パスを Enum.JointCreationMode.Surface または 1>枚数.共同作成モード|枚数.共同作成モード.Surface1> を通過すると、常に参加することになります。
戻り値
PGSIsEnabled
PGS 物理解析ソルバーが有効になっている場合、ゲームが真実であることを返します。
As Workspace.PGSPhysicsSolverEnabled はスクリプトによってアクセスできないので、PGSIsEnabled 機能は開発者がゲームが使用している物理ソリューターを指定できます。
print(workspace:PGSIsEnabled()) -- true = PGS solver enabledprint(workspace:PGSIsEnabled()) -- false = Legacy solver enabled
戻り値
PGS ソリューターが有効である場合は、True です。
UnjoinFromOutsiders
Class.BasePart|BaseParts と他の BaseParts の間のすべての関節を破壊します。
この関数には、BaseParts の配列が必要です。注意、ジョイントはこれらの BaseParts (互いに) の間では破壊されません。これらの BaseParts と他の 2>Class.BasePart|BaseParts2> の間のみです。
この関数は、Roblox Studio Move ツールがユーザーが選択を移動するときに使用するとき、Plugin:GetJoinMode() とWorkspace:JoinToOutsiders() と共に、参加機能を保持するために使用されます。以下のスナップショットに示すように、カスタムスタジオビルドツールを開発するときに参加機能を保持す
-- finished moving a selection, make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
workspace:JoinToOutsiders(parts, joinMode)
end
-- started moving a selection, break joints
local function startMovingParts(parts)
workspace:UnjoinFromOutsiders(parts)
end
パラメータ
共同所有者が破壊されるための BaseParts 配列。
戻り値
ZoomToExtents
ポジションとズーム Workspace.CurrentCamera を表示して、BaseParts が現在 Workspace にあることを示します。
この関数は、Roblox Studio の「Zoom to Extents」ボタンに使用されていました。「Zoom to」 (F ショートカット) 機能と同様の動作を示しますが、現在選択されているオブジェクトではなく、Workspace のエクセットを表示します。
この関数はスクリプトでは使用できませんが、コマンドバーまたはプラグインで機能します。
戻り値
イベント
PersistentLoaded
このイベントは、プレイヤーがすべての現在の持続モデルとパーツのないアトムモデルを送信するたびに発動します。player パラメータは、すべての適用可能なインスタンスを受信したプレイヤーを指し示します。
エクスペリエンスの読み込みは持続的な読み込みより先に発生し、DataModel.Loaded イベントの発射は、すべての持続的なモデルが存在することを示すわけではありません。