Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Exclamation 
FAQ по моделлингу
Сообщение #515230
FAQ по моделлингу

Данный FAQ создавался с целью решить наиболее часто появляющиеся у новичков проблемы без создания новой темы и получения очередного одинакового ответа, потому как опыт показывает, что Поиском мы пользоваться не умеем, а скачивать Азбуку Моделирования для решения насущного вопроса неудобно.
Прежде всего о том, каким образом можно наиболее эффективно получить ответ на свой вопрос. В первую очередь пользуемся данным FAQ'ом – наверняка проблема у новичков весьма распространенная, – и поиском. Если ответа на вопрос нет, скачиваем Азбуку Моделирования или ищем ответ в других доках, например на https://www.source-inside.ru/ и http://developer.valvesoftware.com/wiki/SDK_Docs. Если же и здесь ответа нет, создаем новую тему в соответствии с рекомендациями Фиша.

Q: Каким образом можно из .mdl моделей движка Source получить файлы в формате Макса (MilkShape3D, XSI – на выбор)?
A: Первый шаг – это декомпиляция модели. Для этого следует использовать декомпилятор, который можно скачать здесь. С его помощью мы получим набор из qc-скрипта (задает все необходимые параметры для последующей компиляции модели) и smd-файлов, из которых есть reference-smd (геометрическая информация о модели) и animation-smd (анимация скелета). Второй шаг – импорт smd в редактор. Для MilkShape3D никаких внешних плагинов не требуется, для XSI следует установить add-on, поставляемый в комплекте Source SDK. Для 3dsMax потребуется скачать и установить плагины импорта и экспорта. Теперь можно импортировать smd в редактор и свободно работать над моделью.

Q: Каким образом можно скомпилировать готовую модель?
A: В первую очередь следует экспортировать модель и анимацию в формат smd. Способов собственно компиляции существует великое множество. Батник, ярлык к studiomdl.exe, GUI, программы-надстройки над studiomdl.exe и т.п. Из всех этих вариантов не советую пользоваться лишь последним, поскольку наряду с кажущейся простотой он добавляет много лишних глюков и скомпилировать сложную модель с помощью таких программ, как StudioCompiler, становится крайне сложно. Проще всего для начинающих будет использовать GUI, один из которых можно скачать здесь.

Q: Каким образом можно использовать свои текстуры на модели в Source?
A: Для начала нужно правильно скомпилировать текстуру для движка. С помощью программы vtex.exe или плагина для Photoshop получим скомпилированную текстуру – файл в формате vtf. Он должен находиться в одном из подкаталогов следующего каталога: <Путь к Steam>\SteamApps\Sourcemods\<Название мода>\materials\models\. К нему следует создать файл в формате vmt, который служит для задания свойств материала, и его отредактировать, например вот так:
"VertexLitGeneric"
{
"$basetexture" "models\myprops/mytexture"
}
Это пример простейшего vmt для моделей, во многих случаях его бывает достаточно. Обратите внимание, что расширение .vtf не указывается, а путь начинается с подкаталога \models, каталог \materials опускается.

Q: Физбокс для модели компилируется неправильно, либо не компилируется…
A: Первое правило при создании физбокса – он должен состоять из геометрически выпуклых фигур. Если не будет выпуклости, компилятор сам это исправит, но во многих случаях результат не будет приемлемым. Физбокс может состоять из нескольких простых фигур, которые к тому же могут пересекаться. Для того, чтобы включить эту возможность, следует в qc-файл модели добавить строчку $concave в настройки физбокса, например:
$collisionmodel "mymodel_physbox.smd"
{
$concave
}
Однако это не действует на узлы ragdoll-модели (т.е. каждому узлу можно назначить только один элемент физбокса).
Перед экспортом физбокса следует назначить ВСЕМ его граням одну и ту же группу сглаживания (smoothing group), проще всего первую, и один и тот же material ID. Не забудьте назначить и текстуру, иначе могут быть проблемы с экспортом или восприятием файла формата smd.
И последнее: при стандартных настройках studiomdl.exe не скомпилирует модель, физбокс которой содержит больше, чем 20 элементов. Чтобы убрать данную преграду, следует добавить параметр командной строки –fullcollide к вызову компилятора, например:
studiomdl.exe – fullcollide <Путь к qc-скрипту>\mymodel.qc
Использовать много элементов физбокса не рекомендуется, так как это может негативно отразиться на быстродействии.

Q: Почему после компиляции физбокс смещен относительно модели?
A: Это происходит потому, что их опорные точки имеют разные положение и/или углы поворота. Чтобы этого избежать, есть несколько способов:
а) Отредактировать одинаковым образом положение и углы опорных точек (pivot point) объектов.
б) Создать кость и привязать к ней все объекты, после этого экспортировать кость и нужный объект.
в) Добавить строчку $staticprop в qc-скрипт, этим самым удалив все кости и создав одну, имеющую координаты и углы (0,0,0).

При использовании параметра qc-скрипта $scale (позволяет изменить масштаб модели) может возникнуть проблема разного масштаба модели, физбокса и ЛОДов. Чтобы этого не происходило, следует добавлять $scale перед объявлением всех smd-файлов.

Q: Почему модель типа prop_physics отображается в Half-Life Model Viewer (hlmv.exe), но не появляется в игре?
A: Наиболее распространенные причины:
а) Отсутствует физбокс. Необходимо создать физбокс и подключить его в qc-скрипте, указав все необходимые параметры, например:
$collisionmodel "mymodel_physbox.smd"
{
$concave
$mass 5.0
$inertia 1.00
$damping 0.00
$rotdamping 0.00
}
б) В qc-скрипте следует указать настройки материала модели: $keyvalues. Например для металлической модели можно добавить следующее:
$keyvalues { prop_data { "base" "Metal.Small" } }

Q: Почему при компиляции декомпилированной модели она повернута на 180 (90) градусов?
A: Это происходит из-за глюков декомпилятора. Можно попробовать декомпилировать модель с установленным флажком Do not fix rotations on animations. Если это не помогает, можно либо вручную исправлять положение анимаций (что очень неудобно), либо компилировать, а потом декомпилировать модель и снова компилировать столько раз, сколько необходимо для правильного положения.
Очень удобным способом решения проблемы является дописывание rotate -90 (угол поворота) в конце строки описания sequence'а. И не нужно ничего перекомпилировать.

Q: Почему в Half-Life Model Viewer (hlmv.exe) не отображаются карты нормалей (как следствие модель с освещением по Фонгу блестит полностью)?
A: Иногда происходит такой глюк, что невозможно установить флажок отображения карты нормалей на модели. Чтобы принудительно включить данную опцию, проделаем следующее:
а) Открываем модель в HLMV, после чего закрываем программу (или модель).
б) Находим в реестре ключ enablenormalmapping по адресу: HKEY_CURRENT_USER\Software\Valve\hlmv\models.<Имя модели> и устанавливаем равным 1.
После этого при открытии модели отображение карты нормалей будет включено.

Q: Каким образом можно заменить модель персонажа на свою, при этом сохранив все анимации?
A: Создаем свою модель персонажа с учетом того, чтобы сетчатая оболочка (Mesh) подходила под старый скелет. Можно двигать кости скелета, чтобы кости правильно располагались внутри меша. После того, как сетка и скелет готовы, с помощью модификаторов skin или physique (применительно к 3dsMax) привязываем оболочку к скелету. После привязки проверьте правильность сгибов суставов, а также то, что привязаны все вершины модели. После этого можно экспортировать модель как референс-smd, все анимации будут работать корректно.
Прием, который очень удобно во время работы над моделью, в частности для проверки правильности сгибов суставов в уже готовых анимациях: импорт анимационных smd к модели. При этом сетка и скелет остаются прежними и корректно работают, а импортируется лишь положение костей.

Q: Как вставить своего персонажа в игру?
A: Для того, чтобы сделать полностью своего персонажа, нужно обладать солидными знаниями и опытом программирования под Source engine. Необходимо создать как рутинных код, необходимый для вставки персонажа в игру, так и код, собственно задающий поведение персонажа. Поэтому не имея подобных знания или людей, которые согласятся на такую работу, лучше не затевать создание персонажа. На форуме за такое обычно не берутся.
Как вариант, можно заменить модель уже готового персонажа, который будет действовать ровно так же, как и оригинальный. Все, что можно изменить средствами моделлинга – саму модель, анимации, некоторые параметры и расположение особенных точек, так называемых attachment'ов. Ну и, естественно, можно серьезно поработать над текстурами.

Q: Что такое Азбука Моделирования и где ее можно скачать?
A: Азбука моделирования – учебник по основам моделирования, написанный нами, командой Real Project. В нем есть все необходимое для овладения основами – учебник по 3dsMax, а также все, что необходимо для компиляции моделей под движок Source engine. Скачать ее можно здесь.

-------------

АЗБУКА МОДЕЛИРОВАНИЯ

В последнее время наблюдаются стабильные проблемы со скачиванием Азбуки Моделирования. В связи с этим перезалил ее, скачать можно отсюда:
http://nitly.tk/jgrhV9
http://ifolder.ru/11205905
http://dl.dropbox.com/u/52153396/azbuka.rar

Поправил Stone 17-12-2011 в 22:39

Old Post 28-01-2007 10:53
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Flash_Haos
(О_о)

Зарегистрирован: Apr 2005
Проживает: Россия/Москва
Написал: 5562 сообщений

Оценка: 137 Votes 137 чел.

Старожил 
Сообщение #515249
Полезная тема, хотя лучше новичкам "азбуку" прочитать...
Old Post 28-01-2007 11:28
Flash_Haos отсутствует Посмотреть данные 'Flash_Haos' Отправить Приватное Сообщение для 'Flash_Haos' Найти другие сообщения 'Flash_Haos' Добавить Flash_Haos в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #516856
Азбука не решает проблем, она только учит. Для решения проблем и существуют всякие Fuc... т.е. FAQ и Форумы.
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 30-01-2007 19:16
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
очки Терминатор
(Ы)

Зарегистрирован: Jun 2006
Проживает: Russia/
Написал: 121 сообщений

Оценка: 8 Votes 8 чел.

Сообщение #522705
Как изменить количество кадров в 3dsmax?
Old Post 10-02-2007 02:38
очки Терминатор отсутствует Посмотреть данные 'очки Терминатор' Отправить Приватное Сообщение для 'очки Терминатор' Найти другие сообщения 'очки Терминатор' Добавить очки Терминатор в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
SPY_JOHN
(Real Project Modeller)

Зарегистрирован: Nov 2006
Проживает: Наша Russia/Волжский
Написал: 776 сообщений

Оценка: 22 Votes 22 чел.

Developer 
Сообщение #522843
В самом низу есть инструменты поворота камеры и т.п. Там же есть кнопка Time Configuration. Нажимаешь на нее. И в разделе Animation меняешь параметр Frame count.

Поправил SPY_JOHN 10-02-2007 в 12:17

Old Post 10-02-2007 11:43
SPY_JOHN отсутствует Посмотреть данные 'SPY_JOHN' Отправить Приватное Сообщение для 'SPY_JOHN' Найти другие сообщения 'SPY_JOHN' Добавить SPY_JOHN в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
очки Терминатор
(Ы)

Зарегистрирован: Jun 2006
Проживает: Russia/
Написал: 121 сообщений

Оценка: 8 Votes 8 чел.

Сообщение #526106
Как сделать движение например вперёд в анимации, так чтобы в игре это было и вправду движение вперёд?
Old Post 16-02-2007 10:00
очки Терминатор отсутствует Посмотреть данные 'очки Терминатор' Отправить Приватное Сообщение для 'очки Терминатор' Найти другие сообщения 'очки Терминатор' Добавить очки Терминатор в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Robbik
(Member)

Зарегистрирован: Sep 2005
Проживает: CITINET/
Написал: 153 сообщений

Оценка: 3 Votes 3 чел.

Сообщение #526196
Что именно должно двигаться вперёд. пиши конкретно
Чем больше мы заботимся о животных, тем они вкуснее.
www.psychoshiva.ru
Old Post 16-02-2007 13:13
Robbik отсутствует Посмотреть данные 'Robbik' Отправить Приватное Сообщение для 'Robbik' Найти другие сообщения 'Robbik' Добавить Robbik в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
очки Терминатор
(Ы)

Зарегистрирован: Jun 2006
Проживает: Russia/
Написал: 121 сообщений

Оценка: 8 Votes 8 чел.

Сообщение #526561
Я сделал монстора заменяющего Antliona и хотел сделать анимацию движения. В qc фаиле я написал:
$sequence walk_all "walk" loop ACT_WALK 1 fps 30.00 node walking {

blendwidth 9
blend move_yaw -180 180
a_WalkSE a_WalkE a_WalkNE a_WalkN a_WalkNW a_WalkW a_WalkSW a_WalkS
}

Все компилируется, и в Model Viewere он делает эту анимацию, но если поставить флажок в поле Ground - сетка под ним не проворачивается, а во вкладке Sequence написано Speed 0.00. В игре модель вообще стоит на месте.
Old Post 17-02-2007 06:35
очки Терминатор отсутствует Посмотреть данные 'очки Терминатор' Отправить Приватное Сообщение для 'очки Терминатор' Найти другие сообщения 'очки Терминатор' Добавить очки Терминатор в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Rus_Ivan
(Кровавый сталинский палач)

Зарегистрирован: Mar 2006
Проживает: СССР/Москва
Написал: 1778 сообщений

Оценка: 61 Votes 61 чел.

Сообщение #529558
Терминатор! Я вижу ты шариш в анимационных скриптах.
Поясни пожалуста, чо это означает?
Цитата:
a_WalkSE a_WalkE a_WalkNE a_WalkN a_WalkNW a_WalkW a_WalkSW a_WalkS

Это чо выходит, анимация бега на северо-восток кардинально отличается от анимации бега на юго запад што-ли?
Как говаривал фельдмаршал Паулюс — главное, чтоб тебя окружали хорошие люди

Поправил Rus_Ivan 22-02-2007 в 13:10

Old Post 22-02-2007 13:04
Rus_Ivan отсутствует Посмотреть данные 'Rus_Ivan' Отправить Приватное Сообщение для 'Rus_Ivan' Найти другие сообщения 'Rus_Ivan' Добавить Rus_Ivan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #529726
Rus_Ivan
Из контекста не вырывай, там же написано
Цитата:
blendwidth 9 blend move_yaw -180 180 a_WalkSE a_WalkE a_WalkNE a_WalkN a_WalkNW a_WalkW a_WalkSW a_WalkS

А это значит, что данные анимации будут блендиться (смешиваться т.е.), и параметром будет угол от -180 до 180. Когда смотришь модель во вьювере, в зависимости от угла анимации смешиваются в определенном соотношении, и получается, что ходьба персонажа может быть корректно анимирована на все 360 градусов. Проще всего посмотреть готовые модели и поменять во вьювере эти и некоторые другие (например наклон оружия и т.п.) параметры - сразу все станет понятно.
Old Post 22-02-2007 18:42
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Rus_Ivan
(Кровавый сталинский палач)

Зарегистрирован: Mar 2006
Проживает: СССР/Москва
Написал: 1778 сообщений

Оценка: 61 Votes 61 чел.

Сообщение #529932
Дык я так и не понял, нафига делать стока анимаций ходьбы, по одной на каждую сторону света! Чем ходьба на юг отличается от ходьбы на север? По моему ничем.
Я понимаю что "blendwidth" - это смешивание. Я не понимаю зачем смешивать 20 одинаковых файлов, единст венное различие которых в том, каждый из них повёрнут на 30 градусов по отноршению к другому. Что, если сделать один единственный файл ходьбы, и покрутить его в ХЛМВ, он не будет крутиться? Если не будет файла "a_WalkNE" то на ходьбу нельзя будет посмотреть с северо-запада?
Обьясните, зачем стока многа лишних файлов? Какой скрытый смысл в их присутствии?
Я не просто так спрашиваю. Я собираюсь сам делать файл анимации ...player_shared.mdl, и мне нужно знать как всё это работает.
Как говаривал фельдмаршал Паулюс — главное, чтоб тебя окружали хорошие люди

Поправил Rus_Ivan 23-02-2007 в 08:46

Old Post 23-02-2007 08:39
Rus_Ivan отсутствует Посмотреть данные 'Rus_Ivan' Отправить Приватное Сообщение для 'Rus_Ivan' Найти другие сообщения 'Rus_Ivan' Добавить Rus_Ivan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #530144
Нет, ну ты так и не посмотрел на готовые модели, а я просил! Фишка в том, что торс персонажа повернут вперед во всех этих анимациях, а ноги двигаются так, как требуется для ходьбы назад, вперед и в другие стороны. Что значит ходьба вперед от ходьбы в сторону не отличается? Стрейф и движение вперед - две большие разницы... Сам попробуй вживую))
Old Post 23-02-2007 15:39
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Rus_Ivan
(Кровавый сталинский палач)

Зарегистрирован: Mar 2006
Проживает: СССР/Москва
Написал: 1778 сообщений

Оценка: 61 Votes 61 чел.

Сообщение #530530
Спасибо. Вроде понял.
А вот ещё вопрос.
Стоит задача: заменить анимацию тока одного оружия (группы файлов отвечающих за использование челом определйнного ствола). Каким способом это правильнее сделать?
Поскольку player_shared не декомпилируется, значит и вариант декомпила-редактирования-компила не проходит.
В настоящее время, как наиболее осуществимый, я рассматриваю вариант запаковывания группы анимационных файлов прямо в MDL с моделью чела. Однако таким образом в игре будет две группы файлов с одинаковыми названиями, одна в player_shared.mdl, а вторая в mdl с моделью чела. Как указать движку, чтоб он брал анимацию из mdl а не из player_shared.mdl?
Или может быть существуют какие-то другие, более эффективные варианты для решения моей проблемы?
Как говаривал фельдмаршал Паулюс — главное, чтоб тебя окружали хорошие люди
Old Post 24-02-2007 10:44
Rus_Ivan отсутствует Посмотреть данные 'Rus_Ivan' Отправить Приватное Сообщение для 'Rus_Ivan' Найти другие сообщения 'Rus_Ivan' Добавить Rus_Ivan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Stone
(My Life is Real Project)

Зарегистрирован: Mar 2005
Проживает: Россия/Питер
Написал: 3475 сообщений

Оценка: 67 Votes 67 чел.

Старожил 
Сообщение #530601
Давай думать вместе:
вариант один. Узнать, что приоритетнее для движка - общие анимации или анимации в конкретной модели? Я думаю последнее, но это желательно проверить. Если это так, то беспокоиться не следует, сам понимаешь.
вариант два. Изменять названия анимаций. Но это подойдет, понятное дело, только при доступе к коду персонажа. А т.к., если не ошибаюсь, ты для DODS моделлишь, кода естесственно нет.
вариант три. Нужно копаться и экспериментировать с QC. Там есть фичи ручного переназначения иерархии костей - очень мощная фича. Почему бы там не быть подобной штуке, позволяющей точно выбрать место, откуда берется анимация? Думаю можно и через QC указать. Как-то))) Пока не знаю как.
Old Post 24-02-2007 12:59
Stone отсутствует Посмотреть данные 'Stone' Отправить Приватное Сообщение для 'Stone' Найти другие сообщения 'Stone' Добавить Stone в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Rus_Ivan
(Кровавый сталинский палач)

Зарегистрирован: Mar 2006
Проживает: СССР/Москва
Написал: 1778 сообщений

Оценка: 61 Votes 61 чел.

Сообщение #530657
А если всё таки положить анимации в mdl к персонажу, то как в QC их прописывать?
Вообще телось бы узнать правила построения строки в QC описывающей анимации движения челов.
Как говаривал фельдмаршал Паулюс — главное, чтоб тебя окружали хорошие люди
Old Post 24-02-2007 14:54
Rus_Ivan отсутствует Посмотреть данные 'Rus_Ivan' Отправить Приватное Сообщение для 'Rus_Ivan' Найти другие сообщения 'Rus_Ivan' Добавить Rus_Ivan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 09:35.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены