Workspace
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
Workspace のコアジョブは、3D ワールドに存在するオブジェクトを効果的に BaseParts および Attachments 持つことです。このようなオブジェクトは、Workspace の子孫であるが、アクティブになる。For BaseParts 、これは彼らがレンダリングされ、他のパーツや世界と物理的に相互作用することを意味します。For Attachments 、これは、ParticleEmitters、Beams、およびBillboardGuisなど、オブジェクトに装飾されたものがレンダリングされることを意味します。
この動作を理解することは重要であり、オブジェクトが必要ないときに Workspace から削除できることを意味するためです。たとえば、マップ Models は、別のマップが再生されているときに削除できます。3D 世界ですぐに必要ではないオブジェクトは、一般的に ReplicatedStorage または ServerStorage に保存されます。
アクティブな 3D オブジェクトの保持者としての役割で、Workspace には、部品、位置、およびそれらの間のジョイントに関連する便利な機能の数が含まれています。
ワークスペースへのアクセス
Workspace はいくつかの方法でアクセスでき、どれも有効です。
- workspace
- game:GetService("Workspace")
- game.Workspace
ノート
- 装飾が必要なオブジェクト、例えば や は、装飾が設定する定されていない状態で親になったときの 位置にあります。
- クラス Model:MakeJoints() と Model:BreakJoints() から継承されたメソッドは、Model クラスでのみ使用できる Workspace:MakeJoints() と Workspace:BreakJoints() によってオーバーライドされます。
- 削除することは不可能です Workspace .
- クライアントの現在の Camera オブジェクトは、Workspace.CurrentCamera プロパティを使用してアクセスできます。
- Terrain は、Workspace.Terrain を使用してアクセスできます。
概要
プロパティ
空力フォースモデルで使用される地上レベルの空気密度。
他のユーザーによって作成されたアセットがゲームで販売できるかどうかを決定します。
ローカルクライアントのアニメーション制限モードを指定します。
ローカルプレイヤーが使用している Camera オブジェクト。
ゲームが実行されている時間、秒単位の量。
物理エンジンが のプロパティが真実であるかどうかによって、空気力学的な力を計算するかどうかを決定します。
アニメーションされた地形草、動的雲、および粒子のためのグローバルな風ベクトルを指定します。
落下中の BaseParts に適用された重力による加速を決定します。
IKControls の制約のサポートを有効にします。無効にすると、IKControls は物理制約を無視します。
キャラクターの頭とアクセサリーをメッシュパーツとしてダウンロードするかどうかを設定します。
移動制約のいずれかを使用すると、アセンブリのルートパーツを選択するロジックを制御します。
ソルバーが物理シミュレーションを時間的に前進させる方法を設定します。
エンジンがイベントハンドラーを再開するときを構成します。
エンジンがプレイヤーからコンテンツをストリームするタイミングを決定する方法を設定します。
場プレースにコンテンツストリーミングが有効かどうか。
ストリーミングインテグリティモードが有効かどうかを決定します。
コンテンツが優先順位の高いプレイヤーにストリームされる最小距離。
コンテンツがプレイヤーにストリームされる最大距離。
オブジェクトを親に持つ オブジェクトへの参照。
異なるグループに設定された parts が衝突を無視し、タッチイベントに触れるかどうかを決定します。
インスタンスストリーミングを有効にしたエクスペリエンスのモデルの詳細レベルを設定します。
インスタンスストリーミングが有効になっているときに、モデルストリーミングの動作を制御します Models 。
The primary part of the Model 、または nil が明示的に設定する定されていない場合
モデルの周りにスケールを拡大するために使用される編集者専用のプロパティ。このプロパティを設定すると、スケールが Model/ScaleTo を呼び出したように移動します。
どこに Model が しない を持つピボットが位置するかを決定します。Determines where the pivot of a > which does not have a set Model.PrimaryPart is located.
方法
物理的に活発であると考えられる BaseParts の数を返し、最近物理の影響を受けているためです。
実時間に物理シミュレーションが現在スロットされている割合を表す、0から 100の整数を返します。
物理が現在シミュレートされているフレーム数 per秒を返します。
秒でサーバーのユニックス時間を返します。
指定された Parts と任意の接触部品の間のジョイントを作成し、部品の表面と指定されたジョイント作成モードによって決定します。
ゲームにPGS物理ソリューションが有効になっている場合、true を返します。
位置とズームを Workspace.CurrentCamera して、現在 BaseParts に表示されている Workspace の範囲を示します。
指定された BasePart のいずれかが他の部分に触れている場合、真を返します。
指定された方向にブロック形状をキャストし、形状が または または セルにヒットする場合、 を返します。
返すパーツのアレイの バインディングボックス が指定のボックスに重複するパーツ。
返すパーツのアレイの バインディングボックス が指定された球に重複するもの。
占有スペースが指定されたパーツと共有されるパーツのアレイを返します。
- IKMoveTo(part : BasePart,target : CFrame,translateStiffness : number,rotateStiffness : number,collisionsMode : Enum.IKCollisionsMode):()
部品を直接そこに移動せず、逆のキネマティクスを介して指定された場所に移動して、その部品が参加しているジョイント、制限、または衝突が物理的に満足していることを確認するために、指定された部分を移動します。
起源、方向、およびオプションの RaycastParams を使用してレイを投射し、有効なオブジェクトまたは地形がレイと交差する場合は、RaycastResult を返します。
- Spherecast(position : Vector3,radius : number,direction : Vector3,params : RaycastParams):RaycastResult?
指定された方向に球形の形状を投げ、形状が または または セルにヒットする場合は、 を返します。
指定された時間増加とオプションの BaseParts セットに基づいて、世界のパーツのシミュレーションを前進させます。
指定されたプレイヤーのために、このモデルを永続するように設定します。Model.ModelStreamingMode は、追加により変更されるため、 PersistentPerPlayer に設定する必要があります。
モデルのすべての部分を含むボリュームの説明を返します。
返すのは、BaseParts すべてを含む最小のバインディングボックスのサイズ、そして Model に沿って設定されている場合、Model.PrimaryPart と一致します。
このモデルオブジェクトが持続するすべての Player オブジェクトを返します。動作は、このメソッドが Script または LocalScript から呼ばれるかどうかによって異なります。
モデルの正規スケールを返し、新しく作成されたモデルにはデフォルトで 1 が割り当てられ、Model/ScaleTo を介してスケールすると変更されます。
PrimaryPart を指定された位置に移動します。プライマリパーツが指定されていない場合、モデルのルートパーツが使用されます。
指定されたプレイヤーに対して、このモデルを永続しなくする。Model.ModelStreamingMode は、削除により変更されるため、 PersistentPerPlayer に設定する必要があります。
モデルのスケール因子を設定し、すべての子インスタンスのサイズと場所を調整して、スケール因子が 1 のときと比較して、そのスケール因子が初期のサイズと場所に関連しているようにします。
指定された オフセットによってシフトし、モデルの向きを保持します。新しい位置に別の BasePart または Terrain がすでに存在する場合、Model はそのオブジェクトをオーバーライドします。
PVInstance のピボットを取得します。
変換する PVInstance とすべての子孫 PVInstances を通じて、ピボットが現在指定された CFrame に位置します。
イベント
永続モデルが指定されたプレイヤーに送信されたときに発火します。
プロパティ
AirDensity
RMU/stud³ ユニット ( Roblox ユニット ) で使用される地上レベル ( Y の 0) 空気密度 ( が である場合) は、 が である場合に空気力を計算するために使用されます。デフォルトは、標準温度と圧力の実際の海面水位の空気密度に対応します。空の密度は、 Y の高度が上昇するにつれて低下し、10万スタッドでその地上レベルの値の 5%に達します。以下 Y の 0、空気密度は入力値に固定されます。
AllowThirdPartySales
この Workspace プロパティは、他の使用によって作成されたアセットがゲームで販売できるかどうかを決定します。
第三者販売とは何ですか?
この値が false であると、デフォルトであるため、プレースクリエーター (プレイヤーまたはグループ) と Roblox によって作成されたアセットのみが MarketplaceService を使用して販売できます。
ほとんどの場合、ゲームは第三者のアセットを販売する必要はありません。しかし、取引ハングアウトなどの一部のゲームはこの機能を必要とし、それゆえオプトインオプションとして存在します。
どの第三者製品を販売できますか?
注意、開発者製品 は、AllowThirdPartySales に設定されたものに関係なく、関連するゲームでのみ販売できます。このプロパティは ゲームパス と 服装 に影響します。
AvatarUnificationMode
ClientAnimatorThrottling
ローカルクライアントに使用する Enum.ClientAnimatorThrottlingMode を指定します。
有効にすると、リモートシミュレーションされた Model インスタンスのアニメーションがスロットル開始します。スロットラーは、スロットル強度を計算する:
- ゲーム内FPS
- 有効なアニメーションの数
CurrentCamera
ローカルプレイヤーが使用している Camera オブジェクト。
現在のカメラを使う方法
クライアントの Camera オブジェクトを検索するときは、Workspace 名前付きの子供ではなく、このプロパティを使用してください。
このプロパティを設定すると、Camera 以前の Workspace を含む、すべての他のオブジェクトが破壊されますCurrentCamera。このプロパティを nil またはワークスペースの子孫でないカメラに設定した場合 (または CurrentCamera はそうでない場合)、新しい Camera が作成され、割り当てられます。カメラを破壊すると、予期せぬ結果が生じる可能性があるため、これらのシナリオを避けてください。
詳しくは、カメラをスクリプトする を参照してください。
DistributedGameTime
ゲームが実行されている時間、秒単位の量。
タイトルにもかかわらず、この値は現在、クライアントとサーバーの間で「分散」されていません。代わりに、サーバーはサーバーがどれくらい稼動しているかを表示します。クライアントでは、クライアントがサーバーに接続されている時間を表します。
開発者は上記の動作に頼るべきではなく、このプロパティは将来クライアントとサーバーの間で同期される可能性があります。
プログラムが実行開始されてからの時間を検索する人は、代わりに「time」関数を使用する必要があります。分散ゲーム時間とその代替の比較は、以下を参照してください。
local Workspace = game:GetService("Workspace")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
FallHeightEnabled
FallenPartsDestroyHeight
このプロパティは、Roblox エンジンが自動的に落下する BaseParts とその祖先 Models を Workspace から削除する高さを決定します。それらを親にして nil に移動することで。これは、マップから落ちたパーツが永遠に落ち続けないようにするためです。
この動作により削除されたパーツが Model の最後のパーツである場合、そのモデルも削除されます。これは、パーツのすべてのモデル祖先に適用されます。
このプロパティは、浮動小数点の不精確さにより、起源から大きく離れてシミュレートまたは正しくレンダリングできないため、-50,000から50,000の間に押さえられています。
このプロパティはスクリプトで読み込むことができますが、Studio のプラグイン、コマンドバー、またはプロパティウィンドウでのみ設定できます。
FluidForces
このプロパティが有効になっていると、物理エンジンは BaseParts のプロパティが true の EnableFluidForces に空気力学的な力を計算します。デフォルトの、 Default 、は空気力学的な力を無効にします。このプロパティはスクリプトで設定できないため、代わりに Studio で切り替える必要があります。
Gravity
落下中の BaseParts に適用された重力による加速を決定します。この値は、秒ごとにスタッドで計算され、デフォルトでは 196.2 スタッド/秒 2 に設定されます。この値を変更することで、開発者はゲームで低重力または高重力の効果をシミュレートできます。
コードサンプル
This script creates a touch pad in the workspace that, when touched, will reduce the game's gravity. Activating the pad again will switch back to normal gravity.
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と同じです。無効にすると、IKControls は物理制約を無視します。追加の詳細については、IKControl を参照してください。
InsertPoint
MeshPartHeadsAndAccessories
キャラクターの頭とアクセサリーを MeshParts としてダウンロードするかどうかを設定します。DefaultはEnabledと同じです。この機能が有効になっている場合、内蔵のアバターはキャラクターの頭とアクセサリーのために MeshParts を使用します。
ModelStreamingBehavior
MoverConstraintRootBehavior
次の制限のいずれかを使用するメカニズムのアセンブリルートパーツを選択するロジックを制御します:
このプロパティが に設定されると、これらの制限は、制限が 2 つのパーツ間で力を伝達しない場合、または 3 つのパーツ間で力を伝達する場合 (いくつかの例は に設定され、 に設定され、または に設定されるなど)、アセンブリルートパーツを選択するときに無視されます。
このプロパティが Enum.MoverConstraintRootBehaviorMode.Disabled に設定されると、これらの制約がアセンブリルートパーツを選択するときに間違って考慮され、これらの制約をメカニズムに追加すると、ネットワーク所有権が不一致になり、ネットワーク遅延が発生する可能性があります。
PathfindingUseImprovedSearch
PhysicsImprovedSleep
PhysicsSteppingMethod
ソルバーが物理シミュレーションを時間的に前進させる方法を設定します。このオプションはスクリプト化できず、Studio 内の 物理ステッピングメソッド プロパティの ワークスペース 内で設定する必要があります。詳細は、適応タイムステップ を参照してください。
<th>説明</th></tr></thead><tbody><tr><td><b>適応</b></td><td>エンジンは、240 Hz、120 Hz、または 60 Hz の個々のアセンブリに最適なシミュレーションレートを割り当てようとします。この設定はパフォーマンスの最適化のために最適化されています。</td></tr><tr><td><b>修正済み</b></td><td>ワークスペース内のすべてのシミュレートアセンブリは、240Hzで前進します。このオプションは、最適な安定性とシミュレーション精度を保証するのに最適です。</td></tr><tr><td><b>デフォルト</b></td><td>現在のデフォルトは <b>固定</b> です。</td></tr></tbody>
オプション |
---|
注: 異なるシミュレーションレートのアセンブリが Constraints または衝突で接続されると、結合メカニズムは安定性のために最高のシミュレーションレートにデフォルトします。
PlayerCharacterDestroyBehavior
PrimalPhysicsSolver
RejectCharacterDeletions
RenderingCacheOptimizations
ReplicateInstanceDestroySetting
Retargeting
SandboxedInstanceMode
SignalBehavior
このプロパティは、イベントハンドラーがイベントが発生したときにすぐに再開されるか、または遅延して後で再開されるかを決定します。再開ポイントは現在、以下を含みます:
- 入力処理 (処理する入力を一度再開、詳細は UserInputService )
- レガシー待機スクリプトの再開のように、wait()、spawn()、およびdelay()
詳しくは、遅延イベント を参照してください。
StreamOutBehavior
ストリームアウトビーコン コントロールは、デバイスのメモリ条件またはストリーミング範囲に基づいて、コンテンツをアンロードする場所を制御します。
参照してください:
- Workspace.StreamingEnabled コンテンツストリーミングが有効になっているかどうかを制御する
StreamingEnabled
StreamingEnabled プロパティは、ゲームコンテンツストリーミングが場プレースに有効になっているかどうかを決定します。このプロパティはスクリプト化できないため、Studio の ワークスペース オブジェクトに設定する必要があります。
参照してください:
StreamingIntegrityMode
インスタンス ストリーミング が有効になっている場合、プレイヤーのキャラクターがクライアントにストリーミングされていない世界の領域に移動すると、エクスペリエンスが予期せぬ方法で動作する可能性があります。ストリーミングインテグリティ機能は、問題の可能性のある状況を回避する方法を提供します。
StreamingMinRadius
StreamingMinRadius プロパティは、プレイヤーのキャラクターまたは現在の ReplicationFocus でコンテンツが最優先でストリーミングされる範囲を示します。デフォルトは 64 スタッドです。
デフォルトの最小半径を増加するときは、他のコンポーネントの負担になるため、より多くのメモリとサーバーバンド幅が必要になるため注意が必要です。
参照してください:
- Workspace.StreamingEnabled コンテンツストリーミングが有効になっているかどうかを制御する
StreamingTargetRadius
ストリーミングターゲット半径 プロパティは、プレイヤーのキャラクターまたは現在ストリームされるコンテンツが配信される予定の ReplicationFocus 最大距離を制御します。デフォルトで 1024 スタッドになります。
エンジンは、ターゲット範囲を超えて先にロードされたコンテンツを保持することを許可されていますが、メモリが許可する限りです。
参照してください:
- Workspace.StreamingEnabled コンテンツストリーミングが有効になっているかどうかを制御する
TouchEventsUseCollisionGroups
TouchesUseCollisionGroups
このプロパティは、異なるグループに設定された parts が衝突を無視し、タッチイベントに触れるかどうかを決定します。デフォルトでは、このプロパティの値は false に設定されます。
このプロパティが有効になっていると、異なるグループに設定された衝突しないパーツも、CanTouch プロパティを無視し、BasePart.CanCollide が無視されるようになります。CanTouch の動作に関する詳細情報は、プロパティページを参照してください。
方法
GetNumAwakeParts
物理的に活発であると考えられる BaseParts の数を返し、最近物理の影響を受けているためです。
この機能は、物理的な力によって影響を受けている、または最近影響を受けている BaseParts の数のメジャーを提供します。
local Workspace = game:GetService("Workspace")print(Workspace:GetNumAwakeParts())
睡眠と目覚めのパーツ
良履行なパフォーマンスを保証するために、Roblox は物理が '睡眠' 状態に適用されていない状態で BaseParts を設定します。 を trueに設定し、例えば、物理が適用されないため、常に眠っていることになります。非固定の BasePart に力が適用されると、「目覚めた」状態が適用されます。BasePart が起きている間、Roblox の物理エンジンは、物理フォースがパーツと正しく相互作用するように連続計算を実行します。BasePart が物理的な力に再びさらされなくなったら、「睡眠」状態に戻ります。
戻り値
目覚めたパーツの数。
GetPhysicsThrottling
実時間に物理シミュレーションが現在スロットされている割合を表す、0から 100の整数を返します。
この機能は、物理スロットリングが発生しているかどうか、およびどの程度発生しているかを判断するのに使用できます。
物理制限とは何ですか?
物理スロットリングは、物理エンジンがリアルタイムでゲームに追いつけないと判断したときに発生します。物理がスロットルされているとき、レスポンスが少なくなり、BaseParts が遅く移動するようになります。
スロットリングなしでは、物理シミュレーションはゲームとのズレがさらに大きくなります。これは、フレームレートの低下や他の望ましくない動作につながる可能性があります。
Humanoids に関連するオブジェクトは、物理制限から除外されます。
参照してください Workspace:SetPhysicsThrottleEnabled() 。
物理スロットリングのデモ
開発者は、物理エンジンをオーバーロードする場所を作成するのを常に避けるべきであり、それはプレイヤーに低品質のエクスペリエンスをもたらすためです。しかし、研究目的で物理スロットリングをシミュレートしたい人は、Parts たくさん作成するだけで十分です。
local Workspace = game:GetService("Workspace")local i = 0while true doi += 1if i % 5 == 0 thentask.wait()endlocal part = Instance.new("Part", Workspace)end
戻り値
物理シミュレーションが現在スロットされている実時間の割合。
GetRealPhysicsFPS
物理が現在シミュレートされているフレーム数 per秒を返します。
GetRealPhysicsFPS を使用して悪用者と戦う
この機能の一般的な使用法は、悪用者がローカルの物理フレームレートを増加させているかどうかを検出し、より速く移動するかどうかを判断することです。これは一般に、クライアントの GetRealPhysicsFPS によって返された結果を、通常では侵害されない最大値 (通常は 65 または 70) と比較して行われます。この制限が違反された場合、開発者は Player:Kick() 機能を使用して、ゲームからその Player を削除できます。この実践が時々有効であっても、クライアント側の反悪用メジャーは決して 100% 信頼できるものではありません。
戻り値
物理が現在シミュレートされているフレーム数 per秒を返します。
コードサンプル
Speed exploiters commonly increase their local physics FPS in order to increase their character speed. This can be detected from a LocalScript by checking if the player's physics FPS is over the maximum:
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() は、クライアントのサーバー上の現在の時間の最も良い推定値を返します。同期したエクスペリエンスを作成するのに便利です。すべてのクライアントが時間帯またはローカル時間に関係なく、同じ結果を得るためです。
これは、os.time() と同様の Unix のタイムスタンプを返し、os.date() または DateTime.fromUnixTimestamp() で使用できます。
この関数によって返されたタイムスタンプはスムーズになり、以下が実現します:
- 単調であり、その値は決して減少しません。
- ローカル時間と同じ速度で 0.6% 以内に移動します。
GetServerTimeNow() は、DateTime.now() よりも呼び出しが高価で、os.clock() よりも精度が低いため、イベントが正しい現実世界時間に開始するか、連続しているイベントを調整するために使用する必要があります。
この機能はサーバーに依存しているので、接続されていないクライアントから呼び出すとエラーが発生します。この機能は、サーバー上でこのタイマーを追跡すると比べて安全ではないため、定期報酬のようなものには適していません。
参照してください:
- DistributedGameTime , ゲーム時クロック
戻り値
サーバー上の推定 Unix タイムスタンプ。
JoinToOutsiders
この機能は、指定された Parts と任意の接触部品の間の接合を作成し、部品の表面と指定された接合作成モードによって決定します。
この機能は、パーツと指定された平面接触面の間にジョイントを作成し、パーツの表面と指定されたジョイント作成モードによって異なります。
- 接着剤、スタッド、インレット、ユニバーサル、接着、および滑らかな表面はすべて、接着インスタンスを作成します。
- 球は何にも表面接着しません。円筒の丸い側面は表面接着しませんが、平らな端面はします。
最初のパラメータは BaseParts の配列です。ジョイントは、配列内のパーツのみに作成され、配列内ではありません。アレイのパーツ間でジョイントは作成されません。
2番目のパラメータは、接続がどのように作成されるかを決定する Enum.JointCreationMode です。枚数値をパスするか、 Enum.JointCreationMode.All または Enum.JointCreationMode.Surface 、Join Always と同じ動作を持つ
この機能は、ユーザーが選択を移動終えたときに Roblox Studio の移動ツールが使用されます。In conjunction with Plugin:GetJoinMode() および Workspace:UnjoinFromOutsiders() 、カスタムスタジオビルドツールを開発する際に、ジョイン機能を維持することができます。下のスニペットを見て、例を参照してください。
local Workspace = game:GetService("Workspace")
-- 選択を移動完了; 接続を作成
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- 選択を移動開始;接合を破壊
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
パラメータ
ジョインが行われるべき対象の BaseParts の配列。
使用するのは Enum.JointCreationMode 。Enum.JointCreationMode.All または Enum.JointCreationMode.Surface をパスすると、「いつも参加」と同じ動作が行われます。
戻り値
PGSIsEnabled
ゲームにPGS物理ソリューションが有効になっている場合、true を返します。
スクリプトでアクセスできないため、PGSIsEnabled 機能で開発者は、ゲームが使用している物理ソリューションを告知できます。
戻り値
PGS ソルバーが有効になっている場合は true です。
UnjoinFromOutsiders
指定された BaseParts と他の BaseParts の間のすべてのジョイントを破ります。
この機能には BaseParts の配列が必要です。注: ジョイントは、これらの BaseParts (お互い) の間では壊れませんが、これらの BaseParts と他の BaseParts はアレイに含まれていません。
この機能は、ユーザーが選択を移動開始すると、Roblox Studio の移動ツールが使用されます。In conjunction with Plugin:GetJoinMode() および Workspace:JoinToOutsiders() 、カスタム Studio ビルドツールを開発する際に、ジョイン機能を維持するために使用できます。下のスニペットを見て、例を参照してください。
local Workspace = game:GetService("Workspace")
-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
local joinMode = Plugin:GetJoinMode()
Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")
-- Started moving a selection; break joints
local function startMovingParts(parts)
Workspace:UnjoinFromOutsiders(parts)
end
パラメータ
ジョインを壊すための BaseParts の配列。
戻り値
ZoomToExtents
位置とズームを Workspace.CurrentCamera して、現在 BaseParts に表示されている Workspace の範囲を示します。
この機能は、Roblox Studio の [ズームしてエクステントに] ボタン (今は削除されている) で使用されました。「Zoom To」(F ショートカット) 機能と同様の動作を示しますが、現在選択されているオブジェクトではなく Workspace の拡張を表示します。
この機能はスクリプトでは使用できませんが、コマンドバーまたはプラグインで機能します。
戻り値
イベント
PersistentLoaded
このイベントは、プレイヤーに現在の永続モデルとパーツなしのアトミックモデルが全て送信されたときに発動します。player パラメータは、どのプレイヤーがすべての適用可能なインスタンスを受け取ったかを示します。
エクスペリエンスのロードは、持続的なロードの前に発生し、DataModel.Loaded イベントの発射は、すべての持続モデルが存在することを示唆しません。