創建旋轉對象

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

旋轉對象 是旋轉在 3D 空間內的對象,使用 Roblox 的內置力量來旋轉對象,並與其環境交互以一種與玩家熟悉的物理行為來模擬實際世界的物理行為。這包括重力、氣力、摩擦力。

使用 Spinning Objects .rbxl 作為參考,這個教學解釋了物理力如何在 Studio 中影響角度運動,並且展示了各種技術來在您的體驗中旋轉對象,包括與旋轉行為有關的指南。

  • 使用 AngularVelocity 限制器來旋轉整個裝配在一個定速角度上。
  • 使用 HingeConstraint 機械限制來旋轉零件內的一個零件,以一個固定角度滾動剩餘零件。
  • 使用 ApplyAngularImpulse 方法來旋轉一個裝配件,以初始角度的角力為基礎,讓裝配件在時間過程中慢慢減速。

角度運動和物理力

Roblox Studio 是一種現實世界的模擬引擎,可以模擬物體在現實時間內的實際行為,因此在預測旋轉物體在體驗中的行為時,重要的是要了解物體在現實生活中以角度運動的方式旋轉。 角度運動 或 旋轉運動 是在固定點或軸上的移動。例如,當螺旋槳有角度運動時,它會在螺旋槳的中心旋轉軸上旋轉。

角度運動不能存在,除非有外部、物理力推動或拉動對象以旋轉。根據牛頓的 第一個運動定律,靜態物體保持靜態,移動物體保持移動,除非受到外部力的作用,否則不會發生任何運動。例如,如果風沒有被外部力作用,螺旋槳就會保持靜態。

扭矩 是測量物體旋轉的物理力的測量,負荷對象會導致角度加速。這個概念對於物體在 Studio 中旋轉至關重要;你對物體施加的扭矩越多,物體就會越快地加速。

這是因為扭矩需要比任何方向al 對對物件推動的任何方向al 大。 例如,如果您將螺旋槳放在泥土上,風的物理力將克服從泥土上對方向al 的方向al 的方向al 的方向al 的方向al 的方向al 的方向al 的方向al 的方向al 的方向al 的方

角度速度 是測量對物件旋轉評分度的測量,或對象在一個固定點或軸上旋轉的速度。Studio 測量角度速度按照每秒鐘旋轉的 radians 來測量。有 2

下列部分會進一步討論這些概念,讓您學會如何在固定或初始角度速度與必要的扭矩之間旋轉對象,以克服環境中的任何對稱物理力。當您檢視這些物理概念與即將推出的技術時,您可以更準確地預測如何調整屬性值以達到任何理想的旋轉行為在 Studio 中。

維持一個定向力

要使對象達到和維持一致的角速,它需要一個角向力來克服任何會降低角速或使對象保持不動的對物理力。例如,如果您想要在 Studio 中使對象有一個角速為 [0, 12, 0] 的角速,您需要足夠的�

您對對象的扭矩只會在環境自身中的相對物理力 (例如重力和摩擦) ,以及對象本身 (例如兩個相同形狀的對象在相同的軸上旋轉) 上取決,而不會取決於您對對象自身。例如,如果您有兩個相同形狀的對象在相同的軸上旋轉,大型對象的 最大重力 需要更多�

小三角形零件的角速比較低,所以需要較小的角力來達到相同的加速。
大型三角形零件的角轉矩需要更大的角向力才能達到相同的加速。

下列子節使用不同形狀和大小的組合來教你如何旋轉整個對象或只是對物件的一個部分。隨著你與不同的屬性值實驗,你會學會估計你需要的最大扭矩,以便在你自己的體驗中學會估計扭矩的最大值。

使用角度速度限制

AngularVelocity 對象是一種 限位器 ,它們對整個組裝適用扭矩來維持一個常態角度。要開始旋轉組裝, AngularVelocity 限位器需要知道:

  • 指向和正向或負向來應用角度力。
  • 您想要裝置旋轉的每秒鐘數量的 radians。
  • 引擎能為裝配達到一致的角度速度應用的最大扭矩。

為了示範此過程,您將在您的工作區中添加一個附件,以一個 AngularVelocity 限制引用到旋轉方塊 6 每秒鐘的角度,或是在世界的 Y 軸上以一個定向速度旋轉。

新增附件

您可以指定固定點,以便在裝配中旋轉一個裝配,並且在 3D 空間中配置附件的位置。 樣本Attachment 體驗放置一個附件在塊的中心,因此限制可以在中心的方向相反旋轉零件。 樣本Spinning 對象 體驗放置一個附件在塊的中心,因此限制可以在中心的方向

附件包括視覺提示,幫助您視覺化其旋轉軸。黃色箭頭表示附件的主軸,橙色箭頭表示附件的副軸。雙軸的旋轉對於此技術的步驟沒有影響,但對於未來的參考,這些視覺提示很重要,因為它們可以��

要新增附件:

  1. 在 Explorer 窗口中,插入一個 區塊 零件到 工作區 。

  2. 插入新零件的附件。

    1. Explorer 窗口中,將鼠標擺動在零件上,然後按一下 ⊕ 按鈕。一個上下文菜單顯示。
    2. 從選單中,插入 附件 。 附件會顯示在零件的中心。
    3. 將附件重命名為 SpinArrow

配置限制

現在您的方塊有一個固定點可以旋轉方磚塊,您可以配置 AngularVelocity 限制器的屬性來指定旋轉方向、軸或軸的方向,以應用目標定量角度、旋轉速度、你想要方塊旋轉每秒鐘的角度、方塊旋轉對象的角度、方塊旋轉對象的角度、方塊旋轉對象的角度、方塊旋轉對象的角度

樣本Spinning Objects體驗以 1000 行程/秒的速度旋轉世界上的 Y 軸上的方塊 6 個角度,以行程測量角度。行程由 Roblox 的主要物理單位來測量力矩。要參考 Roblox 的物理單位並且如何將其轉換為公制單位,請參閱Roblox 單

要設定 AngularVelocity 限制式:

  1. (可選) 在 3D 空間中顯示限制,讓您可以參照其旋轉方向。

    1. 在選單欄中,導航到 模型 標籤,然後是 限制 部分。
    2. 如果尚未啟用,請按一下 限制細節 以顯示限制視覺援助。
  2. AngularVelocity 約束插入零件。

    1. 探險家 窗口中,將鼠標擺動在零件上,然後按一下 ⊕ 圖示。一個上下文菜單顯示。
    2. 從上下文菜單中,插入 角度速度 。 限制式制器的視覺協助顯示在零件的中間。
  3. 將零件的附件指定為新限制式。

    1. Explorer 窗口中,選擇限限制式。
    2. 屬性 視窗中,
      1. 附件0 設置為 SpinAttachment
      2. 角度速度 設為 0, 6, 0 以在 Y 軸上每秒鐘旋轉零件 6 角度。注意,如果您將此屬性設為 0, -6, 0,則會以時鐘方向旋轉零件。
      3. 最大扭矩 設置為 1000 以應用每秒鐘最多 1000 行程力/公尺的定向力,達到目標角度速度。
      4. Keep 相對位置世界 以旋轉方塊相對於世界的位置和方向。
  4. 確認您設置的扭矩數量會每秒鐘在世界的 Y 軸上旋轉 6 個輪廓。

    1. 在選單欄中,導航到 測試 標籤。

    2. 模擬 區域中,單擊 模式選擇器 。一個下拉菜單顯示。

      Rapid playtest options in Test tab of Studio
    3. 選擇 執行 。Studio 會在 3D 空間中的當前視角位置模擬您沒有頭銜的虛擬人偶在執行體驗。

您可能需要調整您的扭矩,因為您的區磚塊的尺寸和環境中的任何對稱物理力而異。例如, AngularVelocity 限制在示範體驗中工作的方塊零件,其尺寸為預設值 4, 1, 2 在平面上的塑膠材料,和環境有基本重力。

如果您的區塊是大型尺寸,在草地形,您需要增加您的 AngularVelocity.MaxTorque 屬性,因為角度力需要克服環境中的兩個方磚塊的 mass 和 friction。例如,大型 block 零件,如果是三倍樣本的零件,需要至少 30000

使用 HingeConstraint 限制

HingeConstraint 對象是一種 機械限制 ,可以允許兩個附件在一個軸上旋轉,限制附件的位置和主軸方向。當您將 HingeConstraint.ActuatorType 設置為 0> 機器0> 時,此限制

此外,當您將附件放置在兩個對象的裝配中時,對象會鎖定在一起,並且嘗試按照附件的固定主軸來旋轉。如果您錨定其中一個對象,角度力會繼續旋轉其他對象,而剩餘部分的裝配將保持不變。

例如,在組裝中開始旋轉特定物件時,HingeConstraint 限制需要知道:

  • 您想要附件交疊的位置。
  • 指向和正向或負向來應用角度力。
  • 您想要的輻射數量每秒鐘旋轉。
  • 引擎可以對附件施加的最大扭矩。

要示示此過程,您將在 HingeConstraint 限制引用的兩個對象添加到您的工作區,以附件在兩個對象上的對象的屬性來旋轉螺旋 3 每秒鐘 (約每秒鐘一半全速旋轉) 沿 Y 軸在基礎上保持不變。

取得螺旋槳資產

創作者商店 是您可以在 Roblox 和 Roblox 社群製作的所有資產的目錄,您可以使用它來查找 Roblox 和 Roblox 社群製作的所有資產,並將其直接添加到開放體驗中。您可以使用創作者商店來添加單一資產或資產資料庫,例如模型、圖像、網格、音訊頻、外掛程式、視頻和字體資產。

此教學參考一個可以用於重複每個步驟的 HingeConstraint 技術的螺旋對象的 propeller 模型。 您可以將此模型添加到您的 Inventory 內,通過單擊 Studio 中的 添加到 2>Inventory2> 連結在下一個零件上。 一旦資產在您的 5>Inventory5> 內,您可以在平台上

要將此螺旋槳資產從您的道具欄中取得到您的體驗:

  1. 在選單欄中,選擇 檢視 標籤。

  2. 顯示 區域中,單擊 工具箱 。 工具箱 窗口顯示。

  3. 工具箱 窗口中,單擊 庫存 標籤。顯示 我的模型 排序顯示。

  4. 單擊 螺旋槳 磚塊。模型會在您的視角中顯示。

設定附件

您可以指定兩個位置,在哪裡您想要添加附件的位置,以及旋轉特定對象的方向,以便在裝配中旋轉特定對象。您可以通過將兩個 Attachment 對象添加到裝配中,然後在 3D 空間中配置其對齡和方向來配置它們的位置。

示例 旋轉物體 體驗會將兩個附件放置在錨定 propeller 與基座交叉的位置,並將其主軸的旋轉方向變更為上升,以便它們旋轉反時鐘。基座附件無法在此示例中旋轉,因為基座是錨定的。

要設定關節約束的附限制式:

  1. 將 Class.Attachment 對象插入 頭部基地

    1. 在 Explorer 窗口中,將鼠標移動至 頭部 並點擊按鈕。一個上下文菜單顯示。
    2. 從選單中插入 附件
    3. 重複此過程為 基地
    4. 分別重新命名兩個附件 頭部附件基地附件
  2. 旋轉 頭部附件基地附件 ,以便每個附件的主軸指向 Y 軸上。這告訴 Studio 要將附件反時針旋轉。

  3. 基地附件 移動到 基地 的頂部,並將 頭部附件 移動到 1> 螺旋槳1> 的底部。這樣 Studio 就會告訴 Studio 連接槽械的位置,並在執行階段時交叉兩個附件。

配置限制

現在您的附件有位置重疊和方向旋轉運動,您可以配置HingeConstraint 限制以指定您想要的附件每秒鐘旋轉的角度數,並且指定引擎可以對附件施加的最大扭矩。

與上一個技術相似,旋轉對象 體驗可以應用最多 1000 行銷-每秒鐘以 Y 軸上的角度速度沿著 Y 軸旋轉附件 3 個輪子。但因為基本附件位於錨定對物件上,只有螺旋槳的附件才能旋轉。

要設定關節限制式:

  1. HingeConstraint 對象插入 頭部

    1. 在 Explorer 窗口中,將鼠標移動至 頭部 上,然後單擊 ⊕ 圖示。一個上下文菜單顯示。
    2. 從上下文菜單中,插入 關節約束
  2. 將螺旋槳的附件分配到新的限制上,讓螺旋槳在 關係 至錨定基地。

    1. Explorer 窗口中,選擇限限制式。
    2. 屬性 視窗中,
      1. 附件0 設為 基地附件
      2. 附件1 設置為 頭部附件 。鎖定會在檢視角中顯示。
  3. 在 Explorer 窗口中,選擇限制式,然後在 屬性窗口中,

    1. ActuatorType 設置為 機器 。新的屬性字段顯示。
    2. 馬力MaxTorque 設為 1000 以應用最高 1000 行程力學力,達到目標角度速度。
    3. 角度速度 設為 3 以每秒鐘旋轉螺旋槳頭 3 個角度。
  4. 確認您設置的扭矩數量會在 Y 軸上的每秒鐘旋轉螺旋槳 3 個。

    1. 在選單欄中,導航到 測試 標籤。

    2. 模擬 區域中,單擊 模式選擇器 。一個下拉菜單顯示。

      Rapid playtest options in Test tab of Studio
    3. 選擇 執行 。Studio 會在 3D 空間中的當前視角位置模擬您沒有頭銜的虛擬人偶在執行體驗。

應用初始角度力

改變物物件角度的另一個方法是應用角度力的衝擊。角度力的衝擊後,物體會否定速度直到變成靜止,如果存在對流力,例如摩擦力,或者保持不變速度,如果沒有對流力。

這種技術有助於在重大遊戲或天氣事件後旋轉對象,例如強烈的風暴,因為它提供瞬間回饋給玩家。 要示範,下一個子部分教學您如何旋轉一個組合,並且使用新值來滿足您自己的遊戲需求。

使用 ApplyAngularImpulse

Class.BasePart.ApplyAngularImpulse|ApplyAngularImpulse 方法在整個裝配上適用扭矩以獲得初始角度速度,然後減速至停止。要開始旋轉裝配時,方法需要知道:

  • 可以旋轉的組裝。
  • 用於達到初始角度速度的扭矩軸。
  • 每個軸的扭矩。

您可以在指令碼中定義這些值。例如,範例指令碼會定義組合來作為指令碼的父元素級,然後在 0100 行銷中,在 Y 軸上的行程 1 。

要使用 ApplyAngularImpulse 旋轉裝配件:

  1. 球體 零件放入 工作區 。樣本使用圓球體有 MaterialVariant ,因此您可以清楚地視覺化圓體的運動。

  2. 將一個指令碼插入新部分。

    1. Explorer 窗口中,將鼠標擺動在零件上,然後按一下 ⊕ 按鈕。一個上下文菜單顯示。
    2. 從選單中插入 指令碼
  3. 將以下代碼替換為預設代碼:


local part = script.Parent
local impulse = Vector3.new(0, math.random(0, 100), 0)
part:ApplyAngularImpulse(impulse)