2D パス

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

Class.Path2D インスタンス、API メソッド、プロパティを含む、2D スプラインと 2D カーブドライブを実装することができます。これは、パスベースのアニメーションやグラフィックエディタなどの UI エフェクトに便利です。

2D パスを作成する

画面に追加する Path2D またはエクスペリエンスオブジェクトに追加する:

  1. In the エクスプローラー window, insert a Path2D instance under a visible ScreenGui or 1> Class.SurfaceGui1> (it does not need to be a direct child).

    Path2D instance parented to a ScreenGui in the Explorer hierarchy.
  2. 新しい Path2D を選択してビューポートツールウィジェットを表示します。デフォルトでは、 追加ポイント ツールが選択されます。

    Add Point tool indicated in the 2D path editor widget.
  3. 画面をクリックして [コントロールポイント] シリーズを追加して、パスを形成します。最初のパスは不正確ですが、後でコントロールポイントの位置を調整できます。

    Diagram illustrating an example path created using the Add Point tool to connect a series of points.
  4. 終了したら、ウィジェットの 完了 ボタンをクリックするか、Enter を押します。

コントロールポイントを変更する

Class.Path2D を選択した、Explorer 階層の下で、個々のコントロールポイントとその tangents を変更できます。

移動ポイント

パス上の個々のコントロールポイントを移動するには、 Select ツール (V) を有効にし、それからクリックして新しい位置にドラッグします。

Select tool indicated in the 2D path editor widget. Diagram illustrating how a path control point is moved to a new position by clicking and dragging with the Select tool enabled.

非常に特定の位置については、コントロールポイントを選択し、プロパティ ウィンドウで、ポイントの SelectedControlPointData プロパティの新しい位置を設定します (UDim2)。

SelectedControlPointData property of a Path2D instance indicated in the Properties window.

注:ポイントの位置は絶対ではなく、 rather 相対 をパスの親コンテナに置きます。たとえば、 ScreenGui 内のコントロールポイントを 20% から左に比較して、 Frame を上隅右隅に配置

Diagram illustrating how the positions of path control points are relative to their parent container.

ポイントを追加する

新しいコントロールポイントは、2つの既存のポイント間または Path2D ツールを使用して、P の端点から追加できます。

Add Point tool indicated in the 2D path editor widget.
Diagram illustrating how a control point is added between two existing points using the Add Point tool.
パスの上にマウスポインタを置き、クリックして 2つの既存のポイント間のコントロールポイントを追加します。
Diagram illustrating how a control point is added to the end of a path using the Add Point tool.
エンドポイントをクリックし、そのエンドからコントロールポイントを追加するには、もう一度クリックします

ポイントを削除する

コントロールポイントを削除するには、マウスオーバーして右クリックし、コンテキストポップアップメニューから ポイントを削除 を選択します。

Diagram illustrating how a path control point is deleted by right-clicking it and selecting Delete Point.

コントロールポイントのタンジェント

コントロールポイント タンジェント を使用すると、パス上の曲線を作成および調整できます。

Diagram illustrating a curved path with several tangent control points.

円錐を追加する

すでにタンジェントがありません:

  1. ツーリングウィジェットで タンジェントを追加 ツールを有効にします。

    Add Tangent tool indicated in the 2D path editor widget.
  2. 必要なコントロールポイントにカーソルを置き、クリックして 2つの ミラー のタンジェントを追加します (クリック後にドラッグして新しいタンジェントを調整)。

    Diagram illustrating how a path control point with tangents is created with the Add Tangent tool.

切角を調整中

個々のコントロールポイントの既存の接線を調整するには:

  1. Select ツール ( V ) を有効化します。

    Select tool indicated in the 2D path editor widget.
  2. コントロールポイントではなく、タンジェントマーカーにカーソルを置き、クリックして新しい位置にドラッグします。タンジェントがミラーされている場合は、ペアのタンジェントポイントが同じ位置に移動します。

    Diagram illustrating how the tangents of a control point are adjusted with the Select tool enabled.

