Rust
54 ratings
Кинематографические кадры в Rust. Как их сделать?
By ็
Возможно, вы натыкались на контент с кинематографичными кадрами. И возможно у вас появилось желание сделать такие же кадры в Rust. Какой бы ни была причина, в этом руководство будет рассмотрено все. Я составил информацию таким образом, который, по моему мнению является лучшим и наиболее логичным способом изучения информации.
Вся информация взята из открытых источников.
   
Award
Favorite
Favorited
Unfavorite
Важная информация!


В этом руководстве много биндов клавиш. Если у вас уже есть бинды, которые используются, то я советую вам перейти на официальное вики разработчиков [wiki.facepunch.com], чтоб узнать как добавить несколько действий на клавишу.

Запись
Запись в Rust - это то, из чего вы можете создавать кинематографические композиционные кадры.
Как это работает? Записывается все в радиусе действия человека, записывающего демо.

Все, что происходит в режиме реального времени во время этой записи, будет сохранено
в файле.
Чтобы записать видео, вы должны либо быть администратором. Либо иметь достаточно высокий уровень прав на сервере, чтобы иметь возможность записать видеоряд. Используйте следующую команду в консоли для записи видео:


record <Название записи>

Как только видео будет успешно записано, в правом верхней части экрана в меню появится новый заначёк. При нажатии на который откроется новое интерактивное меню доступных видео.

Важно: на данный момент видеозаписи находятся не в стабильной версии, возможны редкие вылеты, но это происходит очень редко.







Воспроизвести, пауза, перемотка назад и быстра перемотка вперёд
Данные бинды можно использовать и настроить для перемотки назад, паузы, возобновления и быстрой перемотки вперёд на временной шкале видеозаписи.
bind <клавиша> demo.skip <число с минусом>

Бинд перематывает видео назад в секундах. Я использую -5, -10 или -15
Для уточнения цифра — это время перемотки видео назад на кол-во секунд после минуса.

bind <клавиша> ~demo.pause;demo.resume

Этот бинд возобновляет или ставит на паузу видео.

bind <клавиша> demo.skip <число>

Бинд перематывает видео вперёд в секундах. Я использую 5, 10 или 15
Для уточнения цифра — это время перемотки видео вперёд на кол-во секунд.
Другие не маловажные команды
demo.timescale <число>

Изменяет скорость воспроизведения видео. Полезно если вы хотите сделать замедленное видео.
Значение по умолчанию: 1.0

bind <клавиша> ~togglenvg 0;togglenvg 1

Переключает эффект "ночного зрения" во время воспроизведения демонстрации

demo.playernames

Выводит список всех игроков, которых видно на видеозаписи, а так же включая их SteamID
Свободная камера
Свободная камера - это виртуальная камера, которая может перемещаться во всех направлениях без столкновений. Это главный инструмент, используемый для создания всех этих потрясающих кинематографических снимков.
Следующие бинды и команды весьма важны.


bind <клавиша> debugcamera


Настройки свободной камеры
camspeed <число>
Задаётся скорость камеры.

camlookspeed <число>
Задаётся величина, на которую ваша мышь должна переместиться, чтобы осмотреться.

camlerp <число>
Задаётся величина между двумя точками. На практике делает камеру более плавнее, если выставить низкое значение.

debugcamera_fov <число>
Задаётся FOV камеры, чем больше значение, тем больше объектов камера захватит, а чем меньше значение соответственно меньше объектов. (Так же можно регулировать данное значение с помощью плюса и минуса на нонпаде)

camzoomlerp <value>
Тот же эффект, что и в предыдущей команду lerp, но конкретно при масштабирование.

Сохранение позиции свободной камеры
Следующие бинды сохранят позицию, и все настройки камеры до этого.

bind <клавиша> debugcamera_save <название>

Бинд сохраняет всю информацию, которая была привязана на камеру.

bind <клавиша> debugcamera_load <назваине>

Бинд загружает, позицию и настройку камеры, которую вы сохранили ранее.

