5

ヒーローのレートと高さに基づいて、常に3つのカメラ(中央、上、下と呼びます)を動的にブレンドする方法を見つけることができません。

ヒーローをフォローするとき、中央の vCam がメイン/ベースの vCam です。ヒーローの高さに基づいて上下の vCam を比例的にブレンドしたいと思います。

プレイヤー/ヒーローは高さの間をすばやく移動できるため、ブレンドは簡単に重み付けする必要があります。これは Cinemachine ブレンドの自然な部分です。そして動作します。しかし、私にとっては、高さに基づく一定の動的ブレンドではなく、Cinemachine ブレンドについての現在の理解では、切り替えのようなものです。

4

2 に答える 2

4

上部と下部のカメラを取り外して、中央のカメラのみで独自の「手動ブレンディング」を行うことを検討してください。最近、私は Cinemachine を使用しており、あなたが望む結果と似たようなことをしています。

カメラをどのように動作させたいか正確にはわからないので、私が行った手動ブレンディングの一部をお見せします。

//Camera Direction
//If I´m not in ground, and I've been on the air for a specific time
if (!onGround && timeSinceLastJump > cameraDelay)
{
   //Moves the offset of the camera down to the maximum allowed y offset (In your case it would be where the lower camera is)
    if (vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y >= maxYOffset)
        vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y -= offsetYSensivity;
    //It also zooms out up to a specified level
    if (vcam.m_Lens.OrthographicSize < maxFOV)
        vcam.m_Lens.OrthographicSize += camSensivity;
}
else
{
    //Same but upwards
    if (vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y <= minYOffset)
        vcam.GetCinemachineComponent<CinemachineTransposer>().m_FollowOffset.y += offsetYSensivity;
    //Same but zooming in
    if (vcam.m_Lens.OrthographicSize > minFOV)
        vcam.m_Lens.OrthographicSize -= camSensivity;
}

このようにして、カメラ ロジックを適切に設計しなければならないという犠牲を払って、条件でプレーヤーの高さを使用できます。

たぶん、これはあなたがやりたいことをするのに何らかの形で役立ちます.

于 2019-05-20T10:50:26.903 に答える