移動オブジェクトを作成する

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

移動オブジェクト は、3D 空間内の 1つまたは複数の軸で移動するオブジェクトです。Roblox のシミュレーションエンジンの内蔵パワーを使用して、オブジェクトが物理的な行動をエミュレートし、熟慣的で直感的なプレイヤーの物理的な行動を再現する方法を、 移動オブ

参照ファイルの Moving Objects.rbxl を使用して、このチュートリアルでは、物理的な力が Studio で直線運動に影響する方法を説明し、オブジェクトをポイント A からポイント B に移動する方法に関するさまざまなテクニックを示しています。これには、次のメッセージのガイドラインが含まれます:

  • Class.LinearVelocity モーバーの制限を使用して、アセンダントな速度でアセンダントな速度でアセンダントを移動する。
  • Class.PrismaticConstraint を使用して、アセンブリを単一の軸に制限し、3D 空間のポイントに対する偶数の直線速度で移動します。
  • Class.BasePart.ApplyImpulse|ApplyImpulse メソッドを使用して、初期の力の影響を受けるアセンブルを移動することで、アセンブルが時間をかけて遅く速度を落とします。

直線運動と物理的な力

Roblox Studio は、物体が直線的に動く物理的な振る舞いを実時間で再現するシミュレーションエンジンで、オブジェクトがエクスペリエンスでどのように動くかを予測するために、オブジェクトが線形で動く方法の高度な理解が重要です。 直線運動 は、アクスイスの沿いに移動します。たとえば、ブロックが直線運動を持つと、それは沿いのあるセットの軸に移動します。

A gray block in front of a dark background. The movement axis is highlighted, and it faces toward the left of the screen to signify that the block is going to move along the world's Y axis.

直線運動には、外部の物理的な力があるオブジェクトを押したり引っ張ったりして移動することがありません。According to Newton's 最初の運動の法則 によると、静的オブジェクトは静的オブジェクトとして残り、移動オブジェクトは移動オブジェクトとして速度を一致させることなく常に動き続けます。たとえば、風

力力学的な推力 は、オブジェクトが軸に沿って直線速度を変更する物理的な押しやすりまたは引っ張りを測定するための測定です。速度の変更は 加速 として知られています。このコンセプトは、Studio でオブジェクトを移動するために適用する力の強度によります。オブジェクトが移動

これは、力が物理的な力であるため、オブジェクトに押し戻す力が重力や摩擦といった物理的な力より大きな必要があるためです。たとえば、ブロックを金属プレートに置くと、風の物理的な力は、金属プレートからの摩擦量を克服する必要があります。風の力が金属プレート

A gray block in front of a dark grey metal plate with a diagram that signifies the block will have a plate friction to slow the block's movement from the wind.

直線速度 は、オブジェクトの移動量、またはオブジェクトが時間の経過とともにどれくらい速く位置を変更するかを表します。Studio は、オブジェクトが秒あたりどれくらいの速度で移動するかに基づいて直線速度を測ります。スタッドは Roblox の主要な物理ユニットで、長さを測定するための 1

A gray block in front of the default baseplate's 4x4 grid texture. A single stud cube rectangle is highlighted.

正倉速度を理解することは、エクスペリエンスのゲームプレイを設計するのに重要な側面です、正倉速度は、移動オブジェクトの特定の速度に到達するために必要な力を決定するのに役立ちます。たとえば、オブジェクトを上に押すときは、オブジェクトが正確に移動するように、力を調整する必要があります。

次のセクションでは、オブジェクトをコンセントまたは最大速度で移動する方法を学び、必要な力でオブジェクトを移動する方法を説明します。これらの物理的なオブジェクトの移動方法を理解すると、スタジオでの任意の相対的な物理的な力を克服するために必要な力を調整できます。これらの物理コンセプトをレビューすると、Studio の任意のオープ

一定の直線速度を保つ

