Рубрики
Без рубрики

Как стать нереальной автоматической экспертом

Автор оригинала: Tim Grossmann.

Оглавление

  1. Автоматизация рабочих процессов с чертежами, C ++ и Python
  2. Почему нереальный двигатель интересен
    • Зачем использовать чертежи для рабочего процесса и даже игровое программирование
    • Зачем использовать C ++ для рабочего процесса и программирования игры
    • Зачем использовать Python для оптимизации рабочего процесса
  3. Написание нашего собственного автоматического сценария очистки проекта с помощью Python
    • Но окупается ли это?
  4. Узнайте, как автоматизировать и оптимизировать рабочие процессы со сценарием на UDEMY

Автоматизация рабочих процессов с чертежами, C ++ и Python

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

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

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

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

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

Почему нереальный двигатель интересен

Нереальный двигатель Epic – одна из самых популярных игр и в режиме реального времени в режиме трехмерных приложений. Он используется для создания развлекательного контента, такими как игры и интерактивные настройки.

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

В дополнение к этому, игровые и трехмерные рынок в реальном времени постоянно растут, что увеличивает спрос на талант.

Согласно исследованию, проведенному Горящие стеклянные технологии фирма аналитики рынка труда, средняя зарплата для нереальных разработчиков Вырос на 22% в прошлом году , Заработная плата для художников, на 51% Отказ

Зачем использовать чертежи для рабочего процесса и даже игровое программирование

В дополнение к общему интерфейсу программирования C ++, Unreal Engine обеспечивает Система графической программирования под названием BluePrints Отказ Они подвергают полную функциональность в виде кода C ++, что означает, что все, включая функции In-игры, могут быть запрограммированы без огромных недостатков производительности.

Графический интерфейс позволяет быстро составлять объекты в поток для создания функциональности. Глядя на пример, который устанавливает материал для актера статического меша, мы видим, что план легко читается.

Зачем использовать C ++ для рабочего процесса и программирования игры

«Родной» подход к кодированию для нереального двигателя является C ++. Он используется для создания логики в игре, упростить создание и рабочие процессы уровня и улучшить трубопровод для разработки. Это сложнее и сложно учиться, то чертежи, но могут добавить дополнительное повышение во время выполнения и производительности.

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

Зачем использовать Python для оптимизации рабочего процесса

По сравнению с чертежими или C ++ Python является одним из Де-факто стандартные языки, используемые для автоматизации задач Отказ Это просто учить, понятно и чрезвычайно универсален, так как он может работать почти на любой платформе без дополнительных усилий.

Эпические списки Python как один из необходимых навыков, например, для передачи данных в их Поле руководства Создателя к появлению карьеры в интерактивном 3D Отказ

Unreal Engine имеет полную поддержку сценариев Python Отказ К сожалению, он не подходит для сценариев в реальном времени и в игре, но может использоваться только для Scripting редактора Unreal. Простота Python, однако, делает его невероятным вариантом для быстрого прототипирования автоматизации трубопровода.

Сами эпические пытаются продвигать использование Python, используя Документация , API Документы и даже а Записанный вебинар О Python Scripting для нереального двигателя.

Написание нашего собственного автоматического сценария очистки проекта с помощью Python

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

Схематический рисунок ниже объясняет идею сценария.

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

Мы можем получить количество выбранных активов, используя Python’s Лен () Способ и используйте метод журнала MaReeR, чтобы получить вывод на журнале отладки в нереальном двигателе.

import unreal

# create unreal class instances
editor_util = unreal.EditorUtilityLibrary()

# get the selected assets
selected_assets = editor_util.get_selected_assets()
num_assets = len(selected_assets)

unreal.log(num_assets)

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

Нереальный ObjectBase Объект имеет несколько помощников, чтобы получить имя, класс и другие атрибуты. Мы будем использовать get_fname () и get_class () методы.

for assets in selected_assets:
    # get the class instance and the clear text name
    asset_name = asset.get_fname()
    asset_class = asset.get_class()
    
    unreal.log("{} - {}".format(asset_name, asset_class))

Однако это даст нам только определение класса, а не четкое текстовое имя самого класса, которое мы хотим использовать для создания папок.

Чтобы получить отображаемое имя вместо определения класса, нам нужно создать экземпляр SystemLibrary Отказ Это get_class_display_name () Метод принимает определение класса и возвращает имя класса как Строка Отказ

# create unreal class instances
editor_util = unreal.EditorUtilityLibrary()
system_lib = unreal.SystemLibrary()

...

for assets in selected_assets:
    # get the class instance and the clear text name
    asset_name = asset.get_fname()
    asset_class = asset.get_class()
    class_name = system_lib.get_class_display_name(asset_class)

    unreal.log("Name: {} - Class: {}".format(asset_name, class_name))

Теперь мы можем увидеть что-то вроде этого «Имя: NewMaterial – класс: материал», напечатанный в наш журнал. Это именно та нас нужна информация.

Последний шаг – «переименовать» наши активы до данного местоположения. Например, каждый материал будет переименован в "/Материал/<имя материала актива>" который будет перемещать его в соответствии с папками.

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

Чтобы сохранить эту более независимую платформу, мы будем использовать ОС Модуль и его Path.join () метод.

Как только мы создали new_path Переменная, мы можем использовать его в методе Вызов Renaze_loaded_asset () Переместить наш текущий актив.

import os
import unreal

# create unreal class instances
editor_util = unreal.EditorUtilityLibrary()
system_lib = unreal.SystemLibrary()
editor_asset_lib = unreal.EditorAssetLibrary()

...

for assets in selected_assets:
    # get the class instance and the clear text name
    asset_name = asset.get_fname()
    asset_class = asset.get_class()
    class_name = system_lib.get_class_display_name(asset_class)

    # assemble new path and relocate asset
    new_path = os.path.join("/Game", class_name, asset_name)
    editor_asset_lib.rename_loaded_asset(asset_name, new_path)
    
    unreal.log("Moved {} to {}".format(asset_name, new_path))

Выполнение этого сценария в Unreal Engine, журнал предоставит вам такое сообщение: «Переместился на NewMaterial на/игра/материал/NewMaterial» Отказ Наблюдение за нашим проектом, теперь мы можем видеть, что все выбранные активы были очищены в папки с именем в соответствии с их классами.

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

Но окупается ли это?

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

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

Узнайте, как автоматизировать и оптимизировать рабочие процессы со сценарием на UDEMY

Чтобы помочь закрыть разрыв нереальных сценариев, мы создали Обширный курс по требованию Udemy Для изучения Unreal Engine Engine Enderge сценарируется с нуля.

Вы можете использовать промо-код, AutomateUnreal20 Отказ Вы можете получить курс всего за 10 долларов сейчас. Это менее трех Frappuccinos от Starbucks!

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь добраться до нас в Twitter или непосредственно в раздел обсуждения курса:)