Прикрепленная запись

Со мною можно договориться о бесплатной онлайн-консультации и/или платных онлайн-уроках по следующим темам (пишите на электронную почту vbgtut@ya.ru):

– Программирование на языке C++ для начинающих (в ОС «Windows»);
– Программирование на языке PowerShell для начинающих (в ОС «Windows»);
– Система управления версиями «Git» (в ОС «Windows») и веб-сервис «GitHub» для начинающих.

Списки моих постов в ЖЖ:
– по учебнику Лафоре (ООП в C++) (120)
– по 1-й главе учебника Таненбаума (компьютерные сети) и 37 заданиям к ней (64-)
– по учебнику learn.javascript.ru: 1-я часть (49), 2-я часть (82), 3-я часть (25-)
– по работе в «Windows PowerShell», в «Windows Terminal» (59)
– по системе контроля версий «Git» и по веб-сервису «GitHub» (53)
– по редактору «VS Code» (73-)
– по проверке вёрстки на HTML+CSS+JavaScript (14-)
– по стеку технологий «Windows + IIS + MySQL + PHP» (33)
по инструментам для обучения онлайн, по интернету (12-)

Мои инструменты (44)
HTML-cниппеты для ЖЖ (28)
Музыка для работы, учебы, чтения (46)

Unity: открытие проекта, интерфейс редактора

Начало: «Установка игрового движка Unity».

В предыдущем посте я описал, как установить программы «Unity Hub» и «Unity Editor». Оказалось, что через программу «Unity Hub» мы не только манипулируем составом установленных для работы с движком «Unity» программ, но также и работаем с проектами. После установки двух указанных программ на моем рабочем столе появились два ярлыка, но оба они запускают программу «Unity Hub». Поэтому непонятно, зачем нужен второй ярлык.

Манипулирование составом установленных программ происходит в разделе «Installs» программы «Unity Hub» (меню со списком названий разделов расположено слева в окне программы «Unity Hub»). Я показывал этот раздел на иллюстрации в предыдущем посте.

Начало обучения, открытие готового учебного проекта

Для работы с проектами в программе «Unity Hub» есть раздел «Projects». Вот как он у меня сейчас выглядит:

unity-hub-projects.png

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

Вероятно, новый проект можно создать с помощью кнопки «New Project» в правом верхнем углу окна программы «Unity Hub» (см. иллюстрацию выше). Но я этого пока не пробовал делать. По траектории обучения, которой я сейчас следую, предполагается, что вы загрузите готовый учебный проект (что я и сделал) и сначала будете изучать на его примере приемы работы с интерфейсом и приемы работы с инструментами редактора.

Готовый учебный проект я загрузил из обучающего материала «Open the Unity Essentials project» (открытие учебного проекта обучающей траектории «Unity Essentials»). Файл-архив имеет название «Essentials-Download-U6.zip» и размер всего лишь чуть менее 95 Мб. Однако, после добавления проекта в программу «Unity Hub» (это делается с помощью кнопки «Add» в верхнем правом углу окна, см. иллюстрацию выше) он занял на диске место размером более 2 Гб. Так что разработка игр — дело затратное в плане используемого пространства на диске.

Открыть добавленный в программу «Unity Hub» проект можно, просто дважды щелкнув на строку соответствующего проекта в списке проектов в разделе «Projects» программы «Unity Hub». Процесс открытия может занять некоторое время, так как редактор (движок) «Unity» — программа большая и тяжелая.

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

Например, я загрузил и добавил готовый учебный проект, созданный в редакторе версии, меньшей, чем редактор, который установлен у меня. При работе с обучающим материалом я выбрал версию этого материала для движка версии «Unity 6». То есть главный номер версии проекта и установленного у меня движка совпадали. В этом случае преобразование в сторону увеличения версии возможно и я выбрал вариант, при котором редактор выполнил эту операцию автоматически (это заняло около десяти минут). Преобразование в сторону уменьшения версии проекта автоматически не может быть выполнено, но мне оно и не понадобилось. Преобразование версии выполняется только при первом открытии добавленного проекта. После этого версии проекта и движка совпадают и проблем не возникает.

Начало изучения интерфейса редактора «Unity»

Вот как у меня выглядит окно редактора «Unity» при работе с готовым учебным проектом из обучающей траектории «Unity Essentials» (картинку в оригинальном размере можно открыть, щелкнув на нее мышью):

unity-editor-interface.png

Вообще состав элементов в окне редактора «Unity» можно настроить по-своему, переставляя части окна местами, убирая ненужные или добавляя нужные части. Но в начале обучения я решил стараться не отходить от настроек по умолчанию.

Окно редактора «Unity» на иллюстрации выше разделено на четыре главные части. В центре находится окошко со сценой игры, над которой в данный момент идет работа. В самой первой сцене, с которой мы работаем, присутствует большая платформа, на которой расположены разные объемные геометрические фигуры: кубы, проход, лестница, звезда и т.п. Также здесь присутствует персонаж — робот, им может управлять игрок, если запустить тестовый игровой режим. В обучающем материале рассказано, как работать с объектами на сцене, как менять свойства и позиции объектов. На сцене есть камера — это точка, из которой смотрят глаза игрока в начале игры. Звезда расположена рядом с лестницей, но робот не может до нее допрыгнуть. В процессе изучения первого учебного материала студент передвинет звезду ближе, чтобы робот в игре мог до нее допрыгнуть с лестницы и «забрать» ее.