タンジェントの特定の UDim2 位置を手動で設定するには:

  1. Select ツール ( V ) を有効にし、コントロールポイントを選択します。In the プロパティ window, expand the 1> Class.Path2D.SelectedControlPointData|SelectedControlPointData1> field to expose the 4> Datatype.Path2

    LeftTangent and RightTangent properties of a Path2D control point indicated in the Properties window.
  2. 位置を設定してください LeftTangent と/or RightTangent。これは、ミラードビーの動作を破壊する のタンジェントのミラービーの動作を破壊する。

タンジェントを削除する

コントロールポイントの両方のタンジェントを削除するには、そのポイントの上にマウスポイントを置き、コンテキストポップアップメニューから タンジェントのクリア を選択します。

Diagram illustrating how both tangents of a control point are cleared by right-clicking it and selecting Clear Tangents.

タンジェントの 1 つの削除には、左または右のタンジェントマーカーをホバーし、 タンジェントを削除 を選択します。

Diagram illustrating how one tangent of a control point is deleted by right-clicking it and selecting Delete Tangent.

破壊とミラーリング

デフォルトでは、タンジェントは互いにミラーです。ドラッグして調整 1つのタンジェントマーカーをドラッグすると、ペアのタンジェントポイントが互いに移動します。

Diagram illustrating how the tangents of a control point are adjusted with the Select tool enabled.

各人が他の人と独立して動くことができるように、ジャンジェントを「壊す」ために、関連するコントロールポイントをホバーして右クリックし、コンテキストメニューから ジャンジェントを壊す を選択します。壊れたジャンジェントマーカーは、他の人に影響を与えることなく、各人のマーカーを独立して動かすことができます。

Diagram illustrating how the tangents of a control point are broken by right-clicking it and selecting Break Tangents.

パスビジュアルプロパティ

次のプロパティで、Path2D のビジュアルアパートをカスタマイズできます:

プロパティ説明
Color3パスラインの色を設定します。
Thicknessパスラインのサイズをピクセル単位で設定します。
Visibleパスを編集およびランタイムの両方で表示または表示しないようにします。
ZIndex他の GUI に対してパスがレンダリングされる順序を指定します。
Diagram illustrating a path with Thickness of 2 and Color3 of (125, 125, 125).
厚さ = 2色3 = (125, 125, 125)
Diagram illustrating a path with Thickness of 10 and Color3 of (225, 0, 50).
厚さ = 10色3 = (225, 0, 50)
Diagram illustrating a path layered in front of another using the ZIndex property.
ZIndex レイヤー

パススクリプト

スクリプトは、複数のパス関連ワークフローに便利です。次の例では、GetControlPoints() などのメソッドを使用して、 Datatype.Path2

パス間で UI オブジェクトを整列

local parent = script.Parent
local path = parent:FindFirstChildWhichIsA("Path2D")
local function arrangeChildren()
local segmentCount = #path:GetControlPoints()
local objectsToArrange = {}
for _, child in parent:GetChildren() do
if child:IsA("GuiObject") then
table.insert(objectsToArrange, child)
end
end
for idx, child in objectsToArrange do
local t = idx / (#objectsToArrange + 1)
child.Position = path:GetPositionOnCurveArcLength(t)
end
end
-- 最初に子 UI オブジェクトをパスで整理
arrangeChildren()
-- 配列を調整するために子供を追加/削除します
parent.ChildAdded:Connect(arrangeChildren)
parent.ChildRemoved:Connect(arrangeChildren)
パス中の UI オブジェクトをアニメート

local Tweenservice = game:GetService("TweenService")
local parent = script.Parent
local path = parent:FindFirstChildWhichIsA("Path2D")
local objectToAnimate = parent:FindFirstChildWhichIsA("GuiObject")
local TWEEN_DURATION = 4
local TWEEN_EASING_STYLE = Enum.EasingStyle.Cubic
local TWEEN_EASING_DIRECTION = Enum.EasingDirection.InOut
local pathSampleValue = Instance.new("NumberValue")
local tweenInfo = TweenInfo.new(TWEEN_DURATION, TWEEN_EASING_STYLE, TWEEN_EASING_DIRECTION, 0, true, 2)
local tween = Tweenservice:Create(pathSampleValue, tweenInfo, {Value = 1})
local function onSampleValueChanged()
objectToAnimate.Position = path:GetPositionOnCurveArcLength(pathSampleValue.Value)
end
pathSampleValue.Changed:Connect(onSampleValueChanged)
tween:Play()