Меню

Как изменить цвет у модели unity



Материалы и текстуры

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

Прототип. Присылай администратору сайта скриншоты своих прототипов и мы опубликуем лучшие в сообществе Юниум.

Материал

По умолчанию все объекты имеют серый цвет. Можно изменить цвет любого объекта с помощью материала.

Используй пункт главного меню Assets → Create → Material или контекстное меню окна Проект, для создания нового материала. После создания, ты можешь применить его к объекту и настроить все его свойства в Инспекторе. Для применения материала к объекту, просто перетащи его из окна Проект на любой объект в Сцене или Иерархии. Чтобы изменить материал у всех объектов одного prefab’а, необходимо изменить материал у сохраненного prefab’а в окне Проект. Попробуем сделать материалы для моста. Нам понадобятся два цвета: коричневый и темно-коричневый (для столбов). Создадим два материала для этого.

Новые материалы

Выбери один из них и в Инспекторе измени цвет (в самом верху, рядом со словом Albedo). Повтори тоже самое с другим материалом.

Свойства материала в Инспекторе

Теперь необходимо заменить материалы в prefab’е моста. Разверни prefab в окне Проект, нажав на стрелочку:

Так можно развернуть prefab

Выбери несколько объектов, которые должны быть одного цвета. А теперь посмотри на окно Инспектор и найди там компонент Mesh Renderer. Именно он отвечает за то, какого наш объект будет цвета и как он будет отражать свет. Найди свойство Material и разверни его нажав на стрелочку. Ты увидишь число, которому соответствует количество материалов необходимых для этой 3D модели (Size) и, собственно, сами материалы. В нашем случае один материал — Default-Material. Его и нужно заменить, нажав на соседний кружочек.

Замена материала

Теперь ты можешь добавить материалы к остальным элементам prefab’а. Обрати внимание, что изменяя prefab в окне Проект, ты меняешь сразу все его копии на Сцене. Это ли не чудо?

Вот, что получилось у нас:

Прототип в цвете

Материалы не только отвечают за свет, как мы уже говорили, но и за другие свойства, например:

  1. Albed — цвет и текстура.
  2. Metallic — определяет металлическая (значение 1) ли поверхность или нет (значение 0).
  3. Smoothness — определяет насколько поверхность глянцевая (значение 1) или шероховатая (значение 0).

Текстура

Использование текстур позволяет воспроизвести малые объекты поверхности, создание которых полигонами оказалось бы чрезмерно ресурсоемким. Например: шрамы на коже, складки на одежде, мелкие камни и предметы на поверхности стен и почвы.

Unity поддерживает все самые популярные форматы изображений: jpeg, png, tiff, tga, psd. Текстура должна быть квадратной и иметь следующие размеры: 32х32, 64х64, 128х128, 256х256, 512х512, 1024х1024, 2048х2048, 4096х4096, 8192х8192. Если не следовать этим правилам — Unity попытается сам преобразовать изображение в нужный размер.

Текстура — это параметр материала. А материал может содержать в себе несколько текстур. Например, одна текстура отвечает за отображение цвета, вторая — за рельеф поверхности.

Импорт текстуры

  1. Создай папку в окне Проект, где будут храниться все текстуры. Предлагаем назвать папку Texture.
  2. Нажми на эту папку правой кнопкой мыши и выбери «Import New Asset…». Выбери картинку.
  3. Выбери нужный материал. В окне Инспектор нажми кружочек рядом с параметром Albedo и выбери текстуру.

Мост с текстурой

Для простых объектов (куб, сфера, плоскость) можно изменить количество повторений текстуры на объекте. По умолчанию, текстура не повторяется. Выбери материал, в окне Инспектор параметр Tiling отвечает за повторение текстуры по осям x, y.

Изменение Tiling по оси Y

Normal Map

Есть простой сервис, где из картинки можно настроить и скачать себе Normal map.

Источник

Как изменить цвет материала/текстуры в Unity, после импорта модели из Блендера?

Делаю всё как в видео, и на 10.22 вручную регулируют цвет. Но у меня по каким-то причинам эта функция не активна, как и все остальные.

Читайте также:  Как собирать цвет бузины

Не реагирует.

Как сделать, чтобы реагировала?