Под окошком со сценой игры расположена часть окна, в которой можно манипулировать папками проекта и сценами, входящими в проект. Здесь можно выбрать нужную сцену, которую предполагается рассматривать и редактировать.

Слева в окне редактора «Unity» можно работать с иерархией (списком) объектов, расположенных на открытой в данный момент сцене.

Справа в окне редактора «Unity» можно работать со свойствами выбранного в данный момент объекта на сцене. Эту часть еще называют «инспектором свойств объекта» или просто «инспектором».

Заключение

В окне редактора «Unity» есть большое количество разнообразных дополнительных панелек и мелких кнопочек. Начинающим их трогать не рекомендуется. Ими можно пользоваться, только если вы точно знаете, зачем вы это делаете и каково назначение этих инструментов. Детей редко обучают работе с программами, подобными редактору «Unity», так как они не могут удержаться от нажимания разных кнопочек, жмут куда попало, а потом отстают от группы, так как их редактор начинает работать не так, как у всех. При этом у учителя часто не находится времени, чтобы вернуть настройки редактора к настройкам по умолчанию (если учитель будет отвлекаться на эту работу, то основная часть группы начнет скучать и хулиганить, так как им будет нечем заняться).

Я уже достиг своей основной цели — получил начальное представление о движке «Unity» и приемах работы с ним. Возможно, буду продолжать изучение обучающей траектории «Unity Essentials», так как это довольно интересное занятие. Мой текущий прогресс:

expa.png

Установка игрового движка Unity

Студент из группы детей 10-13 лет, которую я обучаю уже второй год, попросил помочь ему разобраться в игровом движке Unity. По их программе они будут проходить создание компьютерных игр на этом движке только через три года (на пятом году обучения). Я решил потихоньку сам разбираться с этим движком и параллельно ему помогать.

Выбор бесплатного тарифного плана

Unity — это на сегодня один из самых популярных игровых движков для создания компьютерных игр. Очень часто его даже ставят на самое первое место во всевозможных рейтингах. Естественно, студентов и преподавателей в первую очередь интересует наличие бесплатного варианта работы с этим движком, и таких вариантов имеется несколько.

Официальный сайт: https://unity.com/ru
Википедия:
https://ru.wikipedia.org/wiki/Unity_(игровой_движок)
https://en.wikipedia.org/wiki/Unity_(game_engine)

Движок был создан в 2005 году и развивается американской компанией «Unity Technologies» (хотя изначально компания была создана в Дании и имела другое название). На данный момент компания предоставляет разработчикам, планирующим использовать их движок, семь тарифных планов, в том числе четыре бесплатных:

https://unity.com/ru/products

В таком количестве бесплатных тарифных планов легко запутаться. Я выбрал бесплатный тарифный план «Unity Personal», этот план предназначен для частных лиц и небольших организаций с доходом и привлеченными средствами менее 200 тысяч долларов США за последние 12 месяцев:

https://unity.com/ru/products/unity-personal

Бесплатные тарифные планы обычно имеют разнообразные ограничения по сравнению с платными. Очевидно, они должны быть и при работе с движком Unity. Но я пока ничего не знаю о них. На данный момент моя цель — познакомиться с основами работы этого движка. Если я в процессе ознакомления выявлю какие-либо неудобные ограничения, то обязательно напишу о них позже.

Регистрация на сайте, обучающий раздел

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

https://learn.unity.com

Если вы зарегистрируетесь на сайте и зайдете в этот раздел под своим аккаунтом, то на сайте будет сохраняться ваш прогресс в обучении (список пройденных и начатых курсов; места, на которых вы остановились в незаконченных вами курсах), а также за прохождение курсов вам начисляется определенное количество очков «опыта». С достаточным количеством «опыта», полученного за прохождение обучающих курсов на сайте, можно попытаться устроиться на работу в компании, занимающиеся разработкой компьютерных игр.

При регистрации на сайте понадобится указать и подтвердить адрес электронной почты. Впрочем, никаких трудностей при регистрации я не испытал. В документации аккаунт зарегистрированного иногда называют «Unity ID», а процесс регистрации — «получением Unity ID».

Загрузка и установка

В качестве инструкции по загрузке дистрибутива и установке движка можно использовать один из бесплатных обучающих курсов для начинающих, который называется «Install the Unity Hub and Editor» (по-русски «Установите программы Unity Hub и Unity Editor»):

https://learn.unity.com/tutorial/install-the-unity-hub-and-editor

Я пишу здесь про установку движка на настольный персональный компьютер (десктоп). В вышеупомянутом обучающем курсе есть ссылка на системные требования к компьютеру, на который вы устанавливаете движок. Очевидно, что перед установкой движка имеет смысл проверить, удовлетворяет ли ваш компьютер этим требованиям.

Отмечу некоторую путаницу в нумерации версий движка. До 2017 года выпускались версии движка, имеющие обычный номер: с версии 1.0 до версии 5. Затем в компании-разработчике движка решили перейти на ежегодную нумерацию, после чего выходили версии с номерами от 2017 по 2023. С 2024 года компания-разработчик движка возвратилась к прежней нумерации и выпустила версию движка с номером 6. Таким образом, самой свежей на сегодня версией движка является Unity 6, эта версия появилась 17 октября 2024 года. Это важно, так как в каждом обучающем курсе на сайте можно выбирать версию курса в соответствии с используемой вами версией движка (там есть список версий, из которого вы выбираете; при этом в этом списке может не быть самой свежей на сегодня версии Unity 6, в этом случае следует выбирать самую последнюю версию из имеющихся в списке версий).

