Создание HUD-модели
1. Вступление

Данный урок посвящен созданию HUD-моделей для оружия. Статья рассчитана на опытных пользователей 3DSMax, так что вопросы вида "Как создать сферу?" - не принимаются.

Вот так наш HUD будет выглядеть в конечном итоге (в 3DSMax):
http://stalkerin.gameru.net/wiki/images/thumb/a/ab/Hud_lesson_1.jpg/400px-Hud_lesson_1.jpg
Перед прочтением этой статьи советую еще раз ознакомится с этим уроком.

Для экспорта моделей лучше всего воспользоваться плагином ogf2smd, т.к. встроенная функция экспорта из OGFViewer создает по 11 полигонов на одной координате, что крайне затрудняет процесс моделлинга и экспорта в игру.

2. Работа с материалом

Для начала - откроем 3DSMax.

Импортируем модель, открываем редактор материалов (по умолчанию - кнопка М). Нажимаем на кнопку Standart, выбираем STALKER Mtl.
http://stalkerin.gameru.net/wiki/images/c/c2/Hud_lesson_2.jpg
Кликнем по маленькой кнопочке напротив Diffuse, выбираем Bitmap, и находим нашу текстуру. Далее, присвоим её нашей модели. Все, с текстурированием покончено.

3. Создание костей

Для работы с костями удобно использовать утилиту Bone Tools, которая находится в меню Character.

Как будет выглядеть расстановка костей в HUD-модели, вы увидите в исходнике, но главное – надо создать одну главную кость, и от нее уже вести скелет для рук и оружия. А сами кости создаются через Create -> Systems -> Bones.
4. Привязка скелета к модели

После расстановки костей выбираем наш объект, применяем к нему модификатор Physique, жмем кнопку Attach to node –> Rigid\Deformable –> Initialize. Скелет готов к привязке.

    * Важная деталь: К модели оружия обязательно должна быть привязана кость wpn_body, если ее не будет, то игра обязательно вылетит что бы вы не вписывали в конфигах!
http://stalkerin.gameru.net/wiki/images/1/10/Hud_lesson_3.jpg
Включаем режим Vertex и при нажатой кнопке Select и синем плюсе выбираем нужные вершины, жмем Attach to link. Далее, при выбранном красном (или зеленом, если объект твердый) плюсе кликнем по косточке и жмем Lock Assignment. Повторяем для всех костей.
http://stalkerin.gameru.net/wiki/images/b/b2/Hud_lesson_4.jpg
3) Закончив привязку вершин для рук, в корне модификатора Physique сохраняем привязку в файл с помощью кнопки Save to *.phy , чтобы потом, загрузив этот файл при следующей привязке, сэкономить уйму времени.

http://stalkerin.gameru.net/wiki/images/4/41/Hud_lesson_5.jpg

Окончив привязку, можно приступать к анимированию.
4. Анимация HUD-модели

Анимировать можно в режиме Set Key, и в режиме Auto Key, но в данном случае удобнее будет все-таки во втором режиме.

Нажимаем кнопку Auto Key, выбираем именно кость (для удобства анимации можно выполнить команду ПКМ –> Freeze selected в любом видовом окне), фиксируем ее положение нажатием ключа, переводим ползунок кадров в любое положение - траектория движения и ключи в промежутке кадров просчитаются автоматически.
http://stalkerin.gameru.net/wiki/images/thumb/6/69/Hud_lesson_6.jpg/400px-Hud_lesson_6.jpg

После того, как мы экспортировали модель без анимации, выбираем нашу анимацию и в утилите Stalker Export выбираем Export Motion, после чего экспортим анимацию формат *.skl

    * Если игра вылетает с логом "cannot find anim [название_аним-и]_r" или с чем-то подобным, то создавайте копии существующих анимаций с окончанием _r и добавляйте их вместе с обычными.
http://stalkerin.gameru.net/wiki/images/1/14/Hud_lesson_7.jpg
5. Настройка параметров в Actor Editor

Открываем Actor Editor. Настраиваем параметры в свитке Surface. Я ставил такие:

    * models\weapons
    * def_shader\def_vertex
    * game mtl\objects\small_weapon
http://stalkerin.gameru.net/wiki/images/4/49/Hud_lesson_8.jpg
В принципе, можно попробовать и другие.

Этот пункт в Hud-е можно не трогать - он влияет только на World модель (вид от 3-его лица). Далее, настроим кости в свитке Bones. В параметрах свитка выделяем все кости, ставим Type -> XXXX, влияет на поверхности соприкосновения оружия с землей, предметами и т.д., ставить самый близкий по форме - например для глушителя идеально подойдёт type: cylinder, а также Game mtl\objects\small_weapon, влияет на звуки и эффекты соприкосновения с предметами и ГГ, нажимаем Generate shape -> All (авто подпор rotation и position для всех)
http://stalkerin.gameru.net/wiki/images/1/13/Hud_lesson_9.jpg
(skl - отдельная анимация, skls - несколько анимаций)

После этого - настройка анимации. Открываем свиток Motions, нажимаем кнопку Append, выделяем все наши *.skl – анимации и вставляем в модель. Редактируем в параметрах скорость, плавность и проигрывание анимации. В оружии типа MP5 есть семь стандартных анимаций:

    * idle
    * idle_aim
    * idle_sprint
    * shoot
    * draw
    * holster
    * reload

У ЗП и ЧН немного другая система. Анимация оружия находится отдельно от анимации рук в файле с названием типа "wpn_..._hud_animation.omf" (анимация рук в файлах с названием "wpn_hand_..._hud_animation.omf").

При использовании стандартной анимации:

Для того чтобы внедрить их в оружие достаточно отметить нужный .omf через пункт motion referense. Либо импортировать вытянутый "конвертером от Бардака" файл .skls из всё той-же анимации.

При использовании новой анимации:

Требуется добавить вашу анимацию рук к стандартной (импортировать skls. из стандартной и skl. вашей анимации, после чего экспортировать .omf с заменой стандартной анимки), либо не добавляя стандартных анимок отметить её в каждой модели рук (meshes\dynamics\weapons\wpn_nand\wpn_nand_01.ogf - wpn_nand_exo.ogf) через пункт motion referense - например meshes\dynamics\weapons\wpn_p90\wpn_hand_p90_hud_animation.omf). С анимацией самого оружия поступать также как раньше.

Также чтобы анимации не "заедались" во время игры надо поставить галки напротив пунктов Stop at End и Sync Part ( анимацию типа "idle" не отмечать).
http://stalkerin.gameru.net/wiki/images/c/cd/Hud_lesson_10.jpg
Берем с главной кости координаты и градус поворота худа, и вписываем их в конфиг.

В разделе конфига wpn_..._hud редактируются также параметры точки вылета гильзы из оружия, а также партикла выстрела. Чтобы облегчить себе работу с этими параметрами, можно создать в 3DSMax вспомогательные кости и сразу получить их координаты при настройке HUD'а в Actor Editor. Если в логе при импорте или экспорте вашего творения есть какие-то ошибки – значит, вы что-то сделали не так.

Рекомендую сразу не хвататься за сложный HUD, а просто сделать анимированное штурмовое–наступательное оружие под названием "Кубик". Для того чтобы всё понять экспортируйте в .object любую модель hud-а и откройте через SDK и посмотрите своими глазами. Вроде всё. Удачи!
6. Исходники

Вариант 1 - модель рук привязана к скелету Biped (Ссылка)
Вариант 2 - модель привязана к обычным костям (Ссылка)
Вариант 3 - модель привязана к костям, сделана камера для контроля анимаций (вид HUD-а как в игре) (Ссылка)
Авторы

Статья создана: Egorych
Благодарности: Haron, tambovski