- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ox Engine 在 XNA 中制作 3D 游戏。文档很少,到目前为止我一直幸存下来,但现在我遇到了一个合乎逻辑的障碍很长一段时间,我认为是时候寻求外部帮助了。
所有移动和鼠标看起来 x 工作,相机正确跟随但是当我在 Y 轴上向上/向下移动鼠标以使相机在围绕角色的圆形“气泡”中移动时,它会导致其他一切都消失同步。角色应该被相机环绕,但也需要被告知角色面对的方向。我似乎不能两者兼得。
当我有代码告诉它角色的方向并“远离”(转置)它时,它正在移动轨道本身:
if (changeY > 0)
{
如果 (camMemory.Y > 110)
tempMatrix *= Matrix.CreateFromAxisAngle(model.Orientation.Left, MathHelper.ToRadians(changeY));
}
否则如果(改变Y <0)
{
if (camMemory.Y < 400)//FAKE PLACEHOLDER VALUE...弧形的最高点在这里
tempMatrix *= Matrix.CreateFromAxisAngle(model.Orientation.Left, MathHelper.ToRadians(changeY));
}
Vector3 camPos = new Vector3(0, 0, 0) ;
camMemory = tempMatrix.Translation;
//注意:这是导致“气泡”移动的部分
moveAmount = tempMatrix.Forward * 200f;
/////
tempMatrix.Translation += moveAmount;
camPos = tempMatrix.Translation + model.Position;
//指针在前,相机在后,使相机面指针。
Engine.Camera.SetTransformByLookTarget(camPos, model.Orientation.Up, trackPos);
这意味着如果没有正确地围绕角色旋转,当他转动相机时,相机就会错位。
然而,当我解决这个问题时,我离角色的距离不够远,无法获得正确的视野,只是简单地乘以 tempMatrix.Translation 来“扩大”“气泡”,这让我很严重空间不足。我失去了顿悟。任何见解将不胜感激。
tl,dr:如何在不移动中心点的情况下使角色周围的轨道相机气泡更大(转置不起作用或者我使用错误!)
编辑:我希望我能为此悬赏,哈哈
最佳答案
The character should orbited by the camera, but it also needs to be told what direction the character is facing. I cannot seem to have both.
同时拥有它们的方法是根据角色矩阵基向量的偏移设置相机位置。这样,当角色旋转并更改基本矢量时,您的相机将跟随它。同时或独立地,更改偏移值将使您的相机也围绕角色旋转。
看来您的代码只是围绕模型的 X 轴旋转。要演示关于该轴的方法,您可以执行以下操作:
Vector3 offset = Vector3.Transform(model.Orientation.Backward, Matrix.CreateFromAxisAngle(model.Orientation.Left, camMemory.Y));
camPos = model.Position + (offset * bubbleSize);
所以现在,如果角色自己旋转,相机将随之旋转,因为 model.Orientation.Backward 会改变。而且,如果 camMemory.Y 发生变化(我假设这是关闭输入),相机将自行运行。
请注意缩放偏移向量如何影响“气泡”大小。
关于c# - 第三人称相机的 y 轴未正确围绕玩家呈球形 - 逻辑问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239806/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!