По вышеупомянутому курсу-инструкции при первоначальной установке движка следует установить две программы: «Unity Hub» и «Unity Editor». «Unity Hub» — это небольшая программа, являющаяся вашим помощником по работе с официальным сайтом и по установке среды разработки. «Unity Editor» — очень большая программа — собственно, среда разработки (редактор).

Сначала следует скачать дистрибутив программы «Unity Hub». Это можно сделать с соответствующей страницы сайта:

https://unity.com/download

Поскольку движок Unity является кроссплатформенным, на вышеупомянутой странице есть три ссылки для скачивания: для операционных систем Windows, Linux и macOS. Я скачал дистрибутив программы «Unity Hub» для систем Windows. Файл дистрибутива называется UnityHubSetup.exe и имеет размер 192 Мб. После установки выяснилось, что текущая версия программы «Unity Hub» — 3.11.0.

При запуске программы «Unity Hub» потребуется ввести логин и пароль, под которыми вы ранее зарегистрировались на сайте. После входа в программу «Unity Hub» вы сможете из нее установить среду разработки (редактор) — программу «Unity Editor». При этом потребуется выбрать версию устанавливаемого движка (как я писал выше, самая свежая на данный момент версия — 6). Как я понял, есть возможность установить одновременно несколько версий движка. Но начинающим я этого делать не рекомендую, поскольку программа «Unity Editor» занимает много места на диске и долго скачивается. У меня скачивание программы «Unity Editor» заняло около двух часов, программа заняла на диске 7,22 Гб.

Вот как у меня выглядит окно программы «Unity Hub» после установки программы «Unity Editor» версии 6:

unity-hub.png

Как видно на иллюстрации выше, полная версия установленной у меня программы «Unity Editor» — 6000.0.35f1. Пометка «LTS» расшифровывается как «Long Term Support» — это известный термин в области распространения программ. Такая пометка означает, что это стабильная версия программы, которая будет поддерживаться компанией-разработчиком долгое время (точный срок можно найти в документации).

Продолжаю изучение

Пока что я еще не начал изучение работы в программе «Unity Editor». Продолжаю обучаться. В обучающем разделе сайта существуют так называемые «траектории» (pathways) обучения. Это сборники курсов для обучающихся разного уровня:

https://learn.unity.com/pathways

Для начинающих с нуля есть бесплатная траектория обучения «Unity Essentials», изучение которой рассчитано на 2 недели. Траектория обучения разбита на так называемые «задания» (mission). Как я понимаю, это что-то вроде уроков. Первое задание называется «Editor Essentials», на его изучение отводится 2 часа 10 минут. Это первое задание состоит из семи так называемых «обучающих материалов», посвященных изучению интерфейса программы «Unity Editor» и созданию первых очень простых проектов.

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

Онлайн-игра «Quick, Draw!» от Google

Недавно узнал о существовании онлайн-игры «Quick, Draw!» (по-русски дословно «Быстро, рисуй!») от компании Google (подразделение «Google Labs»):

https://quickdraw.withgoogle.com

Для игры достаточно иметь браузер и доступ в интернет. Одна игровая сессия состоит из 6 раундов по 20 секунд и занимает несколько минут, так что для ознакомления с игрой не потребуется более 5 минут. Я играл с настольного компьютера и для рисования пользовался компьютерной мышью. Интерфейс программы доступен на разных языках, в том числе на русском языке. Язык интерфейса определяется автоматически, но можно и переключить вручную в подвале веб-страницы игры.

Это один из очень редких внятных примеров использования современного «искусственного интеллекта» («нейронной сети»).

Суть игры в том, что программа дает вам задание, что нарисовать. Например, «нарисуй носорога». Вы нажимаете кнопку «Начать» (или «ОК») и рисуете тут же, в окне браузера, с помощью компьютерной мыши. На рисунок отводится 20 секунд, время начинает отсчитываться после нажатия кнопки «ОК». Рисование происходит нажатием левой кнопки мыши, рисуем указателем мыши на экране. Можно рисовать только черной линией. Стирательной резинки (ластика) не предусмотрено. В результате получается быстрый набросок.

Пока вы рисуете, программа пытается угадать, что вы рисуете. Программа делает предположения, выводя свои догадки текстом на экран, а также дублируя голосом (в том числе по-русски, если включен интерфейс на русском языке). Если у вас получится быстро изобразить требуемое и догадка программы совпадет с вашим заданием, то раунд заканчивается вашей победой. Если у вас не получается, программа не сможет догадаться и пройдет 20 отпущенных секунд, раунд заканчивается вашим поражением. Всего в одной игровой сессии 6 раундов, в каждом раунде — своё задание.

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

Моя очередная попытка:

quick-draw.png

Естественно, Google получает свой профит: искусственный интеллект упражняется и становится всё лучше. Наработанный таким образом опыт Google может использовать в других своих приложениях. Кроме этого, все рисунки сохраняются в базе данных компании Google; в результате эта база данных у них уже довольно большая, и рисунки из этой базы данных Google тоже может использовать в других своих приложениях.

Игра залипательная и полезная для тех, кто хочет немного научиться рисовать. Очень хорошо заходит первоклассникам. Многие из детей, оказывается, уже знакомы с этой игрой. Она появилась в 2016 году.

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

Википедия:

https://ru.wikipedia.org/wiki/Quick,_Draw!
https://en.wikipedia.org/wiki/Quick,_Draw!

