Я пробовал уже довольно давно, и я не могу найти ничего о камерах третьего лица. Я просто хочу сделать простую камеру третьего лица, но мне становится сложно, потому что я нахожусь в 3d. Пока я могу сделать камеру на 1 самолете, но после этого ее испортили. Я использую libgdx с ModelInstances, если кто-то знает libgdx.
Мне не нужно, чтобы вы передавали мне код для этого, мне просто нужна помощь в том, как написать это с информацией, которую я имею. Я знаю скорость в xy и z, вращение в xyz объекта и его положение в xy z. Я могу заставить камеру смотреть на объект, поэтому все, что мне нужно сделать, это расположить его позади и над ним независимо от ориентации на объект. Любые ссылки или объяснения приветствуются :)
Решение:
Xoppa опубликовала в комментариях ссылку на его chaseCam, которая расширяет перспективную камеру, и это потрясающе. Поскольку это был не ответ, я мог отметить его как принятый, но он сделал то, что мне было нужно. Heres ссылка chaseCamera.java Все кредиты Xoppa для ответа, просто чтобы было легче найти.
Я бы сделал на каждом кадре после обновления позиции игрока:
camera.up.set(0,1,0); //Not sure if this is necessary.
//Making sure up is always up after
//last frame lookAt() call.
camera.postion.set(player.position)
.add(-UNITS_BACK, UNITS_UP, 0)
.rotate(Vector3.UP, player.angle);
camera.lookAt(player.position);
camera.update();
где player.angle
- количество градусов против часовой стрелки, игрок player.angle
к оси X.
Это простая отправная точка. Вероятно, вы захотите сгладить движение, ограничив скорость, с которой камера может двигаться, или давая ей интерполированное движение второго порядка в это целевое положение и направление.