オブジェクトが直線速度を一定に保つためには、力が必要です。これは、オブジェクトの直線速度を減速させるか、オブジェクトを停止させる任意の反重力の力を克服するためです。たとえば、[0, 12, 0] の Studio のリ環境ア速度を [0, 1

必要な力の量は、環境自体の物理的な力だけでなく、重力や摩擦などの環境内の他の物理的な力にも依拠します。たとえば、同じ形状の 2つのオブジェクトが同じ軸で移動する場合、大きな質量を持つオブジェクトは、同じ直線加速を達成するためにより多くの力が必要になります。

小さな三角形の部品は、同じ加速度を達成するために少ない量の力が必要です。
大きな三角形の部分には、大量の質量があるため、同じ加速を達成するにはより多くの力が必要です。

次のサブセクションでは、さまざまな形とサイズのアセンブルを使用して、オブジェクト全体を移動する方法を教えてください。オブジェクトのプロパティ値を変更すると、アセンブルの中の最大力を推定する方法を学びます。自分のエクスペリエンスでオブジェクトのプロパティ値を変更すると、アセンブルに必要な最大力を学びます。

従量速度制限を使用する

LinearVelocity オブジェクトは、moverconstraint タイプのオブジェクトで、アセンション全体に力を適用してコンスタントな直線速度を維持します。アセンションの位置をアクスに固定せずに、アセンションは 3D 空間の他のオブジェクトと衝突する

ユリのパッドが互いに衝突すると、向きを変えますが、コンスタントな直線速度で川を下ります。

アセンブリの移動を開始するには、LinearVelocity 制限が知る必要があります:

  • 力を適用するポイントと正方向または負方向。
  • アセンブリの移動するためのスタッドの量。
  • エンジンがアセンブリの設計図に基づいて設計できる最大力の値。

このプロセスを示すには、<a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common- Interesting">マイクロソフトエクスチェンジサーバー</a>で、<a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common- Interesting">Class.LinearVelocity</a> 制限を参照して、<a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common- Interesting">リリーパッドを</a

A close up view of a lily pad. The lily pad's constraint visual aid is visible, and it points to the right, which is the world's negative X axis.

アタッチメントを追加

Class.Attachment オブジェクトをアセンブリに追加し、3D 空間でアタッチメントの位置を構成して、フォースを適用するポイントを指定できます。サンプル 移動オブジェクト エクスペリエンスは、 オブジェクトの中心にアタッチメントを配置して、1> メッシュから

アタッチメントには、視覚的な助けにより、あなたがその動きの柱を視覚化することを助けるビジュアルな助けを含まれます。黄色い矢印は、アタッチメントの主軸を表し、オレンジ色の矢印は、アタッチメントのセカンダリ軸を

A attachment's visual aid arrows. The yellow arrow that signfies the attachment's primary axis points up, and the orange arrow that signfies the attachment's secondary axis points to the right.

アタッチメントを追加するには:

  1. In the Explorer ウィンドウで、 LinearVelocityExample フォルダを拡張し、その子 LilyPad_DIY モデルを拡張します。

  2. パッド メッシュにアタッチメントを挿入します。

    1. メッシュの上にマウスポインタを置き、⊕ ボタンをクリックします。コンテキストメニューが表示されます。
    2. メニューから、 アタッチメント を挿入します。アタッチメントは、パーツの中心に表示されます。
    3. アタッチメントを 移動アタッチメント に名前変更します。
    A close up view of a lily pad and its attachment visual aid. The primary axis points away from the camera, and the secondary axis points upward.

制限を構成する

メッシュに固定ポイントがあるため、LinearVelocity 制限のプロパティを構成して、リリーパッドの方向と量を指定できます。Engine.Movespeed メッシュの移動速度、メッシュのサイズ、メッシュの移動方向、メッシュの最大積載量を指定するための Class.LinearVelocity 制限、およびエンジンが

サンプル 移動オブジェクト エクスペリエンスは、世界のネガティブ X 軸に沿って、15スタッドのリリーパッドを毎秒 5000行動力で移動するための 5000行動力 を超えるコンセントフォースを測定するために使用されます。行動力は Roblox

Class.LinearVelocity 制限を構成するには:

  1. (オプション) 3D 空間に制限を表示して、直線方向を参照できるようにします。

    1. メニューバーで モデル タブ、そして 制限 セクションに移動します。
    2. 現在有効でない場合は、 制限詳細 をクリックして、制限ビジュアルヘルプを表示します。
    A close up view of the Studio's Constraints section UI.
  2. Class.LinearVelocity 制限をパッドメッシュに挿入します。

    1. In the エクスプローラー ウィンドウ, メッシュの上にマウスポインタを置き, ⊕ アイコンをクリックします。コンテキストメニューが表示されます。
    2. コンテキストメニューから 直線速度 を挿入します。
  3. メッシュのアタッチメントを新しい制限に割り当てます。

    1. In the エクスプローラー ウィンドウ, select the constraint.
    2. In the プロパティ ウィンドウ,
      1. Attachment0 を MoveAsset に設定します。
      2. MaxForce を 5000 に設定して、ターゲットの直線速度を最大 5000 行動力に達するためにアップします。
      3. Keep 相対To世界 に保持して、リリーパッドを世界の位置と方向に移動させます。
      4. VelocityConstraint を ライン に設定して、付属物のラインからフォースを制限します。
      5. -1, 0, 0 を -1, 0, 0 に設定して、世界のネガティブ X 軸に沿ってリリーパッドを移動します。注意、1, 0, 0 を 1>2, 0, 01> に設定すると、リリーパッドが世界のポジティブ X 軸に移動します。
      6. LineVelocity を 15 に設定して、リリーパッドを 15 スタッド/秒で移動させます。
    A close up view of a lily pad and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. 世界のネガティブ X 軸に沿って、設定した移動量がメッシュを 15 スタッド毎秒移動させることを確認してください。

    1. In the menu bar, メニューバーで テスト タブに移動します。

    2. シミュレーションセクションで、モードピッカーをクリックします。ドロップダウンメニューが表示されます。

      Rapid playtest options in Test tab of Studio
    3. Select 実行 . Studio は、3D 空間にあなたのアバターなしで現在のカメラポジションでエクスペリエンスをシミュレートします。

プリズマチックな制限を使用する

PrismaticConstraint オブジェクトは、2つのアタッチメント間の剛性なジョイントを作成するタイプの 機械式制限 です。親アセンブリを 1つの軸 相対して に移動させることで、2つのアセンブリの位置を 1つの軸0>にロック

このタイプの移動は、プレイヤーが予測しやすい安定したゲームプレイシナリオにリードします。たとえば、サンプル 移動オブジェクト エクスペリエンスは、 PrismaticConstraint オブジェクトを使用して、巨大な川を安全に渡れるプレイヤーのためのログプラットフォームを移動します。

Class.PrismaticConstraint.ActuatorType を モーター に設定すると、この制限はモーターの 2つのアタッチメントに力を適用します。この制限は、モーターが接続されたアタッチメントの親アセンブリの 1つをアンカーして、接続されたアタッチメントの親アセンブリの動きを

アセンブリの移動を開始するには、PrismaticConstraint 制限が知る必要があります:

  • 力を適用するポイントと正方向または負方向。
  • アタッチメントが移動するたびに必要なスタッド数。
  • エンジンがアタッチメントとその親組みに適用できる最大力の値。

このプロセスを示すために、子供の付き物を持つ 2つのオブジェクトでログアセンブルを構成し、世界のネガティブ X軸に沿って、ログを 40 スタッド毎秒、世界のネガティブ X軸に沿って、コンスタントな直線速度で移動するようにします。

A close up view of a brown log on top of a river. The log's constraint visual aid is visible and points to the right, or the world's negative X axis.

アタッチメントを構成する

アセンブリ内の特定のオブジェクトを移動するために、アセンブリに 2つの Attachment オブジェクトを追加し、その後、3D 空間で配置と方向を構成するためにアセンブリを構成します。サンプル 移動オブジェクト エクスペリ

次のセクションでプリズマチックコンストリンクの制限を構成すると、ログは 関連するログ をアンカー部分に移動します。つまり、ログは 3D 空間に固定された静的部分から離れます。

プリズマティックな制限のアタッチメントを構成するには:

  1. In the Explorer ウィンドウで、 PrismaticConstraintExample フォルダを拡張し、その子 Log_DIY モデルを拡張します。

  2. ログ メッシュにアタッチメントを挿入します。

    1. メッシュの上にマウスポインタを置き、⊕ ボタンをクリックします。コンテキストメニューが表示されます。
    2. メニューから、 アタッチメント を挿入します。アタッチメントは、パーツの中心に表示されます。
    3. アタッチメントを LogAttachment に名前変更します。
    A close up view of a log and its attachment visual aid. The primary axis points toward the camera, and the secondary axis points upward.
  3. 同じプロセスを使用して、 アンカー 部分にアタッチメントを挿入し、 アンカーアタッチメント として名前を変更します。

    A close up view of a log and two attachment visual aids. The primary axis of the new attachment visual aid points to the right, and the secondary axis points upward.
  4. 世界の座標に参照するために ビューセレクター ツールを参照し、ログアタッチメント と アンカーアタッチメント をそれぞれのアタッチメントの主軸に向きます。

    A close up view of a log and its attachment visual aid. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.
  5. アンカーアタッチメント を再設定して、両方のアタッチメントが X 軸で同じように配置されるようにします。

    A close up view of a log and its attachment visual aids that are now positioned horizontally. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.

制限を構成する

あなたの付属品が同じ軸に沿って配置され、同じ方向に向くログを移動したいときには、 PrismaticConstraint 制限を構成して、ログのターゲットの正方向の速度を指定するために、各付属品の主要軸の正方向の速度を指定し、あなたの付属品がそ

自分の使用ケースに適用する異なる値を選択することができますが、サンプル 移動オブジェクト エクスペリエンスは、世界のネガティブ X 軸に沿って、40 個の付属物を毎秒移動するための 50000 ロワトンの定力のパワーを上げます。ただし、アンカー付属物

プリズマティックな制限を構成するには:

  1. Class.PrismaticConstraint オブジェクトを ログ メッシュに挿入します。

    1. In the エクスプローラー ウィンドウ, メッシュの上にマウスポインタを置き, ⊕ アイコンをクリックします。コンテキストメニューが表示されます。
    2. コンテキストメニューから PrismaticConstraint を挿入します。
  2. ログのアタッチメントを新しい制限に割り当てることで、ログがアンカーブロックの部分に関連するように移動します。

    1. In the エクスプローラー ウィンドウ, select the constraint.
    2. In the プロパティ ウィンドウ,
      1. アタッチメント0 を アンカーアタッチメント に設定します。
      2. アタッチメント1 を ログアタッチメント に設定します。制限はビューポートで表示されます。
    A close up view of a log and its constraint visual aid. It doesn't have a arrow visual aid because it doesn't yet have a set velocity.
  3. In the エクスプローラー ウィンドウ, select the constraint, then in the Properties window,

    1. ActuatorType を Motor に設定します。新しいプロパティフィールドが表示されます。
    2. MotorMaxForce を 50000 に設定して、ターゲットの直線速度を最大 50000 行動力に拡張するために最大 50000 行動力を適用します。
    3. Velocity を 40 に設定して、ログを 40 スタッド/秒で移動するようにします。
    A close up view of a log and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. 設定した力の量は、世界のネガティブ X 軸に沿って 40 スタッド per second ログを移動させます。

    1. In the menu bar, メニューバーで テスト タブに移動します。

    2. シミュレーションセクションで、モードピッカーをクリックします。ドロップダウンメニューが表示されます。

      Rapid playtest options in Test tab of Studio.
    3. Select 実行 . Studio は、3D 空間にあなたのアバターなしで現在のカメラポジションでエクスペリエンスをシミュレートします。

最初の直線力を適用する

オブジェクトの直線速度を変更する別の方法は、力のインパルスを適用することです。力のインパルスの後、オブジェクトは摩擦力などの反復的な力がない場合、または一貫した速度で移動するようになります。摩擦力などの反復的な力がある場合、オブジェクトは直線速度を変更することなく移動します。

このテクニックは、エクスプロージョンや衝撃的な衝突などの重大なゲームプレイイベント後にオブジェクトを移動するのに便利です。これは、プレイヤーに即座にフィードバックを提供し、ジャンプパッドで初期のインパルスを使用して、あなたの要件に対応する新しい値に合わせてプレイヤーのキャラクターを天空に

ApplyImpulse を使用する

Class.BasePart.ApplyImpulse|ApplyImpulse メソッドは、相手力があるときにスロープを制限して停止するときまでの初期速度を得るために、アセンブル全体に力を適用します。アセンブルを移動するには、メソッドには次の情報が必要です:

  • 移動するアセンブリ。
  • 最初の直線速度に到達するために力を適用する軸。
  • それぞれの軸に適用する力の量。

スクリプトでこれらの値をすべて定義できます。たとえば、サンプルスクリプトは、プレイヤーキャラクターの Humanoid オブジェクトとしてアセンブルを移動するためのアセンブルを定義し、次に 2500 行ton-秒の強度を持

Class.BasePart.ApplyImpulse|ApplyImpulse を使用してアセンブリを移動するには:

  1. In the Explorer ウィンドウで、 ApplyImpulseExample フォルダを拡張し、その子 JumpPad_DIY モデルを拡張します。
  2. スクリプトを JumpPad 部分に挿入します。
    1. パーツの上にマウスポインタを置き、⊕ ボタンをクリックします。コンテキストメニューが表示されます。
    2. メニューから スクリプトを挿入します。アタッチメントはパーツの中心に表示されます。
    3. スクリプトを JumpScript に名前を変更します。
  3. 次のコードをデフォルトコードと交換します:

local volume = script.Parent
local function onTouched(other)
local impulse = Vector3.new(0, 2500, 0)
local character = other.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid and other.Name == "LeftFoot" then
other:ApplyImpulse(impulse)
end
end
volume.Touched:Connect(onTouched)