Видеоредактор CapCut, версия для настольного ПК

Так получилось, что в прошлом году я некоторое время занимался изучением создания видеороликов, выполнением видеомонтажа и публикацией видеороликов на видеохостингах. Изучение это было поверхностным, но всё же. Я познакомился с рядом бесплатных программ и веб-сервисов, которые можно использовать для видеомонтажа. В итоге для видеомонтажа мы в основном используем бесплатный видеоредактор CapCut. В этом посте будет изложена некоторая информация про эту программу для тех, кто только начинает изучать данную тему.

Логотип программы:

capcut-logo.png

Название, общая информация

CapCut (википедия, на английском) — китайская программа, выпущенная в 2019 году компанией-разработчиком известного видеохостинга TikTok. Можно сказать, программа CapCut выросла из видеохостинга TikTok, на котором приобрела функционал и популярность среди пользователей. Название «CapCut» составлено из двух английских слов «capture» и «cut» (два известных термина в области фотографии, создания видео и видеомонтажа).

Название «CapCut» произносится как «кэ́п-кат» с ударением на первый слог. В этом можно убедиться на официальном канале программы на видеохостинге YouTube (если, конечно, вам удастся обойти «замедление» этого видеохостинга в России; но, кажется, решение этой задачи не вызывает особых затруднений у желающих это сделать).

Официальный сайт, справочные материалы и проблема доступа к сайту

Адрес официального сайта программы: https://www.capcut.com. На данный момент при отправке HTTP-запроса по этому адресу я получаю HTTP-ответ с кодом состояния 451 (недоступно по юридическим причинам). Я пока не смог найти информацию о том, кто виновник этого безобразия. Сайт недоступен только для России (вероятно, «юридические причины» как-то связаны с Россией). Для иностранных пользователей официальный сайт доступен. Способы обхода этого препятствия — те же, что и для доступа к видеохостингу YouTube. Я для этого пользуюсь браузером «Tor Browser».

После установки программы имеет смысл начать изучение интерфейса со следующей статьи:
https://www.capcut.com/resource/how-to-use-capcut-on-pc (на английском)
https://www.capcut.com/ru-by/resource/how-to-use-capcut-on-pc (на русском)

Вообще для освоения программы на сайте есть соответствующий раздел:
https://www.capcut.com/resource/ (на английском)
https://www.capcut.com/ru-by/resource/ (на русском)

Переключение интерфейса и материалов сайта на русский язык можно выполнить в подвале любой страницы сайта. К сожалению, качество перевода статей на русский язык оставляет желать лучшего (похоже, перевод выполнен средствами автоматизированного перевода). Поэтому я рекомендую читать статьи на этом сайте на английском языке. Интерфейс программы CapCut тоже доступен на разных языках, в том числе и на русском (переключение языка интерфейса можно выполнить из меню программы).

Не забывайте и уже упомянутый ранее официальный канал программы на YouTube:
https://www.youtube.com/c/CapCutofficial (на английском)

Версии программы и установка программы

Изначально программа появилась в виде мобильного приложения. Это приложение стало очень популярным, оно доступно как на мобильных устройствах под управлением системы iOS, так и на мобильных устройствах под управлением системы Android. Позже появились версии программы CapCut для настольных компьютеров: под управлением операционной системы macOS и под управлением операционной системы Windows. Кроме этого, существует веб-версия программы CapCut, доступная онлайн из браузера. И существует платная версия, которая называется «CapCut Pro».

Программу можно установить с ее официального сайта. Также ее можно установить из магазина приложений Microsoft Store.

Соображения по поводу популярности этой программы

Мы используем программу CapCut при обучении в нашей компьютерной академии детей, начиная с первоклассников. Многие из них бывают уже хорошо знакомы с мобильной версией этой программы. Видеоредактор CapCut популярен среди детей из-за видеохостинга TikTok, который, как я уже писал выше, и породил программу CapCut. При этом интерфейс версии программы для настольных компьютеров довольно сильно отличается от интерфейса программы для смартфонов. Для детей переход с мобильной на настольную версию не является достаточно легким.

Кроме связи с видеохостингом TikTok преимуществом программы CapCut является то, что она не накладывает в экспортированном файле с видео никаких видимых водяных знаков на видео. Мы рассматривали еще возможность использования видеоредактора «Wondershare Filmora», но отказались от него в пользу программы CapCut именно потому, что «Wondershare Filmora» накладывает водяные знаки на итоговое видео, а CapCut — нет.

Бодрый рок с YouTube, копирую на Rutube

2 и 3 января в пост внесены исправления и дополнения.

Выдалось несколько дней для отдыха в связи с праздниками.

Говорят, как встретишь Новый год, так его и проведешь. Я лег спать 31 декабря в 22:00. Разбудила меня в полночь целая какофония звуков. От соседей сверху раздавались женские ахи под мерное поскрипывание кровати. Соседи сбоку звенели бокалами, произносили тосты и закусывали. Высыпавшие на улицу граждане пускали фейерверки и весело кричали, играя в снежки.

Я тоже решил немного отложить сон и в который раз начал читать китайский веб-роман (новеллу, ранобэ) «Аватар короля». Добраться до конца всех этих аниме, манг (манхв) и ранобэ у меня никогда не получается, но начало нередко бывает увлекательным. Собственно, 99.9 % авторов сегодня успевают в начале произведения изложить всё, что у них накопилось в голове, а после этого вместо того, чтобы закончить, начинают что-то коряво изобретать, выжимать выжатое, тянут резину и сочиняют рояли в кустах. Так что я быстро теряю интерес, а полюбившиеся начала некоторых избранных произведений перечитываю (пересматриваю) много раз, воображение помогает дописывать за авторов произведение в глубину.