Данные бинды очень полезны с сохранением позиции, если вы используете одновременно с перемоткой вперед и назад видеоряда.
Используя несколько сохранений вы можете создавать более сложные сцены.
Привязка камеры
Привязка камеры - это привязка камеры к заданному объекту. В этом случае вам нужно будет посмотреть на объект, а замет нажать следующий бинд, чтоб он был привязан.

bind mouse2 +attack3;+debugcamera_targetbind

Бинд допускает "привязку" для объекта, но так же сохраняет текущее привязку по умолчанию к половине стеков.
Привязка по "скелету"
bind mouse0 +attack;+debugcamera_cyclebone

Этот бинд позволяет быстро переключатся между доступными "костями" для данного объекта, но так же сохраняется существующая привязка по умолчанию для атаки(левая кнопки мыши).

В качестве альтернативы используйте следующую команду, для привязки на определённой кости:


cambone <название кости>
Фокусы с камерой
bind <клавиша> +debugcamera_dollyback

bind <клавиша> +debugcamera_dollyforward

Две привязки (на основной объект) позволяют изменить расстояние между объектом и камерой.
Направляющая камеры
bind <клавиша> ~debugcamera_guide 0;debugcamera_guide 1;debugcamera_guide 2;debugcamera_guide 3;debugcamera_guide 4
Привязка переключает несколько направляющих камеры в последовательном порядке. Включая правило третей, настраиваемое соотношение сторон, золотое сечение и центральную точку.

Данная привязка - это то, чем я пользую постоянно.
HUD Камеры
bind клавиша ~client.showcaminfo 1;client.showcaminfo 0

Бинд переключает дисплей камеры. Это очень мощный инструмент, так как он сообщает вам всю информацию, связанную с камерой. Это означает, что вы, как создатель, можете изменять параметры для данного снимка быстрым и более лёгким способом.

Тут показана обычная информация для камеры откладки.

А тут показано свойства недавно реализованного режима для камеры откладки, который имитирует реальные камеру. (camphysical (1/0))
Глубина резкости
Глубина резкости — это расстояние между ближайшими и самыми удалёнными объектами в сцене, которое выглядит приемлемо четки. Пример можно увидеть ниже.


bind <клавиша> ~dof 0;dof 1
Бинд включает и выключает глубину резкости по желанию

bind <клавиша> ~dof_debug 0;dof_debug 1
Бинд переключает отладочную версию глубины резкости, чтобы легко увидеть, насколько глубок или неглубок; близок или далек диапазон фокусировки.

dof_focus_dist <значение>

Эта команда задаёт значение фокуса на расстояние
Источники информации
В ходе написания данного руководства были использовано много источников информации:

Официальное руководство по свободной камере [wiki.facepunch.com]
Официальное руководство записи видеоряда [wiki.facepunch.com]
Официальное руководство глубине резкости [wiki.facepunch.com]
Официальное руководство по командам свободной камеры [wiki.facepunch.com]
...
Если вы нашли какие-то ошибки или хотите дать новую информацию по руководствам, обращайтесь в личные сообщения.

Ещё мои руководства:


Rust
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3007793767
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2845070801
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2917241818


Dota 2
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3176149469


3 Comments
 [author] 16 Dec, 2024 @ 6:36am 
В Rust файлы .shot обычно не используются для видео, но если вы получили .shot в результате записи видео через дебаг-функции, попробуйте такие шаги:

1.Переименуйте файл:
Иногда .shot является просто нестандартным расширением. Попробуйте переименовать файл, например, в .mp4 или .avi, и откройте его с помощью медиаплееров, таких как VLC или PotPlayer.
2. Используйте FFmpeg:
Если .shot — это видеофайл, вы можете переконвертировать его с помощью FFmpeg
15 Dec, 2024 @ 11:55am 
Подскажите почему у меня в дебак камере файл записывается в формате .shot Как быть что его открыть или как его перекапелировать в mp4
Autumn 16 Jan, 2023 @ 8:46am 
nice