Динамическое управление Unity Cinemachine vCams Blends: КАК? - PullRequest
5 голосов
/ 13 мая 2019

Я не могу найти, как постоянно динамически смешиваться между 3 камерами (я называю их средняя, ​​верхняя и нижняя ), основываясь на скорости и росте героя, постоянно.

Следуя за героем, средний vCam является основным / базовым, я хотел бы пропорционально смешивать верхние и нижние vCam в зависимости от высоты героя.

Игрок / герой может быстро перемещаться между высотами, поэтому смесь следует взвешивать с легкостью.Что является естественной частью смесей Cinemachine.И работает.Но мне кажется, что это переключение при моем нынешнем понимании смесей Cinemachine, а не постоянное динамическое смешивание, основанное на росте.

Ответы [ 2 ]

4 голосов
/ 20 мая 2019

Вы можете рассмотреть возможность удаления верхней и нижней камеры и выполнить свое собственное «Ручное смешивание» только с средней камерой. Недавно я использовал 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;
}

Таким образом, вы можете использовать свой рост игрока в условиях, за счет необходимости хорошо продумывать логику камеры.

Может быть, это каким-то образом поможет вам делать то, что вы хотите.

0 голосов
/ 17 мая 2019

Из того, что я помню, вы можете определить стиль наложения в параметрах наложения Cinemachine. Из описания кажется, что он установлен на «Cut», когда вы, вероятно, хотите что-то похожее на EaseIn / EaseOut. Он даже позволяет вам определять собственное сочетание между камерами, если параметры по умолчанию у вас не работают.

Подробнее смотрите в документации .

...