Иногда под текст удается удачно подобрать музыку на YouTube. В этот раз повезло — попался бодрый рок (без слов, только музыка), который хорошо идет фоном для «Аватара короля»:

https://www.youtube.com/watch?v=7A-DXuMHUvw
Feel-Good Funk Rock Jam | Instrumental Beats to Lift Your Mood
канал: Lo‐Fi Hikari

Стало интересно, сколько времени займет перекинуть этот видеоролик на Rutube и какие при этом могут возникнуть сложности. Воспользовавшись одним из веб-сервисов, скачал видеоролик к себе на компьютер. Продолжительность: 01:35:29, разрешение: 1920×1080 px, объем: 522 Мб.

Закинул на Rutube. Интересно, какая ссылка раньше умрет — источник или копия? Попытаюсь вставить видео с Rutube в пост:



Про доступ к видеоролику

Видеоролик на Rutube сделал доступным только по ссылке, в описании дал ссылку на источник на YouTube. Это чтобы минимизировать возможные юридические проблемы: я не планирую распространять этот видеоролик или каким-то образом получать с него деньги.

Проблема с разбивкой на эпизоды и ее решение

Тайм-коды (временные метки) скопировал из описания видеоролика на YouTube в описание видеоролика на Rutube. Тайм-коды из описания видеоролика на Rutube заработали сразу же. В видеоролике всего 18 треков, которые идут один за другим. Эти 18 треков занимают половину времени видеоролика, с середины видеоролика начинается повтор (replay).

На временной линии видеоролика разбивка на эпизоды сразу не появилась. Я ждал сутки, не появилась и потом. После этого я начал экспериментировать и нашел, в чем было дело. Вот в каком виде я скопировал тайм-коды из описания видеоролика на Youtube:

 1. 00:00 - End of Year Elevation
 2. 01:32 - Fire and Frost
 3. 03:36 - New Beginnings, Loud Strings
...

Я переставил сами тайм-коды в начало строки и разбивка на эпизоды мгновенно появилась в видеоролике на Rutube:

00:00 - 1. End of Year Elevation
01:32 - 2. Fire and Frost
03:36 - 3. New Beginnings, Loud Strings
...

