Добавляем веб-камеру в OBS Для того что бы сделать рамку для вебки круглую, нужно сперва добавить устройство захвата видео в OBS. Затем применить к ней фильтр маска изображения/смешивание. Назад Врерёд
Стрим со второй видеокарты
Стоит ли покупать вторую видеокарту для стрима? Введите текст заголовка Недавно я приобрел для себя видеокарту GTX 1060 на 3 гигабайта, чтобы увеличить качество картинки на стриме, но мне это не удалось. Почему? Потому что
Источник: twitchinfo.ru
Как стать АНИМЕ вайфу | Виртуальный ютубер Vtuber
Как выполнить настройку анимированной модели персонажа в Unity3D?
Наверняка многим кажется достаточно сложным процесс создания и введения в проект анимированной модели персонажа. В этой статье мы хотим затронуть тему импорта 3D модели персонажа в Unity3D, его подготовку, импорт анимаций, настройку аниматора и простейший контроллер, который будет управлять движениями и анимацией персонажа.
И импортируем в проект:
Открываем в окне Project папку с персонажем, находим его модель, переносим в сцену.
Поскольку это модель из магазина AssetStore, она полностью настроена и готова к введению в игру. Тем не менее, важно убедиться, что всё настроено верно:
- Во вкладке Rig должен быть выбран AnimationType: Humanoid
2. Во вкладке Animation у данной модели нет собственных анимационных клипов. Именно поэтому мы возьмем их с сайта mixamo.com:
Эти анимации можно свободно скачать, что мы и сделаем сейчас.
Humanoid – анимации легко можно использовать на любых Humanoid – персонажах. Поэтому не важно, создадите ли Вы свою анимацию или скачаете готовую – любой из вариантов будет работать с Humanoid – персонажем.
Я подготовил вот такой сет анимаций. Он включает в себя:
- Holding Idle – анимация “стоим на месте”
- Walking – “Идем вперед”
- Walking Backward – “Идем назад”
- Walk Right и Walk Left – “Идем влево/вправо”
- Running, Left Run, Right Run – “Бег вперед, влево, вправо”.
Обязательно выберите все файлы с анимациями и во вкладке Rig переключите их в режим Humanoid:
Пора настроить импорт каждой анимации в проект. Выделяем,например, walking и переходим во вкладку Animation:
1.Назначаем ключи старта и окончания анимации (поскольку каждый файл анимации идет отдельным файлом, обычно эти ключи автоматически стоят верно).
- Присваиваем имя анимации, можно назвать так же, как мы назвали файлы.
3.Устанавливаем галочку LoopTime- этот включенный параметр зацикливает анимацию при воспроизведении.
Аналогичным образом настраиваем остальные анимации. Не забываем нажимать Apply для того чтобы применить все изменения анимационного клипа.
Теперь в сцене выделим персонажа. Давайте посмотрим на компонент Animator, который присутствует на нем. Нам важны два поля:
- Avatar – определяет, как именно будут связаны кости модели с костями в анимации. При импорте модели персонажа, движок автоматически создает аватар. Но если что-то идет не по плану, аватар можно сконфигурировать вручную. Для этого нужно выбрать модель персонажа в окне проекта, и во вкладке Rig перейти в Configure.
Если Вы всё делаете, как и я – проблем с аватаром возникнуть не должно.
2. Controller – Это то, с чем мы и будем работать дальше. Анимационный контроллер – это своего рода схема, в которой мы определим, как именно воспроизводятся анимации, в каком состоянии какие из анимаций смешиваются друг с другом. Если сказать проще, то именно в контроллер мы будем отправлять сигнал о том, какая анимация должна воспроизводиться в данный момент. Но обо всём по порядку.
Давайте создадим анимационный контроллер: Правой кнопкой мыши кликаем в окне проекта. Create – Animator Controller.
Получится вот такой файл, я назвал его PersonAnimatorController:
Кликаем по нему дважды, откроется вкладка Animator:
Это и есть окно, в котором мы установим алгоритм работы наших анимаций. Давайте сразу создадим 3 состояния (ПКМ – Create State – Empty):
Выделив одно из состояний (например, idle), в окне Inspector мы можем заметить, что поле Motion сейчас пустое. Сюда необходимо поместить анимационный клип (тот, которому мы настраивали ключи Start-End, устанавливали Loop pose, и т.д.).
Поэтому, не снимая выделение с выделенного элемента, в окне Project находим файл с анимацией Idle, и из него перетаскиваем АНИМАЦИОННЫЙ КЛИП в поле Motion в окне инспектора.
Таким же образом устанавливаем клипы в остальные состояния (walk, run).
Теперь в левой части окна Animator переходим во вкладку Parameters:
Создаем Int – параметр, назовем его “state”. Это переменная, которая будет определять, в каком состоянии сейчас находится аниматор персонажа (какое из наших трёх состояний воспроизводится в данный момент). Этим параметром в будущем мы будем управлять из скрипта.
Теперь необходимо создать переходы между состояниями.
Кликаем на Idle правой кнопкой, жмем на Make Transition, после чего наводим курсор на состояние Walk.
Сразу сделаем переходы между всеми состояниями, и туда, и обратно.
Теперь переходим к настройке каждого перехода. Первый переход:
Выделяем его, смотрим в правую часть окна Animator:
Has Exit Time – снимаем галочку. Этот параметр, при включенном состоянии, сначала ждет, пока текущая анимация отыграет полностью, а уже после – совершает переход в другое состояние. Нам это не нужно, т.к. переходы у нас будут в конкретные моменты, когда наша переменная state меняет своё значение.
В Conditions добавляем условие перехода:
Дословно это выглядит так: “Если state = 0”. Если представить это в виде кода:
То есть, выбранный переход сработает в том случае, когда значение state будет равно “1”.
Обратный переход из Walk в Idle настраиваем так (не забываем во всех переходах отключать Has Exit Time):
По аналогии, нужно сделать переходы:
Idle – Run (state equals 2)
Run – Idle (state equals 0)
Walk – run (state equals 2)
Run – Walk (state equals 1)
Не забудьте выделить персонажа в сцене и переместить созданный анимационный контроллер в поле Controller в компоненте Animator:
Теперь, если запустить игру и, выделив персонажа, в окне аниматора поменять значение state, мы увидим, что анимации воспроизводятся:
Вы можете заметить, что персонаж немного смещается и разворачивается. Это происходит, потому что мы не настроили смещение и поворот за счёт анимации. Делается это в окне импорта каждого файла анимации, во вкладке Animation. Обычно я настраиваю анимации так, чтобы они никак не влияли на перемещение или поворот. Установите флажок во всех опциях Bake Into Pose.
А так же Based Upon в Original.
Теперь создадим скрипт, чтобы управлять анимациями персонажа по нажатию на клавиши.
Называем его PersonController. Перетяните скрипт на персонажа, чтобы он отобразился в списке компонентов под компонентом Animator:
Открываем скрипт. Пишем код:
Теперь, если запустить игру, персонаж начнет реагировать на нажатия на клавиши.
На этом пока всё. Это базовый механизм настройки персонажа, аниматора, и простой способ воспроизвести анимации. На основе этого принципа можно анимировать многие игровые объекты, не только персонажей. Но для того, чтобы сделать качественное смешивание анимаций и не превратить Анимационный контроллер в мешанину из огромной кучи состояний и переменных, которыми сложно управлять, когда их много – существуют очень удобные инструменты смешивания в Animator (BlendTree), а так же возможность создать машину состояний внутри одного состояния. Но об мы расскажем в отдельной статье.
Источник: unity3dschool.com
Как сделать анимацию дверей в Unity (Юнити)
Привет, друзья! В этом уроке мы разберем, как сделать анимацию объекта в Unity. В качестве примера мы попробуем запрограммировать открытие дверей по кнопке и исчезающие платформы.
Открытие двери
Создадим кнопку. Для этого создаем Cube. Настраиваем его размеры. Далее в окне проекта ПКМ Create — Materials создаем материал для кнопки. Перемещаем материал на кнопку.
Далее настроим коллайдер на кнопке. Ставим галку isTrigger. Это нужно для того, чтобы персонаж мог проходить сквозь границы коллайдера кнопки.
Создаем дверь. Также создаем куб, но теперь делаем его больше. Ставим в конец Plane.
Создаем анимацию открытия двери. Выбираем в иерархии дверь. Нажимаем на вкладку Window — Animation — Animation.
Нажимаем кнопку записи, первая точка — исходная позиция двери (закрыта), она будет в нуле. Вторая — конечная позиция двери (открыта) — примерно на 40 секундах.
Снимаем кнопку записи и закрываем окно анимации.
Нам нужно, чтобы анимация проигрывалась один раз, для этого в окне проекта выбираем анимацию.
В инспекторе снимаем галку напротив Loop Time.
Если мы сейчас запустим Юнити, анимация сразу запустится, а нам нужно только при нажатии на кнопку. Нам нужно настроить анимацию, для этого переходим во вкладку Animator. У нас уже есть автоматически настроенная связь, но она нам не подходит.
Удаляем блок door.
Создаем пустой блок.
Перемещаем из окна проекта нашу анимацию. Связь мы прокладывать в аниматоре не будем, сделаем это у скрипта.
Создаем скрипт, называем его Button. Это скрипт для персонажа, который будет перемещать стену, то есть включать анимацию.
Объявляем аниматор. Создаем метод OnTriggerEnter, в котором будем делать проверку: если зашел в коллайдер наш персонаж, то включаем анимацию. Сохраняем и переходим в Юнити.
Перемещаем скрипт на персонажа и в поле аnim добавляем стену.
Выбираем кнопку. Создаем тег but1. Назначаем его кнопке. Запускаем и проверяем.
Исчезающие платформы
Создаем куб, делаем из него платформу. Ставим рядом с Plane.
Метод OntriggerEnter не подойдет, так как, если мы поставим галку isTrigger, персонаж провалится. Будем использовать метод OnCollisionEnter. Создаем скрипт. В нем пишем метод OnCollisionEnter. В нем прописываем Destroy, который будет уничтожать объект, в скобках указываем, какой объект он будет уничтожать и время, через которое он это выполнит.
Перемещаем скрипт на платформу и проверяем.
На этом все. Если вы хотите получше изучить Юнити, научиться делать разнообразную анимацию и разрабатывать крутые игры с помощью скриптов на C#, приходите на продвинутый курс в школу Pixel.
Источник: clubpixel.ru