71

Unity3D. Тряска R канала.⁠⁠

Всем доброго времени суток!

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

Unity package с содержимым этого урока: https://drive.google.com/open?id=0ByezjEHgcxecRXRCbnpSSGhwQm...

Советую почитать про шейдеры и их устройство.

Ну что же, приступим. Для начала создадим новый шейдер постэффекта: Create->Shader->ImageEffectShader.

Называем его как хотим

Открываем его и видим стандартную заготовку, которая инвертирует цвет.

Что же мы будем делать? У текстуры которая рендерит нам камера, у каждого пикселя смещать его красную составляющую.

Добавляем параметры смещения по обоим координатам и обзовём их _OffsetX и _OffsetY.

Перед функцией самого шейдера указываем переменные в которые будут идти значения из параметров. И в саму функцию добавляем такие строки:

Создаём скрипт который будет применять данный эффект на нашу камеру.

В него добавляем такие строки

Кидаем этот скрипт на камеру. Изменяя значения offsetX и offsetY, наблюдаем такой результат.

Создаём новый скрипт, который будет контролировать саму тряску и кидаем его на камеру.

Создадим кнопку, добавим ей вызов метода SetTimer и укажем сколько времени должен длится эффект. Запускаем, нажимаем на кнопку и наслаждаемся результатом. На UI элементах наш эффект не будет действовать если у Canvas режим рендера будет Overlay, поскольку он будет отрендерен после всех камер на сцене.

Так же такой эффект можно попробовать и с другими каналами RGB. 

Благодарю за внимание!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

Ещё!! Подписался.

раскрыть ветку (14)
1
Автор поста оценил этот комментарий

Оу, неожиданно. Можно ещё попробовать, только с темой нужно определиться.

раскрыть ветку (13)
0
Автор поста оценил этот комментарий
А можешь посоветовать материалы для изучения сишарпа в среде юнити? Делаю простенькие игры, часто копирую-правлю простейший примитивный код под свои нужды, но многие детали в нём для меня непонятны.
Знаю что есть большие книги по тыще страниц, но я ведь пытаюсь делать простенькие игры и понимать основы, так нет ли каких-нибудь соответствующих пособий? Разумеется на английском.
раскрыть ветку (5)
3
Автор поста оценил этот комментарий

Поскольку я начал программирование с С++, как то перебивался документацией по Unity. Можете ещё посмотреть этот сайтик http://catlikecoding.com/unity/tutorials/ ну  и почитать про объектно-ориентированное программирование в C#. Если интересует какая-то тема, могу туториал-пост сделать (про объектный пул например).

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Спасибо за сайт, очень понравились подробные объяснения по всем терминам, написано прям для самых маленьких и тупых :) Я не технарь, не могу в сухие объяснения из взрослых учебников, это как раз для меня. До этого в жизни не программировал, а тут пришлось уроки смотреть, как увлекся разработкой игр, и мой мозг послал меня нахуй после вводного двухчасового урока в сишарп и ООП.

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

Можете ещё попробовать этот: http://www.alanzucconi.com/category/unity3d/ там тоже много инфы. Вообще в программировании нужно много практиковаться. То что обычно плохо принимается в теории, неплохо познаётся на практике.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Уроки просто бомба! Может есть еще какие-то похожие сайты, о которых я не знаю?)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Если с английским всё ок, то можете посмотреть выступления с различных конференций, например Unite Europe 2016 на официальном канале Unity https://www.youtube.com/user/Unity3D/videos

0
Автор поста оценил этот комментарий

Лично для меня сейчас шейдеры ой как актуальны. Если на шарпе кое-как "скрипчу", то с ними проблема. Проект стоит. Еще если можешь, расскажи пожалуйста про библиотеку GL, а именно, как с её помощью отрисовывать не поверх всего изображения, а только, например, там, где нет объектов какого-то конкретного слоя. Я тогда вообще буду максимально благодарен)

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

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

Иллюстрация к комментарию
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Наверное да. Дело в том, что я купил эффект outline, который обводит объекты. Делает это красиво, но с одним косяком. Оутлайн рисуется поверх всего, даже UI. Наверное, это потому что автор не предусмотрел другие варианты Render Mode канваса, кроме overlay. А я пользуюсь Screen Space, в моём проекте иначе нельзя.


Для отрисовки там используется функция OnGUI, на скрине. Надо понять как это всё работает и исправить косяк.


Я вижу такое решение. Если я правильно понял, аутлайн рендерится в отдельную текстуру. Надо просто эту текстуру умножить еще на черно-белую маску слоя, на котором все элементы UI. Но для меня это сложно) Не подскажешь, в каком направлении двигаться?


P.S.: так как я уже перешёл на "ты", присоединяйся))

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Чтобы определить в чём проблема, нужно побольше в код углубиться. А так почему то первое что на ум пришло: рисовать текстуру в локальных координатах, и подгонять под камеру. Хотя это вряд ли поможет.

Иллюстрация к комментарию
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Переписал вслепую, не разбираясь. Пока не рисует вообще ничего. Надо будет завтра заняться этим делом плотнее.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Можно ещё попробовать рисовать aTexture на плэйне и опять же подогнать под размер экрана и разместить за графическим интерфейсом.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо за совет, в итоге так и сделал) самое простое решение.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества