Найти в Дзене
Игровой движок Godot engine

№59. Вьюпорт.

Оглавление

В данной статье рассмотрим такую штуку как Viewport.

Вьюпорт используется для вывода изображения на экран. При создании проекта в remote видно что он является рутовой нодой. И собственно в нем весь и рисуется.

Обычно дополнительные вьюпорты используются для отрисовки новых окон , допустим миникарты, или разделенного экрана. Можно рисовать окно с 3Д графикой внутри 2Д окна к примеру.

Вьюпорт рисует только то, что находится ниже по иерархии.
В каждом вьюпорте может находится своя собственная камера.

Для того чтобы добавить новый вьюпорт, надо сначала подвесить ноду ViewportContainer и уже в неё заводить сам вьюпорт.

Проект с миникартой.

В качестве сцены у нас будет спрайт который ездит по кругу. Назовем её «mm»

-2

Создадим другую сцену, в которую в качестве инстанса положим сцену «мм».И соберем иерархию для нового вьюпорта.

Выглядит это примерно вот так :

-3

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

Важно выставить одинаковые размеры контеинеру и вьюпорту, а так же указать размеры для инстанса сцены «мм»

Если кто не понял — инстанс тут только для того чтобы изменения в основной сцене обновлялись везде.

Запускаем :

-4

И вуаля, наша миникарта показывает всё то, что происходит в основной сцене.

Проект на два вьюпорта.

Теперь чуть усложним задачу, и выведем на одном экране два вьюпорта с разными сценами в каждом.

Для начала создадим сцену «А» и сцену «Б». Это будут левая и правая сцена соответственно.

Я сделал тоже самое вращение, только с разными спрайтами и в разном направлении.

Структура проекта будет выглядеть примерно так:

-5

Ну и результат :

-6

Два вьюпорта с разными сценами проигрываются в одном общем вьюпорте.