Здравствуйте. Вы находитесь на сайте 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:
UT3_Male.max
UT3_Female.max
UT3_Krall.max
UT3_Corrupt.max

ПРИМЕЧАНИЕ: с некоторыми скелетами также идет бипед. Бипед только лишь дополнительный скелет, облегчающий процесс анимирования. Когда анимация будет готова, запеките ее для оригинального скелета, удалите бипед и экспортируйте анимацию.

 

Также можете скачать скелет рук от «первого лица»:
SK_WP_1P_Arm_Bones.max

Хороший рабочий процесс заключается в использовании того, что можно было бы назвать «
master skeleton» файлом, который должен содержать в себе все кости, используемые каждым персонажем данного типа в пределах Вашей игры. Необязательно для меша персонажа использовать все кости, однако важно, чтобы master skeleton содержал в себе каждую кость для каждого персонажа. Например, если кто-то хочет создать персонажа в новом типе одежды, который ещё не существует таким образом, чтобы рукава свисали ниже самих рук. Тогда новые кости надо добавить в master skeleton таким образом, чтобы каждый меш работал корректно в процессе создания персонажей.

 

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

 

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

 

Развесовка меша по скелету

 

При создании своего меша лучше всего держать скелет перед глазами. Мешь должен быть смоделирован со всеми суставами на местах, которые уже определены скелетом. Для меша, который не следует этому правилу, суставы скелета можно вращать, чтобы составить мешь с костями в одну линию. Анимации в игре вернут кости туда, где они должны быть, чтобы анимация проигрывалась правильно. Хоть и кости можно вращать, они никогда не должны быть перемещены или изменены в размерах при попытке разместить их внутри меша. Это даст неожиданные результаты в игре и сплющит или вытянет мешь, потому что анимации вернут кости на место, где они должны быть.  Например, если мешь персонажа имеет ноги короче, чем определено скелетом и ноги скелета будут уменьшены, в игре ноги растянутся, так как костям будет возвращен их начальный размер. Правильный путь настройки соответствия меша и скелета это вращение суставов по мере необходимости, чтобы получить их как можно более соответствующими и/или, если это необходимо, изменить сам мешь. Создание персонажей с другими пропорциями потребует новый мастер-скелет и, если пропорции сильно отличаются от персонажей, которые уже существуют, может потребоваться также создание для них новых анимаций, что выходит за рамки данной документации.

 

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

 

 

Creating Custom Characters for UDK

 

 

Экспортирование

 

Далее идет экспорт Вашего персонажа и импорт его в движок. Скелетные меши экспортируются из 3D-приложений либо ActorX плагином предоставляемым Epic, либо встроенным в приложения FBX экспортером. ActorX - данный документ рассматривает использование ActorX плагина. Для получения дополнительной информации об экспорте в .fbx формат смотрите «FBXImporterUserGuide».

 

ActorX плагин можно загрузить с ActorX страницы в интернете. Как только плагин был скачан и установлен, откройте 3D-приложение и убедитесь, что плагин загружен. Не забудьте проверить правильность настройки Skin Export.

 

 

Creating Custom Characters for UDK

 

Выделенный all skin-type флаг гарантирует, что отскинниный мешь будет экспортирован. Используя флаг only selected, Вы можете легко экспортировать отдельные меши в сцене по одному. Если по какой-то причине эта опция не работает или не доступна в данной версии, просто удалите меши, которые Вы не хотите экспортировать, но, ни в коем случае не удаляйте какие-либо части скелета меша, который в настоящее время пытаетесь экспортировать. Просто для уверенности сохраните сцену до удаления любых частей меша,  чтобы у Вас была полная версия сцены и к ней можно было в любой момент вернутся, и тогда помните - не сохраняйте сцену после удаления каких-либо ее частей!

 

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

 

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

 

Откройте редактор и в Content Browser нажмите кнопку Import в нижней левой части панели Sources. В появившемся окне найдите Ваш экспортированный .psk файл и нажмите «Открыть».

 

 

Creating Custom Characters for UDK

 

 

