Как сделать файл vmt

Как развить воображение и фантазию у взрослых

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

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

Выключите телевизор и найдите хобби

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

Обращайте внимание на забавные мелочи

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

Попробуйте ничего не делать

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

Слушайте музыку без слов

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

Что такое эскапизм?

Эскапизм – это синоним бегства, неважно куда: работа, секс, искусство, жизнь, религия, отдаленные деревни, монастыри, разговоры на форуме, игры, опьянение или психотропные вещества. На фоне таких “интересов” бегство в мир фантазий выглядит безобидным

Но это только на первый взгляд.

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

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

Важно различать разные формы фантазии:

  • Сладкие мечты похожи на “розовые очки”, в которых нет места реальности – не очень хороший знак.
  • Фантазии, которые заряжают вас энергией, двигают вперед – полезны.

Есть еще один секрет: воплощать фантазии в реальность гораздо интереснее, чем фантазировать ни о чем.

Создание текстур

Что ж, приступим. Я буду использовать для создания текстуры логотип ProGamer.

Логотип окружён прозрачным фоном, но с этим мы разберёмся потом. Размер 1418×1418 я поменял на 1024×1024. На практике вы будете использовать наименьший возможный размер, а такие большие текстуры будут применяться только для самых важных вещей. Хорошим базисом для большинства текстур будет 512×512.

Нам нужно сконвертировать исходный файл в формат VTF. Valve прилагает к своим играм программу VTEX, это простой инструмент командной строки, способный создавать VTF-файлы только из TARGA (.tga). Есть альтернатива получше – VTFEdit, которая работает с большинством форматов, имеет собственный интерфейс и обилие функций.

Типы файлов

VTFEdit открывает файлы .bmp, .jpg, .gif, .png и .tga.

Если вы не знакомы с их особенностями, то вот всё, что вам действительно нужно знать:

  • PNG, GIF и TGA поддерживают прозрачность.
  • GIF поддерживает анимацию (но перед импортированием нужно разбивать на кадры).
  • Для всего остального рекомендуется JPG.
  • С BMP не связывайтесь.

PNG-8 против PNG-24

24-битные PNG-файлы поддерживают переменную прозрачность, но плохо импортируются в VTFEdit, так что для переменной прозрачности нужно использовать .tga.

TARGA (.tga)

TARGA – это старый причудливый формат изображений со своими приятными особенностями, но во многих областях он вытесняется форматами PSD или PNG. Главная проблема состоит в поиске программ, способных создавать/редактировать такие файлы. Как вы могли догадаться, лучшим инструментом для этого является Photoshop. VTFEdit/VTEX хорошо дружат с TARGA, так что если возникают проблемы с импортированием, конвертируйте изображение в этот формат.

Импортирование в VTFEdit

Полагаю, к этому моменту вы уже приготовили желаемое изображение. Выбираем пункт меню File>Import. Для начала познакомьтесь с этим окном:

Здесь много всего, но я разобью по пунктам:

  • Normal Format: Какая компрессия используется для стандартных (непрозрачных) изображений.
  • Alpha Format: Компрессия, используемая в изображениях с прозрачностью.
  • Texture Type: Применяется, только когда вы импортируете больше одного изображения, и определяет, что они должны из себя представлять. В 99% случаев здесь выбирается Animated Texture.
  • Resize/Clamp: Тут можно изменить размер в последний момент, но я советую делать это заранее.
  • Generate Mipmaps: MIP-карты – это уменьшенные версии текстуры, которые игра будет накладывать при отдалении. Здесь лучше всё оставить по умолчанию.
  • Normal Map: Карты нормалей используются для придания текстуре мнимой глубины. Опять же, этим лучше заниматься самостоятельно, но вы можете дать VTFEdit шанс и проверить результат её работы.

Хорошее руководство по выбору компрессии есть на Valve Developer Wiki. Если возникают сомнения, оставляйте всё по умолчанию.

