旋转对象 是旋转在 3D 空间中的对象。使用 Roblox 的内置力量,您可以使对象旋转并与其环境交互,以模拟玩家熟悉的真实世界物理行为,例如重力、气动和摩擦。
使用 Spinning Objects.rbxl 文件作为参考,此教程解释物理力如何影响角度动作在 Studio 中,并显示您在体验中使用不同旋转行为的对象旋转的各种技术,包括以下指南:
- 使用 AngularVelocity 移动限制来旋转整个装置以一致的角速。
- 使用机械限制 HingeConstraint 来在装配中旋转零件,其余装配部分保持不变。
- 使用 ApplyAngularImpulse 方法来旋转一个装置,以使装置在一定时间内慢慢减速。
斜角运动和物理力
Roblox Studio 是一个真实世界的模拟引擎,它以实时模拟物理行为来模拟物体在现实生活中的行为,因此在预测旋转对象在体验中的行为时,重要的是要了解物体在现实生活中以角度运动的方式如何旋转。 斜角运动 ,或旋转运动,是在固定点或轴上旋转的移动。例如,当旋转器有斜角运动时,它会在旋转器的中心部分旋转器的中心部分旋转。
无法有效地旋转对象,不是由外部、物理力推拉或拉动对象来旋转。根据牛顿的第一法律运动,静止对象仍然静止,移动对象仍然在旋转,除非受到外部力的作用,否则不会发生任何运动。例如,如果风或其他外部力不是按照预期的速度推进它们,它们不会旋转。
扭矩 是物体旋转的物理力的量,它对于物体获得角度加速负责。这个概念对于在 Studio 中旋转对象非常重要;你所应用的扭矩越多,对象的旋转速度就越快。
这是因为扭矩需要大于对方向的任何向向物理力推回对象,例如重力或摩擦。例如,如果您将螺旋桨放在泥土中,风的物理力就需要克服泥土的摩擦力继续加速旋转螺旋桨。如果风的力是不是很大于泥土的摩擦力,螺旋桨
角度速度 是描述对象旋转速评分的量,或描述对象在固定点或轴上的旋转速度。 Studio 按照每秒钟的旋转角度测量角度速度,因此您需要知道旋转角度速度是多少才能在您的旋
下面的部分涵盖了这些概念,随着您学习如何在任何速度或初始角度下旋转对象以实现所需的扭矩来克服任何对流物理力在环境中。当您使用 Studio 的即将推出的技术查看这些物理概念时,您可以更准确地预测如何调整属性值以实现任何理想的旋转行为。
保持定向力
要使对象达到和保持定向速度,它需要一个角度力来克服任何会减速角度速度或使对象保持静止的对流物理力。例如,如果您想要在 Studio 中使对象有一个角度速度为 [0, 12, 0] 以上,您需要足够的扭矩才能使对象在 Y 轴环境的
您对对象的扭矩的应用不仅仅是在环境本身中的相对物理力,例如重力和摩擦,而且还取决于对象本身。例如,如果您有两个相同形状的对象在同一轴上旋转,那么大于摩擦力的大对象需要更多扭矩才能实现相同的角度加速。
下面的子部分使用不同形状和大小的组合来教你如何旋转整个对象或仅旋转其中的部分。当你尝试不同的属性值时,你会学习如何估算你需要为组合在自己的体验中的最大扭矩。
使用角度速度约束
AngularVelocity 对象是一个类型的mover约束,它在整个装配上施加扭矩以维持定向速度。要开始旋转装配,AngularVelocity 约束需要知道:
- 角度和正向或负向应用角向力。
- 您想要的装置每秒转数。
- 引擎可以为装配达到一致的角度速度应用的最大扭矩。
要示示此过程,您将在您的工作区添加一个带有 AngularVelocity 限制的附件,以便在世界的 Y 轴上以一致的角度每秒旋转 6 个方块。
添加附件
您可以通过将 Attachment 对象添加到装配体中来指定固定位置来旋转装配体,然后配置附件在 3D 空间中的位置。 样例 旋转对象 体验将附件放置在块部件中心,因此限制可以在中心部件周围旋转零件。
附件包括视觉助手来帮助您视觉化其旋转轴的旋转方向。 黄色箭头表示附件的主轴, 橙色箭头表示附件的副轴。 尽管这种技术的两个轴都不会影响砖块的旋转在步骤中,但它们的视觉助手可以助您确定未来的参考,因为它们可以助您确定各种限制类型,
要添加附件:
在 Explorer 窗口中,将 块 零件插入 工作区 。
将一个附件插入新部分。
- 在 Explorer 窗口中,将鼠标悬停在零件上,单击 ⊕ 按钮。一个上下文菜单显示。
- 从菜单中,插入一个 附件 。 该附件显示在零件的中心。
- 将附件命名为 SpinAsset 。
配置限制
现在您的方块有一个固定的点来旋转您的方砖块,您可以配置 AngularVelocity 约束的属性来指定旋转方向、轴或轴向的应用,以及您想要的方块旋转速度,每秒钟的旋转速度,以及您想要的引擎扭矩。
该示例 Spinning Objects 体验以 1000 行齿力的定向力为准确角度旋转方块 6 每秒以 6 角度的Roblox界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世界上的 Y 轴上的世
要配置一个 AngularVelocity 约束:
(可选) 在 3D 空间中使约束可见,以便您可以参考其旋转方向。
- 在菜单栏中,导航到模型标签,然后到限制部分。
- 如果它未启用,请单击 限制详情 显示限制视觉助助。
在零件中插入 AngularVelocity 约束。
- 在 Explorer 窗口中,将鼠标悬停在零件上,然后单击 ⊕ 标志。一个上下文菜单显示。
- 从上下文菜单中,插入 角度速度 。 限制的视觉助理显示在零件的中间。
将零件的附件分配到新的约束上。
- 在 Explorer 窗口中,选择限约束。
- 在 属性 窗口中,
- 将 附件0 设置为 SpinArrow 。
- 将 角度速度 设置为 0, 6, 0 以旋转零件 6 每秒角度沿 Y 轴。请注意,如果您将此属性设置为 0, -6, 0,块会以时针方向旋转。
- 将 MaxTorque 设置为 1000 以应用到 1000 行程/秒的目标角度速度。
- 将 RelativeTo 保留在 World 以将块与世界的位置和方向旋转。
验证您设置的扭矩数量会每秒以 6 个方向在世界的 Y 轴上旋转。
在菜单栏中,导航到 测试 选项卡。
在 模拟 部分中,单击模式选择器。一个下拉菜单显示。
选择 运行 。 Studio 在 3D 空间中无需你的虚拟形象在当前摄像头位置就可以模拟体验。
您可能需要调整您的扭矩,因为您的方砖块的尺寸和您环境中的任何反向物理力。例如,您的样本体验中的 AngularVelocity 属性对于一个方块部件的默认大小为 4, 1, 2 在平面上使用塑料材料,并且有一个环境使用经典预设重力。
如果您的方块是大型尺寸,并且在草地形,您需要增加您的 AngularVelocity.MaxTorque 属性,因为角力需要克服环境中的砖块的质量和摩擦力。例如,大型方块部分,包含四倍样本部分的行程,需要至少 300000 行ton-
使用 HingeConstraint 限制
HingeConstraint 对象是一个类型的机械限制,它允许两个附件在一个轴上旋转,限制附件在同一位置和主轴在同一方向上。当您将HingeConstraint.ActuatorType设置为0>机器0>时,这个限制适用于两个
此外,当您将附件放入两个对象组合中时,对象锁定在一起,并且根据附件的固定主轴进行旋转。 如果您将其中一个对象固定在一个,那么角度力将继续在角度不变的速度下旋转其他对象,而剩余的组合器将保持不变。
例如,在装配中开始旋转特定对象,HingeConstraint 限制需要知道:
- 您想要附件交叉的位置。
- 角度和正向或负向应用角向力。
- 你想要的辐射数,该附件每秒钟会旋转。
- 引子可以达到一致的角速度,引子的最大扭矩。
要示示此过程,您将添加一个 propeller 装配体,用两个对象添加到您的工作区,其中一个具有附件,用于在每个对象上旋转 propeller HingeConstraint 个角度,以及每秒钟旋转角度的一半以上的速度(每秒钟旋转角度的一半以上)以及基础 propeller 在不变的速度下。
获取螺旋桨资产
创作者商店是您可以在工具箱中找到所有由 Roblox 和 Roblox 社区制作的资产,以便在您的项目中使用,包括模型、图像、网格、音频、插件、视频和字体资产。您可以使用“ 创作者商店 ”来直接添加单个资产或资产库存,或将其添加到打开体验。
本教程使用了一个你可以使用来复制每个步骤的HingeConstraint技术的螺旋对象的propeller模型。你可以将此模型添加到你的库存中,通过单击添加到库存链接在下一部件中。一旦资产在你的道具中,你可以在平台上的任何项目上重用它们。
要将此叶轮资产从您的库存中获得到您的体验:
在菜单栏中,选择 视图 标签。
在 显示 部分中,单击 工具箱 。显示 工具箱 窗口。
在 工具箱 窗口中,单击 物品栏 选项卡。显示 我的模型 排序显示。
单击 螺旋桨 地瓦片。 模型将在您的视图中显示。
配置附件
您可以指定 both位置的附件想要重叠的位置和旋转移动的方向,以便在装配中旋转特定对象。 您可以通过将两个 Attachment 对象添加到装配中,然后配置其对齐和方向在 3D 空间中配置。
样本旋转对象体验将两个附件放置在锚定 propeller 与基础相交的位置附近,并将其主要轴向上旋转,以便它们逆时针旋转。基础附件在此示例中无法旋转,因为基础是锚定的。
要配置对关节限制的附件:
将 Attachment 对象插入 头部 和 基础 。
- 在 Explorer 窗口中,将鼠标悬停在 头 上,然后单击 ⊕ 按钮。一个上下文菜单显示。
- 从菜单中,插入一个 附件 .
- 重复此过程为 Base 。
- 分别重命名 头部附件 和 基础附件 。
旋转 头部附件 和 基础附件 ,使各个附件的主轴指向 Y 轴。这使 Studio 向左旋转附件。
将 基础附件 移动到 基础 的顶部,并将 头部附件 移动到 1> 螺旋桨1> 的底部。 这将告诉 Studio 在执行时间时将关闭关节本身,并在两个附件之间进行交叉。
配置限制
现在您的附件有位置重叠和旋转方向,您可以配置 HingeConstraint 约束的属性,以确定您想要的附件每秒旋转的角度数,以及引擎可以为附件提供的最大扭矩。
与上一种技术类似,样本旋转对象体验适用于1000行ton-每秒钟速度旋转附件3个角度的角向力。然而,因为基础附件位于锚定对象上,只有 propeller 的附件才能旋转。
要配置关节约束:
将 HingeConstraint 对象插入 头部 。
- 在 Explorer 窗口中,将鼠标悬停在 头 上,然后单击 ⊕ 标志。一个上下文菜单显示。
- 从上下文菜单中,插入一个 关节约束 。
将螺旋桨的附件分配到新的约束上,以便螺旋桨在 关系 到锚定的基础上旋转。
- 在 Explorer 窗口中,选择限约束。
- 在 属性 窗口中,
- 将 附件0 设置为 基础附件 .
- 将 附件1 设置为 头部附件 。 关节显示在视图中。
在 Explorer 窗口中,选择限约束,然后在 属性 窗口中,
- 将 ActuatorType 设置为 Motor 。显示新的属性字段。
- 将 MotorMaxTorque 设置为 1000 以应用 1000 行程力,实现目标角度速度。
- 将 斜角速度 设置为 3 以每秒旋转 propeller 3 个轮胎的头。
验证您设置的扭矩会在 Y 轴上每秒钟旋转 3 个 propeller 3 扭力。
在菜单栏中,导航到 测试 选项卡。
在 模拟 部分中,单击模式选择器。一个下拉菜单显示。
选择 运行 。 Studio 在 3D 空间中无需你的虚拟形象在当前摄像头位置就可以模拟体验。
应用初始斜角力
另一个更改对象角速的方法是应用角力的脉冲。 在角力的脉冲之后,对象可以变得呆动直到变为静止,如果存在摩擦力,例如润滑剂,或者保持不变的速度,如果没有摩擦力,请参阅“摩擦力”。
这种技术有助于在游戏中大量使用或天气事件后旋转对象,例如强烈的风暴,因为它提供即时反馈给玩家。 要示例,下面的子节中教你如何使用初始随机角度的力量来旋转一个组合,以适应新价值来满足您自己的游戏要求。
使用ApplyAngularImpulse
Class.BasePart.ApplyAngularImpulse|ApplyAngularImpulse 方法在整个装置上应用扭矩获得在停止前获得初始角度之前的角速。要开始旋转装置,方法需要知道:
- 装备旋转。
- 用于应用扭矩的轴,以实现初始角度速度。
- 要应用到每个轴的扭矩。
您可以在脚本中定义这些值。例如,示例脚本定义了装配式作为脚本的父元素级,然后它将随机强度的角度力应力在 0 和 100 行ton-studs在 Y 轴上。
要使用 ApplyAngularImpulse 来旋转组合:
在 工作区 中插入一个 球 部分。该示例使用一个带有 MaterialVariant 的球,您可以清晰地视зуали化球的移动。
将脚本插入新部分。
- 在 Explorer 窗口中,将鼠标悬停在零件上,单击 ⊕ 按钮。一个上下文菜单显示。
- 从菜单中,插入一个 脚本 。
将以下代码替换为默认代验证码:
local part = script.Parentlocal impulse = Vector3.new(0, math.random(0, 100), 0)part:ApplyAngularImpulse(impulse)