Про тайм-коды и разбивку на эпизоды можно прочесть на одной из страниц сайта Rutube. Документация (справка: https://rutube.ru/info/faq/) Rutube сделана плохо и неудобно, а также плохо проиндексирована в поисковых системах. Поэтому я решил на всякий случай сохранить ссылку на эту веб-страницу здесь (нужная информация — в конце этой страницы):

https://rutube.ru/info/upload/
(страница называется «FAQ: Загрузка видео» и на нее почему-то нет прямой ссылки из справки Rutube)

На будущее: задача скачивания видеороликов с YouTube и Rutube

Интересна задача написания программы для скачивания видеороликов с YouTube и Rutube (тут следует учитывать, что скачивание чужих видеороликов с Rutube является нарушением пользовательского соглашения и может повлечь соответствующие санкции со стороны Rutube, об этом сказано в справке https://rutube.ru/info/faq/). У меня уже и так много проектов, но если я когда-нибудь освобожусь, то с удовольствием займусь созданием такой программы. Мне интересна работа с сетями и интернетом.

Roblox Studio: деталь, исчезающая при прикосновении

Начало: «Roblox Studio: исчезающая и появляющаяся деталь».

Продолжу тему простых, но ярких примеров в начале обучения созданию игр с помощью программы «Roblox Studio». В предыдущем посте был описан скрипт на языке Луа для периодически исчезающей и появляющейся детали (ступеньки). В этом посте будет описан скрипт для детали (ступеньки), которая постепенно исчезает при прикосновении к ней. То есть речь идет тоже об исчезновении, но теперь исчезновение вызывается событием касания, а не происходит периодически. Кроме этого, исчезновение детали будет происходить постепенно, а не мгновенно, давая игроку, наступившему на эту деталь, шанс убежать без проваливания сквозь деталь (в нашем случае это будет ступенька).

Для изготовления детали (ступеньки) опять используем прямоугольный блок (part). Скрипт создаем дочерним элементом этого блока. Заготовка скрипта проста:

1
2
3
4
5
6
7
local part = script.Parent  -- наша деталь

local function fade()       -- функция
    -- тело функции
end

part.Touched:Connect(fade)  -- привязать функцию к событию касания

Так же, как и в предыдущем посте, создаем переменную part, в которую записываем родительский объект скрипта. Поскольку мы создали скрипт дочерним элементом блока, который будет исчезать, в переменную part попадает нужный блок, которым будем манипулировать в функции fade. В последней строке скрипта связываем событие прикосновения с запуском функции fade (при касании функция fade будет запущена).

Напишем тело функции fade. Получается следующая версия скрипта:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
local part = script.Parent  -- наша деталь

local function fade()       -- функция
    for count = 1, 10 do
        part.Transparency = count / 10  -- деталь постепенно исчезает
        wait(0.1)
    end
    part.CanCollide = false             -- разрешить объектам проходить сквозь
    wait(3)                             -- пауза после исчезновения детали
    part.Transparency = 0               -- вернуть видимость детали
    part.CanCollide = true              -- запретить объектам проходить сквозь
end

part.Touched:Connect(fade)  -- привязать функцию к событию касания

В свойство Transparency (прозрачность) детали можно записать вещественное (дробное) число от 0 до 1, меняя прозрачность от полной непрозрачности (значение 0) до полной прозрачности (значение 1). Постепенное исчезновение детали обеспечивается постепенным увеличением значения свойства Transparency (прозрачность) детали за 10 шагов цикла for. При этом формула (count / 10) выдает значения 0.1, 0.2, 0.3 и так далее до 1.

Даже когда деталь полностью прозрачная, на ней по-прежнему можно стоять, если не изменить значение свойства CanCollide детали. Остальное должно быть понятно из комментариев в блоке кода выше. После прикосновения деталь постепенно (в течение одной секунды) исчезает и становится проваливающейся на 3 секунды. Затем деталь возвращается в исходное состояние: становится видимой и перестает быть проваливающейся.

Версия в блоке кода выше уже прекрасно работает. Студенты используют ее вовсю. Однако, у нее есть серьезный недостаток. Мы хотим, чтобы аватар игрока наступил на запрограммированную деталь, при этом она должна исчезнуть и аватар игрока провалится вниз (внизу аватара может ждать смерть или какая-то спасительная поверхность, на которую он приземлится). Когда аватар игрока пробегает по детали или даже просто касается ее, то очень часто происходит не одно касание детали, а множество последовательных касаний. В результате функция fade запускается множество раз параллельно и получается ряд накладок, из-за которых деталь не просто исчезает, как мы рассчитываем, а начинает мигать и исчезает только потом. Вот как это выглядит:



Это довольно известное явление в программировании (не только при разработке игр, вот пример), которое по-английски называют «bounce» (вариант перевода на русский язык в данном случае: «дребезг»). Чтобы избавиться от этого «дребезжания», обычно в коде программы (скрипта) предпринимают некоторые меры «антидребезга» (debounce). Вот как это можно сделать в данном случае:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
local part = script.Parent
local isTouched = false     -- пока нет прикосновения

local function fade()
    if not isTouched then
        isTouched = true    -- прикосновение случилось

        for count = 1, 10 do
            part.Transparency = count / 10
            wait(0.1)
        end
        part.CanCollide = false
        wait(3)
        part.Transparency = 0
        part.CanCollide = true

        isTouched = false  -- прикосновение закончилось
    end
end

part.Touched:Connect(fade)

Для избавления от «дребезга» (bounce) мы добавили переменную isTouched, которая равна значению true (истина), если прикосновение произошло и находится в процессе обработки. Случившиеся во время еще не закончившейся обработки прикосновения другие прикосновения будут проигнорированы: для этого в код выше включено ветвление if с проверкой значения переменной isTouched.

Это окончательная версия кода. Вот как теперь выглядит работа скрипта:

Roblox Studio: исчезающая и появляющаяся деталь

Изучаем со студентами создание игр и написание программ в среде разработки «Roblox Studio» (в прошлом году я уже писал про эту программу). В начале обучения нужны простые и яркие примеры, и тут я опишу один из них.

Как создать исчезающую и/или появляющуюся деталь

Для демонстрации примера мы создали место появления (spawn location) и три ступеньки из прямоугольных блоков (part типа block). Одну из ступенек мы запрограммировали так, чтобы она постоянно исчезала на 3 секунды и затем появлялась на 3 секунды. Этот цикл повторяется бесконечно. Аватар игрока, ступивший на неверную ступеньку, при ее исчезновении упадет вниз и погибнет. Вот как это может выглядеть:

roblox-studio-dispart.gif

Программа (скрипт) написана на языке Лу́а:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
local part = script.Parent   -- наша деталь

local function disappear()
    part.CanCollide = false  -- разрешить другим объектам проходить насквозь
    part.Transparency = 1    -- сделать прозрачной
end

local function appear()
    part.CanCollide = true   -- запретить другим объектам проходить насквозь
    part.Transparency = 0    -- сделать непрозрачной
end

while true do
    wait(3)
    disappear()
    wait(3)
    appear()
end

Скрипт можно добавить к любому объекту в программе. Поскольку предварительно мы добавили в игру прямоугольный блок (я переименовал его из Part в DisPart), он появился и в списке объектов, помещенных в рабочую область (workspace). Список объектов в рабочей области можно увидеть в окошке обозревателя (explorer). Окошко обозревателя обычно открыто на экране, так как разработчик игры заглядывает в него постоянно:

roblox-studio-explorer.png

Скрипт я переименовал из Script в Disappear (его видно на иллюстрации выше).

В скрипте сначала создали переменную part. В эту переменную записали объект, который является родителем для данного скрипта — в данном случае это блок, который и должен циклически исчезать и появляться.

Далее написали две функции, в которых описан список команд для исчезновения и появления блока. В этих функциях просто изменяем нужные свойства блока — манипулируем свойством прозрачности (transparency) блока и свойством CanCollide (включены или нет столкновения с другими объектами; если это свойство отключить, другие объекты, в том числе аватар игрока, смогут проходить сквозь данный объект).

Скрипт заканчивается бесконечным циклом, в котором попеременно вызываем две написанные ранее функции, добавив между вызовами паузы по 3 секунды.

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

MagicaVoxel в обучении 3D-моделированию

Ранее в контексте обучения детей 3D-моделированию я уже описывал веб-сервисы «Tinkercad» и «CoSpaces» (ссылка), программу «Roblox Studio» (ссылка), программу «LeoCAD» (ссылка) и другие программы/веб-сервисы. Сейчас я заканчиваю курс у детей 7-8 лет по программе «MagicaVoxel».

Программа «MagicaVoxel»

«MagicaVoxel» — довольно маленькая бесплатная программа. Автор программы известен под псевдонимом ephtracy. Самая свежая на сегодня версия этой программы: 0.99.7.1 (Beta) от 29.05.2023 г. Размер дистрибутива программы в файле-архиве формата ZIP MagicaVoxel-0.99.7.1-win64.zip составляет 3,59 Мб. Из названия можно заметить, что этот дистрибутив предназначен для компьютеров с 64-разрядной версией операционных систем «Windows» (на официальном сайте программы сказано, что существует еще версия для macOS).

Программа не требует установки. Достаточно развернуть из дистрибутива папку с файлами программы — и она готова к работе. Такие программы еще называют переносимыми (portable), ее можно держать на флешке. После извлечения из файла-архива папка с файлами программы занимает чуть больше 8 Мб.

Официальный сайт программы: https://ephtracy.github.io
Аккаунт автора на «GitHub»: https://github.com/ephtracy
Репозиторий программы «MagicaVoxel»: https://github.com/ephtracy/voxel-model

По умолчанию интерфейс программы отображается на английском языке. Но имеется возможность перевести интерфейс на другой язык. В репозитории программы есть папка с переводами на ряд языков, в том числе там есть и перевод на русский язык (но я этой возможностью не пользовался, ничего не могу сказать о качестве перевода).

Название программы содержит слово «voxel» (по-русски «воксель») — трехмерный аналог двумерного пикселя. При работе над проектом в программе «MagicaVoxel» воксель представляет собой маленький кубик. Из таких кубиков строится трехмерная модель. Компьютерные игры с воксельной графикой известны и популярны (один из самых популярных примеров — «Minecraft», еще один популярный пример — «Crossy Road» для смартфонов и других мобильных персональных компьютеров).

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



Что изображено на иконке программы — издалека разобрать невозможно. Как я понял, там изображен большой черный кот, а перед ним — девочка с фиолетовыми волосами:

magica-voxel-icon.png

Как работать в программе

Сразу после открытия программы можно начинать работать над новым проектом. Его название можно прописать сверху в центре. Проект можно сохранить в файл с расширением «.vox». Кнопочки для сохранения проекта или открытия сохраненного проекта расположены в правом верхнем углу экрана.

Рассмотрев интерфейс внимательнее, можно заметить, что инструменты сгруппированы на вертикальных плашках — две слева от рабочей области, две — справа от рабочей области. Названия плашек, слева направо: «Palette» (палитра цветов), «Brush» (настройка главного инструмента рисования, «кисти»), «Edit» и «Project». Это инструменты, доступные в режиме работы «Model» («моделирование», это основной режим). (Всего режима работы два, второй — «Render». Переключение режимов работы выполняется в левом верхнем углу экрана.)

В основном используем инструменты на плашке «Brush». В начале работы мы обычно очищаем пространство проекта с помощью инструмента «Clear» на плашке «Edit» (это пока что единственная команда, которую я использовал с плашек «Edit» и «Project», расположенных справа).

Начинать создавать 3D-модели можно с помощью инструмента «Voxel» или «Voxel Mode» на плашке «Brush». Щелкнув левой кнопкой мыши в понравившемся месте рабочего куба, можно создать один кубик-воксель указанного на палитре слева цвета. Либо можно, зажав левую кнопку мыши, водить указателем мыши в нужных местах рабочего куба, создавая цепочки вокселей.

Тут важно отметить, что у каждого инструмента на плашке «Brush» есть три режима (их хорошо видно на плашке, они расположены в столбик): Attach (режим рисования), Erase (режим стирания) и Paint (режим закрашивания). Например, для рисования любым инструментом должен быть включен режим «Attach». Также отмечу, что для переключения между инструментами и режимами инструментов удобнее (быстрее) пользоваться горячими клавишами, а не тыкать мышкой в панель инструментов.


Одиночными вокселями можно создать что угодно, но такая работа займет много времени. Поэтому, естественно, в программе есть десятки инструментов для ускорения рабочего процесса. Например, инструмент «вытягивания» плоскости вокселей в нужном направлении. Так можно сразу покрыть стену или пол рабочего куба слоем вокселей нужного цвета, создавая, к примеру, впечатление поверхности, покрытой травой (зеленый цвет вокселей) и тому подобное. Еще есть инструмент «коробка» для создания из вокселей прямоугольной плоскости нужного размера. И так далее, там много интересных инструментов. Мы изучали по одному-два за занятие.

Несколько примеров работ:



Режим работы «Render»

После того, как вы закончите построение 3D-модели в режиме «Model», можно получить более красивую версию вашей модели, чем та, которую вы видите в этом режиме. Для этого переключитесь в режим «Render». Программа автоматически запустит создание рисунка вашей 3D-модели с тенями, так как в режиме «Render» существует источник освещения. При любом изменении положения модели в этом режиме запускается пересчет картинки заново. Так что сначала нужно подобрать самое лучшее на ваш взгляд положение 3D-модели и только затем можно дождаться окончания пересчета и рисования на экране вашей модели с улучшенным внешним видом.

В режиме «Render» можно регулировать мощность освещения, создавая дневное, вечернее или ночное освещение. Можно настроить, чтобы воксели отдельных цветов выглядели как определенный материал — дерево, металл, стекло. Наиболее часто на занятиях мы пользовались возможностью создавать из вокселей определенного цвета стекло — так мы сумели изобразить окна в домах, воду в реке или море, причем на поверхности воды отрисовывается даже отражение объектов на суше.

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

Хорошо подобранный и настроенный рендер можно сохранить в файле с картинкой формата «.jpg».

Пример рендера:

lighthouse-render.png

* * *

Программа мне пока очень нравится. Всем интересующимся 3D-моделированием и созданием компьютерных игр рекомендую. Хорошо подходит для начального обучения первоклассников 3D-моделированию. Дети с удовольствием создают свои модели (нередко кривые и косые), процесс создания моделей в этой программе очень увлекательный и нескучный.

Сменил монитор: от 1280×1024 к 1920×1080, 2024 год

Поскольку я не большой любитель компьютерных игр (но и не против них), то никогда особо не присматривался к характеристикам компьютерных мониторов, которые использовал и использую. Но в последние годы я стал замечать, что создатели сайтов стали ориентироваться на мониторы, разрешение которых гораздо шире, чем у того, который использую я (у меня об этом был пост пару лет назад). Из-за этого мне стало неудобно работать со многими веб-сервисами. Кроме того, мой старичок-монитор забарахлил технически.

В начале года я купил себе новый компьютер, а покупку нового монитора отложил, так как на тот момент денег не хватало. При этом я еще заметил, что теперь разъем VGA для монитора вышел из употребления, а используют сейчас вместо VGA в основном разъемы HDMI и DisplayPort (DP).

Вот теперь, наконец, руки дошли до покупки нового монитора.

Сначала посмотрим, мониторы с каким разрешением выбирают люди в наше время. Для этого я, как и два года назад, использую данные со следующего сайта (данные указаны в процентах от общего числа используемых мониторов для настольных [desktop] компьютеров):

https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide
                 апр.2022  сен.2024
 1. 1920×1080       21,63  24,58
 2. 1366×768        18,41  12,76
 3. 1536×864        10,46  11,85
 4. 1280×720         6,04   6,37
 5. 1440×900         5,85   4,63
 6. Нераспознанные   5,14   7,76
 7. 1600×900         3,50   2,71
 8. 2560×1440        2,46   3,15
 9. 1280×1024        2,28   1,18
10. 768×1024         2,08      -
11. 810×1080            -   1,75
12. Другие          22,15  23,26

Как видно из этой статистики, победителем на сегодня для настольного компьютера является монитор с разрешением 1920×1080 (Full HD или FHD). Причем это победа с большим отрывом и пока что отрыв от конкурентов только растет. Сейчас каждый четвертый монитор для настольного компьютера обладает этим разрешением.

Таким образом, при покупке монитора я выбирал не разрешение, с которым всё понятно, а длину диагонали. На выбор есть мониторы нужного разрешения с диагональю 22, 24 и 27 дюймов (если речь идет о средней ценовой категории). Самую маленькую диагональ 22 дюйма я отбросил сразу, а между 24 и 27 дюймов выбирал долго, так как разница в цене — солидная, в полтора-два раза. В итоге я купил монитор с диагональю 27 дюймов и пока устанавливал, думал, что зря (при установке показался слишком большим). Но когда начал пользоваться, быстро привык. Пользуюсь с удовольствием.

Стоимость монитора еще сильно зависит от частоты обновления экрана. Тут выбор у меня был между 100 Гц и 165 Гц. Как выяснилось, на практике вполне хватает и 60 Гц. Так что берите, к примеру, монитор с частотой 100 Гц — этого хватит за глаза, частота обновления выше нужна, наверное, только в соревновательных компьютерных играх. При этом разница в цене между монитором с частотой 100 Гц и монитором с частотой 165 Гц — значительная.

Характеристики моих старого и нового мониторов (оба произведены в Китае, оба жидкокристаллические [LCD]):
                    Старый     Новый
Бренд:               Acer       Ardor Gaming
Модель:              AL1916     INFINITY AF27H1
Год появления:       2006       2022
Разрешение в пикс.:  1280×1024  1920×1080
Диагональ:           19 дюймов  27 дюймов
Частота обновления:  60 Гц      165 Гц
Разъем:              VGA        HDMI, DisplayPort (DP)
Время отклика:       5 мс       1 мс
Тип матрицы:         TFT TN     TFT IPS

Попереключал частоту обновления нового монитора от 60 Гц до 165 Гц, но разницы особо не увидел. Оставил на 165 Гц.

Яркость у нового монитора бешеная. Когда я в первый раз его дома включил, у меня чуть глаза не вытекли. Там стояло 80 % от максимально возможной яркости. Я снизил до 20 %, и всё равно картинка кажется слишком яркой. Может, это на контрасте со старым монитором.

Кнопки управления у старого монитора были расположены удобнее: на лицевой стороне, под монитором (они были хорошо видны и удобно нажимались). Кнопка управления новым монитором (она одна, в виде джойстика, который можно наклонять и нажимать) находится на задней части монитора, ее с фасада не видно, но можно быстро нащупать, хотя управлять ею не слишком удобно.

В общем, пока я покупкой очень доволен. Пользуюсь только неделю. Старый монитор прослужил мне лет пятнадцать. Посмотрим, сколько этот выдержит. Гарантия на него — 36 месяцев.