Вкладку Advanced мы пока не трогаем (здесь настраивается VTF-файл – оставляйте 7.2, если только не знаете точно, что делаете).

После нажатия ОК вы должны увидеть вот это:

Теперь, если не хотите поиграть с продвинутыми настройками, можете нажимать File>Save и получите готовый VTF-файл.

Создание VMT

Мы создадим голый скелет файла VMT для работы вместе с VTF. В той же папке, где вы сохранили свою progamer.vtf, создаём новый текстовый файл и называем его progamer.vmt, затем открываем в блокноте или другом текстовом редакторе и вводим эти строки:

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

Basetexture – это созданный вами файл VMT: заметьте, что у него нет расширения и он находится в папке progamer, которую мы пока не создали (но вскоре создадим).

Surfaceprop определяет некоторые физические свойства текстуры.

В VMT-файл можно много чего добавить, расширенный список можно найти на Valve Developer Wiki.

Hunterae.com

Этот сайт должен быть в закладках у каждого видео-дизайнера. Мы поставили его на первое место в списке, потому что он предоставляет дизайнерам много уникального и качественного контента:

  • 27 000 шаблонов и плагинов для After Effects;
  • 2500 шаблонов для Premiere Pro;
  • 1200 проектов для Final Cut Pro от Apple;
  • 17 000 стоковых видео и моушн графики.

Покупка готовых шаблонов может стать серьезной статьей расходов для крупного проекта. В магазинах один шаблон для After Effects может стоить 20-100 долларов. HunterAE — лучшее решение для тех, кто хочет и сэкономить на создании проекта, и получить качественный видеоролик, ничем не уступающий видеороликам конкурентов.

Все проекты на сайте разделены на две категории: «free» и «premium». Free-шаблоны вы можете скачивать абсолютно бесплатно, причем они не уступают в качестве платным шаблонам. Чтобы скачать premium-шаблон, нужно приобрести подписку. Выгодно ли это? Конечно! Купив подписку, вы открываете огромную библиотеку шаблонов, за эти же деньги вы едва ли смогли бы купить даже один проект для AE.

Для создания профессионального проекта хватит и free-шаблонов, ведь их действительно много. Не стоит беспокоиться об авторских правах, все шаблоны распространяются абсолютно легально, причем с лицензией, которая позволяет использовать их в неограниченном количестве проектов.

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

«Уроки по Unreal Engine 4» от YouTube-канала «Институт Марксизма-Ленинизма»

Пройти курс

Длительность: 53 урока.

Формат обучения: видеоуроки.