2 ответа 2

Выбираем модель и выбираем вкладку Materials . Затем в строке Location выставляем Use External Materials (Legacy) . После чего подтверждаем изменение настроек кнопкой Apply .

Как я понял, этим действием Unity создаёт отдельную папку и выкидывает туда наши материалы/текстуры из модели.

После этого можно изменить цветовую гамму нашего материала/текстуры по вашему усмотрению.

Я перевёл цвет в белый, в следствии чего — модель приобрела свой первоначальный цвет.

Нужно извлечь текстуры и материалы вашей модели.

1 Выбрать вашу модель в окне Project

  1. В окне Inspector перейти на вкладку Materials
  2. Создать папку и извлечь в нее текстуры вашей модели (Extract Textures)
  3. То же самое проделать с материалами модели (Extract Materials)
  4. Выбрать вашу модель в окне сцены и раскрыть его на компоненты
  5. Выбираем каждый компонет модели и в окне Inspector в разделе Shaders изменяем параметр с «Standart» на «Legasy Shaders/Deffuse
    Detail»
  6. Наслаждаемся результатом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками unity3d или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.1.27.38425

Источник

Изменение цвета gameObject в Unity

0 8673589 [2015-07-23 19:24:00]

Хорошо, поэтому у меня есть этот код.

Я ожидал, что мой gameObject изменит свой цвет на зеленый. Я импортировал его как черный, а в инспекторе он превратился в зеленый, но в фактическом приложении он не выглядит зеленым. Я не могу использовать gameObject.renderer.material.color = Color.green поскольку единство говорит мне, что он в основном устарел и что я должен использовать новую версию. Это будет очень просто, но что мне не хватает? Заранее спасибо.

ОБНОВЛЕНИЕ: Когда я запускаю код, появляется вкладка «Sprites-Default (экземпляр) инспектора», и если я изменил поле выбора на Unlit> Color, он будет работать. Есть ли способ сделать эту палочку?

3 ответа

1 Решение Milad Qasemi [2015-07-24 08:25:00]

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

4 Frohlich [2015-07-23 21:21:00]

Если вы пытаетесь изменить цвет спрайта 2D, попробуйте GetComponent ().color = Color.green вместо того, чтобы просто получить компонент «Renderer» или попробовать setColor() с зеркальным шейдером вместо прямой атрибуции (вам понадобится источник света в сцене).

0 [2016-05-31 17:38:00]

Всегда есть две возможности не видеть результат этого кода.

Там нет света (направленный свет или точечный источник света), как указывал user2320445.

Источник

Изменение цвета нескольких игровых объектов в Unity 5

Я хотел бы изменить цвет нескольких игровых объектов в Unity, используя один скрипт. Я немного потерял способ, как это сделать. Я новичок в Unity, и для меня это своего рода базовое обучение.

Версия Unity: 5.3.4

Наблюдаемое поведение:

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

Ожидаемое поведение:

Изменение цвета игровых объектов по отдельности

Перечень вещей:

Пытался получить доступ к материалам, используя -GameObject-

Пробовал и то и другое

Думая в нескольких сценариях для достижения результатов, я хочу

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

Есть несколько разных способов сделать это.

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

Читайте также:  Как подобрать цвет краски для автомобиля ваз 2114

Если их меньше, чем, скажем, 20, вы можете создать список и просто перетаскивать каждое преобразование в инспектор после изменения размера списка на количество имеющихся у вас объектов.

Аналогично 2, если вы хотите сделать все это в коде, вы можете сделать

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

И об этом комментарии:

Если вы сделаете их типа GameObject, то вы легко сможете получить доступ к визуализатору, просто выполнив это:

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

Источник

Улучшаем стандартную графику Unity за несколько минут

Привет. Недавно решил начать делиться накопленным опытом по разработке, и записал своё первое видео. Статья прилагается. 🙂

Принято считать, что графика в движке Unity не сравнится с картинкой Unreal Engine. Но так ли это? Попробуем сегодня понять, почему проекты на Unreal выглядят лучше.

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

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

Это можно сделать через Package Manager, набрав в поиск Post Processing. Устанавливаем найденный плагин и теперь мы можем пользоваться пост-эффектами в юнити. У меня он уже установлен, поэтому я перейду к настройке.

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