После того, как Вы нажмете «Открыть» появится другое окно, спрашивающее, что Вы хотите сделать с файлом. Поле Package в этом окне позволяет импортировать файл в уже существующий пакет или создать новый. Чтобы создать новый, введите в поле имя несуществующего пакета. Новый пакет будет создан и Ваш мешь будет  импортирован в него после того как Вы выберите «Ok». Чтобы импортировать в уже существующий пакет введите имя существующего пакета или выберите из выпадающего списка. В этом же окне Вы может создать подгруппы в рамках пакета в поле Group, а также изменить имя меша в поле Name.

 

alt
 

 

Как только мешь будет импортирован, сохраните пакет (если Вы создавали новый) в следующий каталог:  [КорневаяПапкаUDK]UTGameContentCharacters

 

Добавление сокетов мешу

 

Сокеты (Sockets) – это размещенные пользователем точки на скелетном меше. Они могут быть добавлены любому скелетному мешу в UDK и используются для многих вещей, включая точки приложения испускания систем частиц или прикрепление оружия. Они должны быть добавлены к Вашему новому персонажу, чтобы он мог правильно функционировать в игре. Чтобы добавить сокеты щелкните два раза по скелетному мешу, которому Вы хотите добавить в окне Content Browser. Откроется окно редактора скелетных мешей/настройки анимации («AnimSet Editor»). Щелкните по иконке Socket Manager на главной панели инструментов или выберите его из списка меню Mesh.

 

 

Creating Custom Characters for UDK

 

В появившемся окне щелкните по 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 на других скелетных мешах поставляемых вместе с редактором, чтобы получить представление о том, как и где должны располагаться сокеты.

 

 

Creating Custom Characters for UDK

 

 

Настройка персонажа для использования в игре

 

Последний шаг заключается в настройке 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'

 

 

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


Creating Custom Characters for UDK
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1 написал: netgoblin
26 Декабря 2010 03:11 | ICQ: Не Указано |


Группа: Активист
Регистрация: 27.02.2010
вопрос: а нет ли иного способа кроме как исправлять файл UTPlayerReplicationInfo? нельзя ли как-то все свои скрипты в 1 папке содержать и не трогать родные эпиковские?
Публикаций: 0 | Комментариев: 22      
#2 написал: LS
26 Декабря 2010 15:13 | ICQ: Не Указано |


Группа: Активист
Регистрация: 25.06.2010
Ну по сути ты итак можешь держать все свои скрипты в одной папке, это не принципиально. Можешь и не трогать Эпиковские скрипты, унаследуй от UTPlayerReplicationInfo свой класс, а потом в своем классе игры пропиши его.
Публикаций: 0 | Комментариев: 12      
#3 написал: netgoblin
26 Декабря 2010 15:42 | ICQ: Не Указано |


Группа: Активист
Регистрация: 27.02.2010
а можно поподробнее об этом. я создал новый файл ActionPlayerReplicationInfo.uc (Action это префикс):
Class ActionPlayerReplicationInfo extends UTPlayerReplicationInfo
abstract;
defaultproperties
{
CharClassInfo=class'MyMod.ActionFamilyInfo_Paladin'
}


файл ActionFamilyInfo_Paladin.uc:
Class ActionFamilyInfo_Paladin extends UTFamilyInfo
abstract;
defaultproperties
{
CharacterMesh=SkeletalMesh'TC_Paladin.SkeletalMesh.paladin_v2'
}


но в игре это не срабатывает =(
создается все тот же Леандри.
з.ы. если заменить строку в эпиковском UTPlayerReplicationInfo на мою, то все работает. в чем причина?
Публикаций: 0 | Комментариев: 22      
#4 написал: LS
26 Декабря 2010 18:12 | ICQ: Не Указано |


Группа: Активист
Регистрация: 25.06.2010
Ты наверное в классе режима игры забыл свой PlayerReplicationInfo класс указать!
Публикаций: 0 | Комментариев: 12      
#5 написал: netgoblin
26 Декабря 2010 20:08 | ICQ: Не Указано |


Группа: Активист
Регистрация: 27.02.2010
методом проб и ошибок, я всё же смог заменить приевшегося дроида на своего паладина! но пока никому не покажу blum
Публикаций: 0 | Комментариев: 22      
#6 написал: FACH
26 Декабря 2010 21:16 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Так уж сказал бы как сделал то


--------------------
Публикаций: 134 | Комментариев: 778      
#7 написал: netgoblin
27 Декабря 2010 06:16 | ICQ: Не Указано |


Группа: Активист
Регистрация: 27.02.2010
жуткий какой-то движок сайта. комментариев несколько подряд оставить нельзя - все лепится в один и кричит "хватит вставлять, он у тебя слишком длинный" =)

выложил код тут - https://docs.google.com/document/d/1_RlbFzx...uthkey=CMLli6cM
Публикаций: 0 | Комментариев: 22      
#8 написал: netgoblin
3 Января 2011 13:28 | ICQ: Не Указано |


Группа: Активист
Регистрация: 27.02.2010
прикол, я заменяю персонажа, выбрав соответствующий PIE в WorldProperties, и у меня в добавок изменяются все мобы на тип моего перса, хотя в AIFactory стоит тип UTBot. в чем может быть причина? и как исправить?

з.ы. может надо дописать класс UTFamilyInfo_AI (типа такого) ??? я видел подобные в родных папках эпиков.
Публикаций: 0 | Комментариев: 22      
#9 написал: LS
3 Января 2011 14:10 | ICQ: Не Указано |


Группа: Активист
Регистрация: 25.06.2010
UTBot тоже берет данные из FamilyInfo, через PlayerReplicationInfo (смотри функцию Initialize в UTBot классе).
Публикаций: 0 | Комментариев: 12      
#10 написал: ahtam
20 Января 2011 19:36 | ICQ: Не Указано |


Группа: Гости
Регистрация: Не Указано
я в 3ds max все зделал с костями модель экспортнул импортировал в udk а со скриптами не понял че куда и как прописывать
Публикаций: 0 | Комментариев: 0      
#11 написал: sufiks
8 Июля 2011 14:28 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 2.05.2011
А как сделать так чтоб оружие было в руках а то оно ваще не присобачилось к сокитам


--------------------
Публикаций: 0 | Комментариев: 14      
#12 написал: FACH
10 Июля 2011 19:07 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Аттачить к сокетам - все прекрасно работает, как в коде, так и в редакторе.
Зачем что-то другое изобретать, когда и так все отлично?


--------------------
Публикаций: 134 | Комментариев: 778      
#13 написал: sufiks
12 Июля 2011 10:31 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 2.05.2011
Ну я сделал перса со своим скелетом, анимацией, со скриптами, сделал сокеты, стандартные, павн класс родительский UTPawn всё равно не приотачивается да ёще и от первого лица выше перса стоит оружие ну и камера вместе сним. Искал где можно настроить камеру от первого лица но не нащел.Вот такая жоп,,а.


--------------------
Публикаций: 0 | Комментариев: 14      
#14 написал: FACH
12 Июля 2011 14:08 | ICQ: 562039160 |


Группа: Администраторы
Регистрация: 27.06.2009
Оружие, вроде как, аттачится по имени сокета.
Иди на форум, не засоряй тут тему


--------------------
Публикаций: 134 | Комментариев: 778      
#15 написал: Hoxton
22 Марта 2012 23:03 | ICQ: Не Указано |


Группа: Посетители
Регистрация: 26.12.2011
Почему я управляю мешем т.е тупо передвигается без анимации?
Публикаций: 0 | Комментариев: 1      
#16 написал: DENTNT
23 Марта 2012 07:29 | ICQ: 430517502 |


Группа: Администраторы
Регистрация: 27.06.2009
Цитата: Hoxton
Почему я управляю мешем т.е тупо передвигается без анимации?

потому что либо анимаций нет, либо имена костей не совпадают с прописаными в анимациях, ну или скрипт павна, не указаны анимации..


--------------------
Публикаций: 15 | Комментариев: 46      
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...






При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна!
© 2008—2012, UNREAL-LEVEL.RU. Все права защищены.