Программа:

  1. Создание террейна, материалы.
  2. Создание персонажа. С нуля. Adobe Fuse. Mixamo.
  3. Изменение расстояния до камеры прокруткой колесика мыши.
  4. Создание телепорта.
  5. Динамическое изменение дня и ночи, часть 1.
  6. Динамическое изменение дня и ночи, часть 2.
  7. Создание пещеры.
  8. Продвинутое полное изменение дня и ночи.
  9. Виджеты, вывод времени суток виджетом на экран.
  10. Что такое лоды (LODs).
  11. Звуки. Музыка, птицы, сверчки, костёр, звуки шагов.
  12. Разные звуки шагов в зависимости от материала.
  13. Продвинутое полное изменение дня и ночи. Патч 2.0.
  14. Сохранения. Автосохранение, автозагрузка игры.
  15. Создание персонажа. Анимация. С нуля. Mixamo.
  16. Добавление оружия.
  17. Создание нон-таргет боевой системы.
  18. Свечение оружия (материала). Emissive Color.
  19. Создание смерти и респавна персонажа.
  20. Создание вражеского моба. Как создать NPC в UE4.
  21. Создаём искусственный интеллект мобу. AI Controller.
  22. Создаём боевую систему моба. Создаём спавнеры.
  23. Реакция моба на урон. Настраиваем коллизию.
  24. Создаём интерфейс для прокачки персонажа.
  25. Создаём систему прокачки персонажа.
  26. Улучшаем виджет HP и названия моба.
  27. Как создать игру на Unreal Engine 4 с управлением мышью
  28. Основы работы с материалами для террейна.
  29. Создание главного меню и меню паузы.
  30. Создание интерфейса (виджетов) меню настроек.
  31. Создание логики меню настроек.
  32. Инициализация персонажа и начала игры.
  33. Сохранение игры в слоты.
  34. Загрузка игры из слота сохранения.
  35. Создание эвентов одиночного и двойного нажатия по виджету.
  36. Обзор инвентаря на Unreal Engine 4.
  37. Создание инвентаря. Часть 1.
  38. Создание инвентаря. Часть 2.
  39. Создание инвентаря. Часть 3.
  40. Создание инвентаря. Часть 4.
  41. Создание инвентаря. Часть 5.
  42. Установка своего курсора в Unreal Engine 4.
  43. UI/UX для UE4.
  44. Создание персонажа на C++ с нуля.
  45. Материалы в Unreal Engine 4, PBR и маски, создание многослойного материала для террейна.
  46. Большой открытый бесшовный мир.
  47. Как создать онлайн-платформер на Unreal Engine 4.
  48. Локализация игры на Unreal Engine 4 (как добавить поддержку многих языков в свою игру).
  49. Работа с триггерами, светом, массивами и циклами в Unreal Engine 4 на C++.
  50. Создание автомобиля, как в него садиться и ездить.
  51. Сборка движка Unreal Engine 4 из исходников на GitHub.
  52. Вызов блупринтового виджета из C++.
  53. Вводное пособие по работе с искусственным интеллектом на Unreal Engine 4 для начинающих.

Чему научитесь:

  • Создавать онлайн-платформеры на UE 4.
  • Добавлять большое количество языков в свой проект.
  • Создавать боевую систему для NPC.
  • Добавлять оружие и настраивать его баллистические свойства.
  • Создавать телепорты для быстрого перемещения.

Объекты Unity Game

Что такое GameObjects

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

Если у вас есть опыт веб-дизайна, вы можете думать о GameObjects как о элементах <div>! Чрезвычайно скучные контейнеры, но они легко расширяемы для создания сложной функциональности или визуальных эффектов.

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

Буквально все, от эффектов частиц, камер, игроков, элементов пользовательского интерфейса… (список продолжается) — это GameObject.

Создание иерархии

Как и <div> в веб-разработке, GameObject также является контейнером. Подобно тому, как вы вкладываете <div> для создания разнообразных и желаемых макетов или абстракций, вы можете сделать то же самое с игровыми объектами.Логика вложения игровых объектов во многом такая же, как и при веб-разработке, я приведу несколько примеров …

Беспорядок и эффективность

Позиционирование

material текстуры с бампом с отражениями

И если что, отражения имеется ввиду не просто отражение света, а отражение как у зеркала, которое отражает ВСЁ. Теперь делаем всё тоже самое что и с материал текстурой без отражений, но не меняем тип текстуры в строке shader и вместо добавления brush specular добавляем reflection

И в настройках reflection мы ставим галочку на use cubemap(наверно щас вы поняли что такое env_cubemap, если нет я всё равно потом объясню) это нужно что бы отражения отражали всё вокруг, но если вы хотите что бы текстура отражала какую то картинку а не всё вокруг то снимайте галочку и в текстовое поле reflection укажите имя картинки. Теперь в текстовое поле mask укажите картинку с specular в vtf формате так же как и было с bump и diffuse и опять же не указывая расширение и путь. Теперь можем сохранять текстуру.

Что такое фантазия?

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

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

Абстрактное определение, происхождение и природа фантазии широко обсуждаются, так же, как и обсуждаются такие широкие понятия как любовь и творчество. Согласно мнению великих философов Аристотеля, Платона и Иммануила Канта, воображение широко связано с творчеством.

«Креативность возрастает, когда вы начинаете осознавать, что многие из ваших фантазий могут иметь отношение к тем вещам, которые вам интересны», – говорит психолог Джером Сингер. .

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

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