Для того, чтобы настроить плагин, добавляем на объект с основной камерой компонент Post-Processing Layer, в нём задаём Layer на Everything (и заодно сглаживание, которое уберёт лесенки с краёв моделей).

Затем создаём новый пустой объект с компонентом Post-Process Volume, в котором включаем галочку Is Global, что будет означать, что он влияет на всю вашу сцену. Нажатием кнопки New создаём новый профиль с эффектами.

А, и да, для игр на ПК стоит в Project Settings сменить Color Space с Gamma на Linear, это значительно улучшит общий вид игры, рекомендую почитать об этом в справке Unity, а может я даже сделаю отдельный материал по этой теме.

Возвращаемся к нашему объекту с Post Process Volume и сразу добавляем 4 новых эффекта:

  • Bloom
  • Ambient Occlusion
  • Color Grading
  • Vignette

Теперь настраиваем их по порядку. Начнём с Bloom. Для включения эффекта ставим галочку возле Intensity, а затем прибавляем значение для того, чтобы усилить действие эффекта.

Сразу можно заметить, что мой эффект огня на сцене, если его можно так назвать, преобразился и стал гораздо сочнее. Так же это повлияло на небо на заднем плане, создав небольшую «дымку» от него. Этот эффект очень хорошо подходит для визуальных эффектов вроде пуль, огня, неона и прочих источников освещения, он добавляет кинематографичности сцене. Играясь с его параметрами можно получить голливудскую картинку на бликах и не хуже, чем в Unreal Engine.

Ambient Occlusion даёт дополнительное затенение, имитируя скопление теней в выемках в реальном мире, только немного сильнее для художественного эффекта. После применения эффекта окружение приобретает глубину.

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

Читайте также:  Каким цветом покрасить волосы чтоб убрать желтизну

Vignette имитирует виньетку от объектива камеры. Этот эффект может добавить кинематографичности, хотя в кино он наоборот является нежелательным.

Теперь можно сравнить картинку с исходной, отключив компонент Post-Process Layer на камере.

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

Для большего эффекта, покажу так же сравнение со сценой без Linear Color Space, настроенного в начале.

И да, рекомендую пользоваться эффектами пост-обработки в меру, иначе ваша игра будет выглядеть будто на фоне происходит ядерный взрыв — тот же Spec Ops иногда это очень наглядно показывает. 🙂

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

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

У меня же настолько глаз набит, что графику Анреала я вижу прям за версту, многие разрабы не могут покрутить эти рубильники убрать вырвиглазный блум с моунш блюром. В то же время, в юнити могу выкрутить графику аля Анреал, не понимаю такой бугурт в сторону Юнити, и обожествление Анреала. И там и там, есть как преимущества и недостатки.
Несколько лет назад, фу — унити, недоподелки, графика отстой. Сейчас — воо крутой анреал, там графа крутая, но то, что ваш унитаз. А по факту стандартные механники на блупринтах, где игра от игры — копипаста, и СТАНДАРТНЫЕ ВЫРВИГЛАЗНЫЕ ЭФФЕКТЫ, которые считают эталоном. НЕ ВСЕ, сразу скажу, НЕ ВСЕ Мало, очень мало ребят\команд\разработчиков, которые выкручивают рубильники постэффектов анреала.
Хоть я и работаю с юнити, Фу такими быть, давайте жить дружно.

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

У тебя есть примеры картинок на Unity которые можно спутать с анрилом? Я тоже раньше утверждал что «юнити тоже может», пока не поспорил с одним товарищем. Мы перерыли интернет на тему различных интерьеров в реалтайме, анрил был лучше. Да что и гоорить, можно зайти в ассетстор и посмотреть что там продают под видом «фотореализм». Глаз видит что сделано на компе. В случае с анрилом глаз всё таки иногда обманывается думая что это фото.

Из последнего, что ОЧЕНЬ сильно впечатлило. Выкрутить. Можно.

Так же про что значит «лучше»? На субъективный ваш взгляд? У каждого свой вкус. Меня лично раздражает сильный блум и моушнблюр. + еще несколько дефолтных (или нет) эффектов.

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

Источник