【问题标题】:Offset CFrame Math偏移 CFrame 数学
【发布时间】:2021-12-20 04:56:33
【问题描述】:

因此,对于我的 FPS 框架,我想制作自动化的 Aim Downs Sights,即不使用动画。

问题是我必须移动:-

  • 武器
  • 武器 但是如果不将手臂焊接到武器上,我就无法做到这一点,但我需要将手臂焊接到 RootPart 上。

所以我买了一个钻机开始试验,我想出了一个解决方案!

  • 将锚定部分作为相机(这仅用于测试目的)
  • RootPart 将被焊接到 CameraPart
  • 会有一个 AimPart 定义相机的位置,以便让玩家感觉他们正在瞄准目标。

我想出了这个

local AimPartPosition = (Camera.CFrame:inverse() * AimPart.CFrame).Position
CamWeld.C0 = CamWeld.C0 * CFrame.new(Vector3.new(-AimPartPosition.X,-AimPartPosition.Y,-AimPartPosition.Z))

这里,我从CameraPart得到AimPart的偏移量,然后反转位置,最后将RootPart的偏移量应用到CameraPart。(我之所以放.Position是因为我只想反转Position而不是旋转,只是为了安全起见)。

这很好用,我很自豪我做到了,但我不想使用额外的 CameraPart。我想使用 RAW CFrame 值而不是 Motor6Ds。

这显然行不通……

local AimPartPosition = (Camera.CFrame:inverse() * AimPart.CFrame).Position
RootPart.CFrame = Camera.CFrame:inverse() * RootPart.CFrame * CFrame.new(Vector3.new(-AimPartPosition.X,-AimPartPosition.Y,-AimPartPosition.Z))

因为

RootPart.CFrame ~= Camera.CFrame:inverse() * RootPart.CFrame

我有需要应用到 RootPart 的偏移量,我只是不知道如何。

【问题讨论】:

    标签: lua roblox


    【解决方案1】:
    RootPart.CFrame = RootPart.CFrame * CFrame.new(Vector3.new(-AimPartPosition.X,-AimPartPosition.Y,-AimPartPosition.Z))
    

    那感觉就像在作弊,我会诚实的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2016-02-10
      相关资源
      最近更新 更多