«Восприятие и воображение связаны, потому что мозг использует одни и те же нейронные цепи для обеих функций», – говорит Грегори Бернс, профессор нейроэкономики и директор Центра нейрополитики в Университете Эмори. «Воображение подобно движению восприятия в обратном направлении» .

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

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

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

Вера в то, что воображение чем-то уступает логическим рассуждениям, часто убивает и подавляет потенциальные великие идеи

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

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

По словам Кауфмана, в частности, три крупномасштабные сети мозга могут помочь понять мозговую активность, участвующую в творческом мышлении:

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

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

Исследователи уделяют особо пристальное внимание изучению сети воображения, чтобы детальнее понять умение фантазировать, мечтательность и творческое мышление

Зомби — сдохни или умри!

Первым делом в Animation Controller зомби нужно добавить анимацию смерти. Перетаскиваем туда саму анимацию AssetPacks⇨ToonyTinyPeople⇨TT_demo⇨animation⇨zombie⇨Z_death_A.  Параметр died с типом trigger создаётся для её активации. Триггер, в отличие от других параметров, выступают как вызов функции, их значение откатывается к начальному после выполнения перехода. Игрок одинаково успешно может убить как идущего зомби, так и застывшего на месте, поэтому переход следует добавить из состояния Any State:

Дополним скрипт Zombie следующими полями:

В Start класса Zombie внесём:

Добавим проверку в начале метода Update:

В классе Zombie укажем метод Kill:

Необходимость создания новых полей очевидна. В методе Kill ставится флаг гибели зомби, удаляются компоненты CapsuleCollider, MovementAnimator и NavMeshAgent из игрового объекта и активируется проигрывание анимации смерти в контроллере.

Компоненты нужно удалить, чтобы зомби после поражения не перемещался и перестал быть препятствием для пуль. В идеале, после воспроизведения анимации смерти зомби было бы хорошо как-то изящно избавляться от тела, чтобы поддерживать производительность на достаточно хорошем уровне. Простейший способ — добавить вызов Destroy(gameObject, 3), и в течение 3-х секунд Unity удалит этот игровой объект.

В качестве финального аккорда в класс Player, метод Update, в месте вызова Physics.Raycast, к описанию случая обнаружения пересечения, необходимо добавить проверку:

Вызов Physics.Raycast передаёт данные о пресечении в переменную hit. А именно, появится ссылка на компонент Transform объекта, с которым пересекся луч, в поле transform. Зомби будет убит, если в объекте обнаружен компонент Zombie.

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

Кликаем правой кнопкой мыши по объекту Zombie, чтобы добавить систему частиц (Effects⇨Particle System):

Position: Y 0.5

Rotation: X -90

Particle System

Duration: 0.2

Looping: false

Start Lifetime: 0.8

Start Size: 0.5

Start color: зеленый

Gravity Modifier: 1

Play on Awake: false

Emission:

Rate over Time: 100

Shape:

Radius: 0.25

В итоге выглядеть будет так:

И наконец активируем в методе Kill класса Zombie:

Экспорт вашего мода Minecraft

После того, как вы создали свой мод, вам необходимо экспортировать его для использования в Minecraft.

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

Примечание. Если вы хотите работать с несколькими модами одновременно, переключитесь на другое рабочее пространство из главного меню.

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

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

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

Работа с Префабом

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

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

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

Чтобы создать префаб, перетащите GameObject из иерархии в окно проекта.

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

Поскольку у нас нет префаба, нажимаем кнопку Original Prefab.

Вы заметите, что ваш значок станет полностью синей. Это означает, что вы работаете с экземпляром префаба.

Выберите hextraction_pod из иерархии. В окне инспектора вы увидите две кнопки: Open и Select. Есть также выпадающий список под названием Overrides:

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

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

Когда вы вносите изменения в префаб, вы вносите изменения в один экземпляр префаба. В Unity-speak вы переопределяете части префаба. Вы можете применить эти изменения к другим префабам, отменить изменения или просто оставить их как есть. Это делается путем открытия Overrides.

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

