|
| |||
|
| |||
| |
Здравствуйте. Вы находитесь на сайте Unreal Level. Данный ресурс посвящен редакторам карт игр серии Unreal, UT и Gears of War. Основная цель сайта , помочь всем желающим освоить любой из редакторов вышеперечисленных серий. Наибольшим приоритетом на этом сайте, обладает редактор UnrealED for Unreal Engine 3 и редактор движка Unreal Engine 3.5, входящий в комплект разработки UDK, поскольку это наиболее актуальная на сегодняшний день технология. |
|
Creating Custom Characters for UDK
автор: FACH | 24 Декабря 2010 | Просмотров: 12167
Автор: Джефф Уилсон Перевод: LS Оригинал: Creating Custom Characters for UDK
Введение
Для получения дополнительной информации о программной части настройки персонажей смотрите «Characters Technical Guide».
Скелет
Ниже приведены 4 различных скелета, которые могут быть использованы в качестве руководства или основы для создания собственных персонажей в UDK:
Также можете скачать скелет рук от «первого лица»:
Поскольку мастер-скелет содержит в себе каждую существующую кость, то хорошей идеей будет использовать его для скиннинга нового меша, так как в этом случае будут доступны все имеющиеся для использования кости.
Для простоты в этом документе будут использоваться персонажи, использующие уже существующие кости для того, чтобы использовать существующие в UDK наборы анимаций.
Развесовка меша по скелету
При создании своего меша лучше всего держать скелет перед глазами. Мешь должен быть смоделирован со всеми суставами на местах, которые уже определены скелетом. Для меша, который не следует этому правилу, суставы скелета можно вращать, чтобы составить мешь с костями в одну линию. Анимации в игре вернут кости туда, где они должны быть, чтобы анимация проигрывалась правильно. Хоть и кости можно вращать, они никогда не должны быть перемещены или изменены в размерах при попытке разместить их внутри меша. Это даст неожиданные результаты в игре и сплющит или вытянет мешь, потому что анимации вернут кости на место, где они должны быть. Например, если мешь персонажа имеет ноги короче, чем определено скелетом и ноги скелета будут уменьшены, в игре ноги растянутся, так как костям будет возвращен их начальный размер. Правильный путь настройки соответствия меша и скелета это вращение суставов по мере необходимости, чтобы получить их как можно более соответствующими и/или, если это необходимо, изменить сам мешь. Создание персонажей с другими пропорциями потребует новый мастер-скелет и, если пропорции сильно отличаются от персонажей, которые уже существуют, может потребоваться также создание для них новых анимаций, что выходит за рамки данной документации.
Посмотрите на мешь ниже в качестве примера. Он был смоделирован при использовании стандартного мужского скелета. Все важные кости и части тела хорошо выстроены в линию так, что никаких серьезных настроек не требуется. Это делает очень простым процесс развесовки меша по скелету.
Экспортирование
Далее идет экспорт Вашего персонажа и импорт его в движок. Скелетные меши экспортируются из 3D-приложений либо ActorX плагином предоставляемым Epic, либо встроенным в приложения FBX экспортером. ActorX - данный документ рассматривает использование ActorX плагина. Для получения дополнительной информации об экспорте в .fbx формат смотрите «FBXImporterUserGuide».
ActorX плагин можно загрузить с ActorX страницы в интернете. Как только плагин был скачан и установлен, откройте 3D-приложение и убедитесь, что плагин загружен. Не забудьте проверить правильность настройки Skin Export.
Выделенный all skin-type флаг гарантирует, что отскинниный мешь будет экспортирован. Используя флаг only selected, Вы можете легко экспортировать отдельные меши в сцене по одному. Если по какой-то причине эта опция не работает или не доступна в данной версии, просто удалите меши, которые Вы не хотите экспортировать, но, ни в коем случае не удаляйте какие-либо части скелета меша, который в настоящее время пытаетесь экспортировать. Просто для уверенности сохраните сцену до удаления любых частей меша, чтобы у Вас была полная версия сцены и к ней можно было в любой момент вернутся, и тогда помните - не сохраняйте сцену после удаления каких-либо ее частей!
Пропишите путь сохранения файла и его имя и нажмите сохранить мешь для создания .psk файла. Если в сцене присутствуют какие-либо анимации, ActorX использует первый кадр временного бегунка (как правило нулевой кадр) для позы меша при экспорте.
Импортирование
Откройте редактор и в Content Browser нажмите кнопку Import в нижней левой части панели Sources. В появившемся окне найдите Ваш экспортированный .psk файл и нажмите «Открыть».
После того, как Вы нажмете «Открыть» появится другое окно, спрашивающее, что Вы хотите сделать с файлом. Поле Package в этом окне позволяет импортировать файл в уже существующий пакет или создать новый. Чтобы создать новый, введите в поле имя несуществующего пакета. Новый пакет будет создан и Ваш мешь будет импортирован в него после того как Вы выберите «Ok». Чтобы импортировать в уже существующий пакет введите имя существующего пакета или выберите из выпадающего списка. В этом же окне Вы может создать подгруппы в рамках пакета в поле Group, а также изменить имя меша в поле Name.
![]()
Как только мешь будет импортирован, сохраните пакет (если Вы создавали новый) в следующий каталог: [КорневаяПапкаUDK]UTGameContentCharacters
Добавление сокетов мешу
Сокеты (Sockets) – это размещенные пользователем точки на скелетном меше. Они могут быть добавлены любому скелетному мешу в UDK и используются для многих вещей, включая точки приложения испускания систем частиц или прикрепление оружия. Они должны быть добавлены к Вашему новому персонажу, чтобы он мог правильно функционировать в игре. Чтобы добавить сокеты щелкните два раза по скелетному мешу, которому Вы хотите добавить в окне Content Browser. Откроется окно редактора скелетных мешей/настройки анимации («AnimSet Editor»). Щелкните по иконке Socket Manager на главной панели инструментов или выберите его из списка меню Mesh.
В появившемся окне щелкните по New Socket, затем выберите кость, к которой сокет будет присоединен, и затем введите его имя.
Персонажи UTGame присутствующие в UDK имеют конкретные сокеты, необходимые для того, чтобы произвольный персонаж мог работать с текущей кодовой базой. Если Вы хотите чтобы Ваш персонаж работал правильно без какого-либо дополнительного кодирования, Ваш мешь должен иметь по крайней мере эти сокеты:
Socket Name Bone Name WeaponPoint b_RightWeapon DualWeaponPoint b_LeftWeapon L_JB b_LeftAnkle R_JB b_RightAnkle HeadShotGoreSocket b_Neck
Ноги персонажа или ботинки должны иметь два сокета для испускания системы частиц при использовании Jump Boots. Эти сокеты должны называться L_JB для левой ноги и R_JB для правой ноги соответственно. Например, чтобы добавить сокет L_JB нажмите New Socket, выберите кость b_LeftAnkle, затем введите имя сокету L_JB.
Сокеты можно перемещать и вращать для того, чтобы они были размещены правильно по отношению к мешу. После создания эти сокеты появятся в начале кости лодыжки, но нам необходимо, чтобы частицы появлялись из нижней части ноги. В окне Socket manager первые две иконки используются для перемещения и вращения сокетов. С помощью иконки перемещения сдвиньте сокет в нижнюю часть ноги. Может также потребоваться повернуть некоторые сокеты для того, чтобы испускаемая система частиц имела правильное направление или чтобы правильно присоединить объект. Вы также можете открыть окно Socket Manager на других скелетных мешах поставляемых вместе с редактором, чтобы получить представление о том, как и где должны располагаться сокеты.
Настройка персонажа для использования в игре
Последний шаг заключается в настройке UDK для использования Вашего нового персонажа. Этот процесс будет требовать погружения в UnrealScript для того, чтобы создать один новый подкласс UTFamilyInfo и изменить один существующий класс – UTPlayerReplicationInfo. Конечно, мы можем сделать гораздо больше вещей для того, чтобы создать полностью играбельного персонажа в UDK, но большая часть из них выходит за рамки этого документа. Мы собираемся сосредоточиться только на предметах первой необходимости для настройки «работоспособности» Вашего персонажа.
Подкласс UTFamilyInfo
Класс UTFamilyInfo в основном представляет собой контейнер для свойств, которые позволяют Вам указать, какой использовать мешь, physics assets, animset, материалы, ошметки после смерти и т.д. для одного или группы персонажей. Хотя этот класс содержит также некоторые другие функции, в рамках этого документа приемлемо рассматривать его как место для настройки некоторых свойств, чтобы позволить Вам добавить своего персонажа в UDK.
В этом примере мы создадим один подкласс и используем его только для одного персонажа. В теории, Вы можете создать иерархию из классов и определить общие свойства для группы персонажей, которые все различаются друг от друга чем-то. Например, группа персонажей может различаться общей чертой с точки зрения их внешнего вида. Также эти персонажи относятся к одной и той же фракции. Вы затем можете создать несколько подклассов этого нового класса. Каждый из них может содержать определенного персонажа в рамках этой фракции.
Прежде чем идти дальше, сначала необходимо создать новый подкласс для Вашего персонажа: Class UTFamilyInfo_SpaceMarine extends UTFamilyInfo abstract;
defaultproperties { }
Теперь в блок default properties этого класса Вы может добавить свойства для создания персонажа. Наиболее важным свойством в Вашем новом классе является свойство CharacterMesh. Как Вы уже догадались это свойство должно указывать скелетный мешь, который был импортирован ранее. В нашем примере это будет: CharacterMesh=SkeletalMesh'UDNCharacters.SpaceMarine'
Вы должны продолжать идти тем же путем и продолжить настройку свойств. Некоторые из наиболее важных свойств описаны ниже. Faction – имя общей группы, к которой принадлежит этот персонажи или группа персонажей. FamilyID – имя семьи (группы), к которой принадлежит персонаж. CharacterTeamBodyMaterials – массив материалов для использования в качестве материала тела персонажа для командных режимов игры. 0 – индекс для красных, 1 – для синих. CharacterTeamBodyMaterials - массив материалов для использования в качестве материала головы персонажа для командных режимов игры. 0 – индекс для красных, 1 – для синих. PhysicsAsset – ссылка на Physics asset, созданный для скелетного меша персонажа. AnimSets – массив из AnimSet’ов, используемых для Вашего персонажа(ей). ArmMeshPackageName – название пакета, содержащего мешь рук «первого лица» для этого персонажа. ArmMesh – ссылка на мешь рук от «первого лица» для этого персонажа. ArmSkinPackageName – название пакета, содержащего материалы для меша рук от «первого лица» этого персонажа. RedArmMaterial – ссылка на материал красной команды для меша от «первого лица» этого персонажа. BlueArmMaterisl - ссылка на материал синей команды для меша от «первого лица» этого персонажа. Конечно, есть многие другие свойства, которые Вы можете установить и их все можно найти в скрипте UTFamilyInfo.uc. Большинство свойств описаны в комментариях к скрипту.
После того, как пропишите все свойства персонажа сохраните скрипт в следующую директорию: [YourUDKInstallationDirectory]/Development/Src/UTGame
Класс UTPlayerReplicationInfo
Теперь Вы должны указать UDK, что надо использовать этот новый класс вместо класса по умолчанию. Это можно сделать в файле UTPlayerReplicationInfo.uc в блоке default properties. Последняя строка по умолчанию должна выглядеть следующим образом:
CharClassInfo=class'UTGame.UTFamilyInfo_Liandri_Male'
Все что Вам нужно это изменить класс на вновь созданный. В этом примере строка будет такой: CharClassInfo=class'UTGame.UTFamilyInfo_SpaceMarine'
Сохраните измененный скрипт и откомпилируйте. Надеюсь, что у Вас не появится каких-либо ошибок при компилировании. Теперь можете проверить Вашего нового персонажа в игре. #1 написал: netgoblin 26 Декабря 2010 03:11 | ICQ: Не Указано |
#2 написал: LS 26 Декабря 2010 15:13 | ICQ: Не Указано |
#3 написал: netgoblin 26 Декабря 2010 15:42 | ICQ: Не Указано |
#4 написал: LS 26 Декабря 2010 18:12 | ICQ: Не Указано |
#5 написал: netgoblin 26 Декабря 2010 20:08 | ICQ: Не Указано |
#6 написал: FACH 26 Декабря 2010 21:16 | ICQ: 562039160 |
#7 написал: netgoblin 27 Декабря 2010 06:16 | ICQ: Не Указано |
#8 написал: netgoblin 3 Января 2011 13:28 | ICQ: Не Указано |
#9 написал: LS 3 Января 2011 14:10 | ICQ: Не Указано |
#10 написал: ahtam 20 Января 2011 19:36 | ICQ: Не Указано |
#11 написал: sufiks 8 Июля 2011 14:28 | ICQ: Не Указано |
#12 написал: FACH 10 Июля 2011 19:07 | ICQ: 562039160 |
#13 написал: sufiks 12 Июля 2011 10:31 | ICQ: Не Указано |
#14 написал: FACH 12 Июля 2011 14:08 | ICQ: 562039160 |
#15 написал: Hoxton 22 Марта 2012 23:03 | ICQ: Не Указано |
#16 написал: DENTNT 23 Марта 2012 07:29 | ICQ: 430517502 |
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...
|
|
|
При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна! © 2008—2012, UNREAL-LEVEL.RU. Все права защищены. |