首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按其大小缩放滚珠控制装置

按其大小缩放滚珠控制装置
EN

Stack Overflow用户
提问于 2017-02-23 16:15:45
回答 1查看 98关注 0票数 3

我是编辑滚动球的例子地图从虚幻(在虚幻引擎)。我把它改了,所以我的球长了,融化了(这是个雪球),变大了,质量也变了。

我的问题是控制它。示例地图通过增加扭矩来移动球。我的问题是,我的质量变化很多,所以我需要一个扭矩

我的问题是,我的球似乎积累扭矩和旋转很多(我增加了很多摩擦球,它没有帮助,它只是移动了问题一点)。举个例子,如果我按左边一段时间,它就会向左转。如果我按右边,它就会向右转。但是当我停止向右按压时,它又旋转又向左转。

这是我目前的代码:

代码语言:javascript
复制
void ASnowballBall::MoveRight(float Val)
{
    const FVector Torque = FVector(-1.f * getNewTorque(Val), 0.f, 0.f);
    Ball->AddTorque(SpringArm->GetComponentRotation().RotateVector(Torque));
}

void ASnowballBall::MoveForward(float Val)
{
    const FVector Torque = FVector(0.f, getNewTorque(Val), 0.f);
    Ball->AddTorque(SpringArm->GetComponentRotation().RotateVector(Torque));
}

float ASnowballBall::getNewTorque(float Val)
{
    return (Val * RollTorque * (log2(Ball->GetMass()))) / 10000;
}

注:原木是一个测试,以缓慢增加扭矩与质量。它一点也不好使。现在我正在使用return Val * RollTorque,但它几乎同样糟糕。

控制是可怕的,我想知道如何修复它。如果移除扭矩会更好,我会改变它。我只是想要一个反应灵敏的控制,这是有趣的,在那里,球员仍然有一个大小的感觉(大比小慢)。

PS:我原来的体重大约是500公斤,最多可以达到20000公斤(这是一个益智游戏)。我没有设定最初的质量,它是由不真实的相对于它的大小设定的。不过,我可以改变大规模的规模。

EN

回答 1

Stack Overflow用户

发布于 2022-04-05 15:27:09

您可以尝试使用AddForce而不是AddTorque。所以球的速度会被修改成这样:

代码语言:javascript
复制
void APlayerBallBearing::Tick(float deltaSeconds)
{
    Super::Tick(deltaSeconds);
    
    BallMesh->AddForce(FVector(InputLongitude, InputLatitude, 0.0f) * ControllerForce * BallMesh->GetMass());
}

InputLongitudeInputLatitude是用户在当前框架中按基本方向运动的值,它们对应于您的MoveForwardMoveRight值。

控制器力是你需要调整的东西,以便为你的球运动找到正确的值。我的价值至少为600.0f,我开始有“体面”的行为。

我无法帮助你们的质量,尽管你们需要自己去尝试,我使用的球网的默认质量是110。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42420938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档