Выберите префаб и в окне инспектора нажмите кнопку Open. Затем выберите объект Tile_reference GameObject из Иерархии. Это прямой потомок объекта GameObject hextraction_pod.

Удалите сетку, нажав клавишу Delete в Windows или Command-Delete на macOS. Щелкните стрелку назад в иерархии, чтобы выйти из редактирования префаба.

При выходе из префаб-режима вам будет предложено сохранить изменения. Нажмите кнопку Save.

Затем щелкните правой кнопкой мыши на hextraction_pod в окне иерархии, выберите Rename из выпадающего меню, которое появляется, и переименуйте GameObject в Spaceship. Это должно выглядеть следующим образом:

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

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

Вперед, моя неудержимая армия космических кораблей! Мухахаха!

Стрельба по зомби как призвание

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

Нужно создать новый объект Shot и добавить к нему LineRenderer. В поле Width обозначается ширина — 0.04 будет достаточно. На изображении видно, что объект имеет ярко-фиолетовый цвет — так в Unity обозначаются объекты без материала.

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

В папку Materials положим материал под названием Yellow. Для него выберем стандартный шейдер Unlit/Color. Он не учитывает освещённость, поэтому пулю будет хорошо видно.

Применяем жёлтый цвет к объекту:

Назначаемего LineRenderer’у:

Добавим скрипт Shot:

Этот скрипт добавляем к объекту Shot.

Чтобы отображать 1 выстрел на кадр с минимумом кода, была применена хитрость. Во-первых, применён не Update, а FixedUpdate, которому присуща определённая периодичность вызова (по умолчанию её значение равно 60 кадров в секунду). Во-вторых, введена переменная visible с значением true во время выведения выстрела на экран. В следующем цикле FixedUpdate значение переменной меняется на false, и соответственно объект выстрела перестаёт отображаться. Эта логическая переменная работает как счётчик от 1 до 0.

Используем метод gameObject.SetActive, чтобы выключить объект. Он включает или выключает игровой объект, на котором расположен интересующий нас компонент. Отключенные объекты не выводятся на экран, а для их компонентов не вызываются методы. Благодаря этому методу действия персонажа выглядят логично — выстрел не видно, когда герой не стреляет.

В скрипте Player используем публичный метод Show для отображения пули при выстреле. Перед этим, чтобы выстрел производился из верного отверстия, нужно определить координаты дула оружия. После того, как в трёхмерной модели героя нашли объект Bip001⇨Bip001Pelvis⇨Bip001 Spine⇨Bip001 R Clavicle⇨Bip001 R UpperArm⇨Bip001 R Forearm⇨Bip001 R Hand⇨R_hand_container⇨w_handgun, нужно добавить в него «дочку» GunBarrel, расположив максимально близко к дулу.

Теперь скрипт Player дополним следующими полями:

Подобно moveSpeed, публичное поле gunBarrel доступно также в Инспекторе. Пора назначить полю ранее созданный игровой объект:

Теперь при запуске игры персонаж может отстреливаться от зомби.

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

Исправить это довольно просто­ — в классе Player между строками var to = … и shot.Show(…) допишем строки:

Чтобы луч вылетал из дула пистолета, и можно было определить факт его пересечение с другими объектами в сцене, используется Physics.Raycast.

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

Коллайдер является компонентом для определения столкновений объектов в сцене, обычно имеет простую геометрическую форму (куб, сфера, например).  Точность столкновений при этом невысока, зато формулы пересечений простые и не требуют сложных вычислений. В случаях, когда точность важнее производительности, можно использовать MeshCollider. Нам подойдёт пока стандартный компонент CapsuleCollider:

Пуля больше не пролетает сквозь зомби, но всё ещё не убивает его.

Итог

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

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

И напишите, какую собаку представили вы:)

До новых встреч, ваш Александр Горохов.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
3D-тест
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: