Как сделать персонажа в unity3d от первого лица
Перейти к содержимому

Как сделать персонажа в unity3d от первого лица

Делаем управление от 1 лица для шутера

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

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

Делаем управление от 1 лица для шутера, изображение №1

Капсулу я немного растянул по Y и сжал по X, Z, что бы персонаж имел примерно те же габариты, что и реальный человек. А камеру «повесил» на тело персонажа.

Теперь приступим к написанию скриптов. Для начала напишем скрипт поворота камеры мышкой. Создадим скрипт «MouseLook.cs» и напишем в него следующее:

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

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

Приступим к написанию скрипта передвижения. Создадим скрипт «FirstPersonController.cs» и напечатаем следующее:

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

Теперь крепим скрипт к телу игрока. Добавляем так же компонент «Character Controller», он в дополнительной настройке не нуждается. Осталось только разместить в сцене Plane и поднять игрока над ним. Теперь можно запускать игру и бегать по виртуальному миру. Наш персонаж нуждается в доработке, но сейчас у нас уже есть основа для продолжения.

Платформер от первого лица на Unity3D

Учебные материалы для школы программирования. Часть 5

Предыдущие уроки можно найти здесь:

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

Все материалы к занятию вы найдете здесь.

Порядок выполнения

Создадим новый проект, импортируем в него стандартные ассеты Characters и Prototyping. Из префабов Prototyping создадим подобие игрового уровня.

Создадим платформу и вызовем окно анимации.

Нажмём на Create и назовём нашу анимацию.

Перейдём в режим записи и создадим новое правило для платформы — Transform->position.

Это необходимо, чтобы проставить первый и последний кейфрейм.

Поставим курсор куда-нибудь посередине и подвигаем платформу.

Автоматически создался ещё один кейфрейм. Если запустить проект, можно заметить, что платформа двигается.

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

Переключившись в режим Curves, немного изменим характер её движения.

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

Создадим ещё одну платформу, но вложим её в пустой объект и выровняем в нули. Создадим новую анимацию.

Теперь, перемещая родительский объект, можно перемещать платформу вместе с анимацией.

Также, стоит коснуться работы аниматора. Найдём AnimatorController, выделим его и откроем окно Animator.
Создадим ещё одну анимацию и настроим переходы.
На этом этапе стоит объяснить принципы работы аниматора и возможность создавать условные переходы и переходы между анимациями с блендингом.

Теперь платформа воспроизводит первую анимацию, затем, 2 раза вторую, и так — по кругу. Обязательно расскажите ребятам, о возможности менять скорость анимации в аниматоре.

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

FPS скрипт управлениия от первого лица

Шутеры от первого лица довольно популярны, особенно если они грамотно сделаны. Однако, если вы только начинаете изучать Unity и хотите сделать что-то наподобие Counter-Strike или вроде того. Могу возникнуть некоторые трудности с управлением персонажа. Заставить объект двигаться, просто, но в нашем случае нужно, чтобы персонаж двигался туда, куда он «смотрит». Конечно, в играх есть еще анимация движения и прочие мелочи, всё это вы уже сами добавите в скрипт, если будет нужно. Нам главное сделать управление движения и прыжок. Впрочем, есть и другой тип игр, где такой простой скрипт подойдет, например: Dear Esther, The Vanishing of Ethan Carter и т.п.

Создаем скрипт PlayerControl

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

Всё достаточно просто. Различные детали, каждый сможет настроить под себя, плюс можно еще сделать материал для физики тела, например, чтоб увеличить коэффициент трения или наоборот, изменить массу Rigidbody, ну и прочее. В общем, поэкспериментируйте с настройками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *