Как сделать выбор персонажа в unity
Перейти к содержимому

Как сделать выбор персонажа в unity

  • автор:

Подготовка своего персонажа

Существует три главных шага по созданию “с нуля” своего анимированного гуманоидного персонажа: моделирование, риггинг и скиннинг.

Моделирование

Это процесс создания своих гуманоидных мешей в одном из инструментов 3D моделирования — 3DSMax, Maya, Blender, и т.д. Хоть это и целая тема для обсуждения сама по себе, существует несколько принципов, которые рекомендуется соблюдать, чтобы ваша модель была совместима с анимацией в Unity проекте.

Skin Mesh, текстурированный и триангулированный

  • Соблюдайте разумную топологию. Понятие “разумной” структуры вашего меша довольно тонкое, но в целом вам следуем помнить о том, как вершины и треугольники модели будут искажаться при анимации. Неправильная топология приведёт к неприятным искажениям меша при движениях модели. Изучая существующие 3D меши персонажей, можно узнать много нового о том, как правильно размещать топологию и почему.
  • Не забывайте про масштаб вашего меша. Попробуйте импортировать модель и сопоставить её размер с “метрическим кубом” (длина одной стороны стандартного Unity примитива “куб” равна одной условной единице, так что такой примитив можно рассматривать как однометровый куб в большинстве случаев). Проверьте единицы измерения вашего приложения для 3D моделирования и скорректируйте настройки экспорта так, чтобы размер модели был в нужных вам пропорциях к метровому кубу. Если не учитывать это при работе над моделями, легко прийти к ситуации, когда вы создадите несколько разных моделей без учёта масштаба и они окажутся несоразмерны после импорта в Unity.
  • Располагайте меш так, чтобы ступня персонажа находилась в центре вращения модели. Так как обычно персонаж ходит по горизонтальной поверхности, будет намного проще с ним работать, если его центр вращения(то есть, его позиция трансформации) будет на этой поверхности.
  • По возможности, моделируйте в Т-позе. Это даст дополнительное пространство для манёвра при работе над труднодоступными местами (например, подмышками). Кроме того, это упростит размещение рига внутри меша.
  • Держите модель в порядке. Не оставляйте дырок в поверхности, объединяйте вершины и избавляйтесь от скрытых поверхностей, которые никогда не будут видны. Это поможет при скиннинге, особенно если скиннинг автоматизирован.

Риггинг

Это процесс создания скелета из сочленений для управления движениями вашей модели.

Программы для 3D моделирования предоставляют множество инструментов создания сочленений гуманоидного рига. От уже готовых скелетов, которые достаточно отмасштабировать под свою модель, до средств создания отдельных костей и объединения их в костную структуру. Чтобы риг работал с Mecanim, таз должен быть корневым элементом всей иерархии костей и в скелете должно быть не менее 15 костей.

Иерархия сочленение/кость должна соответствовать натуральной структуре создаваемого персонажа. Поэтому руки и ноги должны идти в парах и вам следует соответствующе их называть (напр. “arm_L” для левой руки, “arm_R” для правой и т.д.). Возможные структуры иерархии:-

Двуногий скелет в Т-позе

  • Таз — позвоночник — грудная клетка — плечи — рука — предплечье — кисть
  • Таз — позвоночник — грудная клетка — шея — голова
  • Таз — бедро — нога — ступня — палец — конец_пальца

Скиннинг

Это процесс привязки меша к скелету.

Скиннинг включает в себя связывание вершин в вашем меше с костями скелета. Вершина может быть связана с костью напрямую (жёсткая привязка) или с несколькими костями, используя на них смешанные воздействия (мягкая привязка). В разных программах используются разные способы, например, привязывание отдельных вершин и вписывание в меш степени воздействия на каждую кость. Изначальная настройка обычно автоматизирована, к примеру, с помощью поиска ближайшего воздействия, или с помощью “heatmap”. Обычно скиннинг требует изрядного количества работы и тестирования с помощью анимаций, чтобы достичь желаемых результатов деформации скина. Вот несколько основных рекомендаций для этого процесса:

Интерактивное привязывание скина, один из многих способов скиннинга

  • Используйте автоматизацию для начальной настройки скиннинга (см. соответствующие руководства для 3DMax, Maya и т.д.).
  • Создавайте простые анимации или импортируйте готовые анимации для своего рига, чтобы проверить скиннинг. Это позволит вам быстро выяснить, хорошо ли выглядит ваш скиннинг во время движения.
  • Постепенно редактируйте и улучшайте свою работу по скиннингу.
  • Используйте не более 4 воздействий при использовании мягкой привязки, т.к. это наибольшее количество, которое может использовать Untiy. Если к части меша будет применено более четырёх воздействий, то как минимум часть информации будет потеряна при проигрывании анимации в Unity.

Как сделать выбор персонажа?

У меня есть сцена в которой можно выбрать персонажа, открываются они за рекорды. К примеру у тебя рекорд времени в игре 25 секунд и тогда откроется персонаж который открывается при 25 секундах. Пока персонаж не открыт, он имеет черный цвет (типа он еще не открыт) Происходит это так

using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class IsEnabled : MonoBehaviour < public int NeedToUnlock; public Color NewColor; SpriteRenderer SpriteR; public Sprite Pink_Monster; public SpriteRenderer PinkMonster; void Start() < if (PlayerPrefs.GetInt("SaveScore") < NeedToUnlock) < GetComponent().color = Color.black; > >

В игре это выглядит так5fcc90e655179439699031.png
Мне нужно чтобы при нажатии на кнопку «Выбрать» и тогда в игре будет персонаж которого ты выбрал. К примеру я выбрал белого персонажа и в игре он появился (игра находиться на другой сцене). Объясните как это сделать?
5fcc91066d44e124955245.png

  • Вопрос задан более трёх лет назад
  • 424 просмотра

Выбор персонажа в меню игры

Author24 — интернет-сервис помощи студентам

Ребят, не прошу написать код. Прошу толкнуть в нужную сторону.

Начинаю изучать Unity, и первые шаги хочу сделать с создания игрового меню.

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

Я так понимаю, нужно создать некоторое кол-во превабов персонажей для каждой расы и для каждого рода (М,Ж), задать им ID, и потом по нажатию кнопок в меню листать эти ID из какого то config листа и менять префабы в сцене выбора персонажа для дальнейшей кастомизации. Затем нужно сохранить уже параметры кастомизированного префаба и передать на следующую сцену информации о персонаже и входа в игру. При последующем запуске игры сразу запускать сцену информации о персонажи с ранее сохраненными данными о персонаже.

А как это реализовать в C# хз.

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

Добавлено через 6 минут
Пока что создано префабы двух рас, Люди и Эльфы. В расе Люди созданы 2 префаба, один М и один Ж. В расе Эльфы, так же, один М и один Ж. И того четыре префаба.
Так же, созданы сцена Loading, MainMenu, GameScens1(Карта старта), GameScens2(первая карта мира).

Как сделать выбор персонажа?

У меня есть сцена в которой можно выбрать персонажа, открываются они за рекорды. К примеру у тебя рекорд времени в игре 25 секунд и тогда откроется персонаж который открывается при 25 секундах. Пока персонаж не открыт, он имеет черный цвет (типа он еще не открыт) Происходит это так

using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class IsEnabled : MonoBehaviour < public int NeedToUnlock; public Color NewColor; SpriteRenderer SpriteR; public Sprite Pink_Monster; public SpriteRenderer PinkMonster; void Start() < if (PlayerPrefs.GetInt("SaveScore") < NeedToUnlock) < GetComponent().color = Color.black; > > 

В игре это выглядит так введите сюда описание изображения Мне нужно чтобы при нажатии на кнопку «Выбрать» и тогда в игре будет персонаж которого ты выбрал. К примеру я выбрал белого персонажа и в игре он появился (игра находиться на другой сцене). Объясните как это сделать? введите сюда описание изображения

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

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