Как создать файл контроля качества для smd
Обновлено: 21.11.2024
Команда "Последовательность" предназначена для последовательностей анимации. Имя последовательности — это имя, присвоенное последовательности, а путь к последовательности — это имя и относительный путь (при необходимости) файла smd. Даже если модель не имеет анимации, она должна иметь хотя бы одну последовательность для компиляции. Самое простое использование команды последовательности для статической неанимированной опоры — это использование эталонного SMD в качестве последовательности бездействия. Пример:
$sequence "idle" "wrld_glock"
Команда последовательности может быть написана в строке для более простых последовательностей, но более сложные должны быть заключены в квадратные скобки. Пример встроенной последовательности от ученого:
$sequence "diessimple" "diessimple" fps 24 ACT_DIESIMPLE 1 { event 2001 8 }
Для более сложных последовательностей лучше выписывать в развернутых строках со скобками в этом примере из модели ученого:
$sequence "tentacle_grab" "tentacle_grab" {
fps 15
{ event 1000 1 }
{ event 1004 4 "*scientist/scream02.wav" }
{ event 1003 18 "smash" }
{ event 1004 65 "*scientist/c1a4_sci_tent.wav" }
}
Примеры использования относительных путей следующие:
$sequence longjump "..\Cinematics\troom\holo_longjump" fps 30
Что касается последовательностей, важно отметить, что если вы работаете с моделью игрока, вы не должны изменять порядок последовательностей, иначе ваша модель игрока сломается в игре. Также FPS для моделей игроков заблокирован.
С этого момента разбивка подкоманд последовательности будет представлена синим цветом:
[blend smd path]
Путь smd-анимации, с которым нужно смешать. Должен использоваться с [смесь]. Пример:
$sequence aim_2 "ref_aimdown_twohanded" "ref_aimup_twohanded" цикл fps 14 blend XR -45 45
[извлечение движения]
Тип извлечения движения, используемый в модели. Извлечение движения берет движение анимации и переводит его в движение модели. Расстояние движения по оси в анимации определяет скорость и расстояние перемещения модели. Есть три типа LX, LY и LZ. Если вы используете 3Dsmax, LX на самом деле является максимальным размером Y, а LY — максимальным размером X. Пример:
$sequence walk "ref_walk" lx loop fps 31
[Ось обнуляется]
Помещение X, Y или Z в этом месте приведет к обнулению всех движений анимации по этой оси. Пример из hgrunt:
$sequence diegutshot "gutshot" X fps 30 ACT_DIE_GUTSHOT 1
Еще один пример из вырезанного монстра "hvyweapons":
$sequence die_crumple "diecrumple" X Y ACT_DIESIMPLE 1
[fps]
FPS определяет скорость воспроизведения последовательности анимации. За словом fps следует число, поэтому вы создали последовательность из 30, а затем используете 30. Например, вы можете ускорить или замедлить, если вы используете меньшее число, последовательность будет медленнее, и кадры интерполируются как таковые. Пример:
$sequence deep_idle "new_idle3" цикл fps 12 ACT_IDLE 4
Примечание. НЕ используйте отрицательное значение для реверсирования анимации. Если вы это сделаете, ваша анимация ужасно сломается.
[loop]
Loop повторяет последовательность, поэтому она воспроизводится в бесконечном цикле. Это полезно для анимации бездействия и ходьбы. Пример:
$sequence "idle1" "idle1" fps 7 loop ACT_IDLE 50
[origin]
Используется для исправления смещения исходной точки последовательности анимации по координатам осей X, Y и Z. Это работает точно так же, как $origin, но для отдельной последовательности. Если вам нужно сместить огромную группу последовательностей, просто используйте команду $origin в отдельной строке перед затрагиваемыми последовательностями. Чаще всего это используется для коррекции по оси Z для моделей игроков во время определенных анимаций:
$sequence crawl "crouch_moveforward" lx loop fps 22 ACT_CROUCH 1 origin 0 0 18
[rotate]
Эта команда представляет собой поворот последовательности по оси Z (вертикальной) в градусах. Пример:
$sequence crouch_idle "crouch_idle" loop fps 12 ACT_CROUCHIDLE 1 origin 0 0 18 rotate 8
[масштаб]
Это используется для увеличения или уменьшения размера костей последовательности анимации. Множитель работает так же, как $scale. Пример:
$sequence barn_wave "barney_wave" fps 22 масштаб 1.04
[blend]
Объявление комбинированной последовательности и ось, по которой смешиваются две анимации, и диапазон. Выбор осей: XR, YR, , ZR для поворотов и X, Y, Z для линейных. Пример:
$sequence "ref_draw_saw" "ref_draw_saw_blend1" "ref_draw_saw_blend2" смесь XR -70 70
[frame]
Используется, чтобы ограничить или обрезать анимацию smd до указанной длины. За кадром следует объявленный начальный кадр вашего smd, а второй — конечный кадр вашей анимации. Очень полезно для последних исправлений последовательностей, которые могут быть слишком длинными без повторного экспорта. Пример:
$sequence dieviolent "BARNEY-X_Die_Violent1" fps 20 кадр 0 26 ACT_DIE_HEADSHOT 1 { event 2001 10 }
[тег действия]
Теги действия — это теги, распознаваемые искусственным интеллектом монстров.Это имя действия, за которым следует весовой коэффициент, а тег действия можно использовать только один раз в последовательности. Весовое число определяет, как часто будут воспроизводиться анимации с использованием этого тега. Например, если у вас есть две последовательности с ACT_WALK, и одна из них имеет более высокий номер, игра будет чаще выбирать ее при вызове анимации ходьбы (использование 1 отключит функцию взвешивания).
Пример:
$sequence smflinch "flinchsm2" fps 20 ACT_SMALL_FLINCH 5
Пример группы простоев из модели ученого:
$sequence "idle1" "idle1" fps 7 loop ACT_IDLE 50
$sequence "idle3" "idle3" fps 12 ACT_IDLE 3
$sequence "idle4" "idle4" fps 12 ACT_IDLE 2
$sequence "idle5" "idle5" fps 13 ACT_IDLE 3
$sequence "idle6" "idle6" fps 13 ACT_IDLE 3
$sequence "idle7" "idle7" fps 13 ACT_IDLE 10
Список тегов действий можно найти внизу этой страницы.
[Event]
Анимационные события включают в себя множество вещей, которые происходят в вашей последовательности. Эти события могут выполнять такие действия, как воспроизведение звуков, строк предложений, вспышек дула и многое другое. Они заключаются в квадратные скобки и начинаются со слов «событие», затем числовой класс, затем номер кадра, в котором должно произойти событие, и, наконец, параметр события.
Пример создания последовательности, которая воспроизводит звук через голосовой канал ученого (вызывая анимацию рта) с использованием события 1008 в кадре 1 последовательности (путь wav относится к папке со звуком в базовой директории игры):
$sequence "checktie" "checktie" fps 12 < event 1008 1 "scientist/weartie.wav" >
События серии 5000 предназначены для дульных вспышек, и для того, чтобы они работали, в вашей модели должно быть определено вложение $. Кратко о дульном вспышке: событие 5001 для вложения 1, 5021 — вложение 2 и 5031 — вложение 3. После номера события следует кадр вспышки дула и, наконец, масштаб и тип спрайта. Например, шкала 5 для muzzleflash1.spr будет равна «50», а шкала muzzleflash2.spr для шкалы 2 будет равна «21».
Пример серии 5000:
$sequence shotgun "shootgun_blend1" "shootgun_blend2" fps 25 ACT_RANGE_ATTACK1 1 смесь XR -50 50
Модели монстров могут иметь свои собственные настраиваемые события, которые могут быть любыми, определенными в их коде ИИ, например, это событие под названием "47" для Hgrunt создает гранату в кадре 7:
$sequence throwgrenade "grenadethrow" fps 30 ACT_RANGE_ATTACK2 1
(Этот список был получен из "Modeling For Half-Life.doc" в Half-Life SDK.)
Event | Event description | Дополнительные параметры |
1000 | Персонаж мертв в этот момент | |
1001 | Последовательность не прерывается с этой точки | |
1002 TD> | Последовательность прерывается с этой точки | |
1003 | Запускает триггер на карте< /TD> | Имя триггера |
1004 | Воспроизвести файл .wav | Путь к файлу .Wav | < /TR>
1005 | Воспроизвести файл предложения | Путь к файлу предложения |
1006 | < TD>Не отправлять персонажа обратно на этаж в конце сценария | |
1007 | Перейти к этой анимации после завершения скрипта | Имя последовательности анимации |
1008 | Воспроизведение именованного файла .wav через голосовой канал | Путь к файлу .Wav |
1009 | Проиграть случайную группу предложений (вероятность 25 %) | |
1010 | На данный момент персонаж жив | |
События, характерные для монстров | ||
2001 | Монстр роняет легкое тело | |
2002 | Монстр роняет тяжелое тело | TD> |
2010 | Monster воспроизводит звук свинга или свистящего звука | |
| События на стороне клиента для моделей представления | |
5001 | Muzzleflash на насадке 0 | Масштаб дульного луча и тип спрайта |
5002 | Искра на насадке | |
5004 | Издавать звук | Путь к файлу Wav |
5011 | Дульный вспышка на насадке 1 | Масштаб дульного вспышка и тип спрайта |
5021 | Дульный вспышка на насадке 2 TD> | Масштаб дульного вспышки и тип спрайта |
5031 | Дульные плашки h на насадке 3 | Масштаб дульного плафона и тип спрайта |
6001 | Выброс латунного снаряда из насадки | < TD>
Мероприятия Sven-Coop
(Этот список взят из "Modeling For Half-Life.doc" в Half-Life SDK.)
Тег действия | Описание |
ACT_ARM | Активировать оружие (например,вытащить пистолет) |
ACT_BARNACLE_CHEW | Барнакл держит монстра в пасти ( петля ) |
ACT_BARNACLE_CHOMP | Барнакл вцепляется в монстра |
ACT_BARNACLE_HIT | Бернакл бьет монстра языком | ACT_BARNACLE_PULL | Барнакл поднимает монстра (петля) |
ACT_BIG_FLINCH | Большая реакция на неспецифический удар |
ACT_BITE | Воспроизводится однократный цикл поедания больших монстров, которые могут съесть мелкие предметы за один укус |
ACT_COMBAT_IDLE. | Возбужденный холостой ход, воспроизводимый, когда монстр собирается драться |
ACT_COWER | Отображение страха |
ACT_CROUCH | Приседание из положения стоя |
ACT_CROUCHIDLE | Держите тело в согнутом положении (петля) |
ACT_DETECT_SCENT | Это означает, что монстр чувствует запах, переносимый по воздуху. |
ACT_DIE_BACKSHOT | Удар в спину |
ACT_DIE_CHESTSHOT (не работает) | Удар в грудь |
AACT_DIE_GUTSHOT (не работает) | Удар в живот |
Удар головой в голову. | |
ACT_DIEBACKWARD | Умереть, падая назад |
ACT_DIEFORWARD | Падение кубика вперед |
ACT_DIESIMPLE | Анимация смерти |
ACT_DIEVIOLENT | Преувеличенная анимация смерти |
ACT_DISARM | Уберите оружие (например, пистолет в кобуре) |
ACT_EAT | Монстр, жующий большой предмет еды (петля) |
ACT_EXCITED | По какой-то причине монстр взволнован. Видит что-то, что ему очень нравится есть или что-то еще. |
ACT_FALL | Зацикленная анимация для падающего монстра |
ACT_FEAR_DISPLAY | Монстр только что увидел что-то, чего он боится |
ACT_FLINCH_CHEST | Вздрогнул от удара в грудь | TR>
ACT_FLINCH_HEAD | Вздрагивание от удара головой |
ACT_FLINCH_LEFTARM | Вздрагивание от удара левой рукой |
ACT_FLINCH_LEFTLEG | Вздрагивание от удара левой ногой |
ACT_FLINCH_RIGHTARM | Вздрагивание от правой руки удар |
ACT_FLINCH_RIGHTLEG | Вздрагивание от удара правой ногой |
ACT_FLINCH_STOMACH | Вздрогнуть от удара в живот |
ACT_FLY Летать (и взмахивать крыльями, если необходимо) | Летать (1x петля) |
Поворот налево в полете | |
ACT_FLY_RIGHT | Поворот направо в полете |
ACT_GLIDE | Полет без движения крыльев (lx l oop) |
ACT_GUARD | Защитить территорию |
ACT_HOP | Вертикаль прыжок |
ACT_HOVER | Ожидание в полете (цикл) |
ACT_IDLE | < TD>Поведение по умолчанию, когда больше ничего не происходит (цикл)|
ACT_IDLE_ANGRY | Альтернативная анимация бездействия, в которой монстр явно взволнован.(цикл) |
ACT_INSPECT_FLOOR | Для активного бездействия -- посмотрите на что-нибудь на полу или рядом с ним |
Для активного бездействия -- посмотрите на что-то прямо перед собой (не обязательно на стену или на стену) | |
ACT_LAND | Конец прыжка |
ACT_LEAP | Длинный прыжок вперед | ACT_MELEE_ATTACK1 | Атака с близкого расстояния |
ACT_MELEE_ATTACK2 | Альтернативный удар с близкого расстояния |
ACT_RANGE_ATTACK1 | Атака оружием дальнего боя |
ACT_RANGE_ATTACK2 | Альтернативный дальний бой | TR>
ACT_RELOAD | Перезарядить оружие |
ACT_ROLL_LEFT | Собрать и перевернуться влево | TR>
ACT_ROLL_RIGHT | Соберитесь и перекатитесь вправо |
ACT_RUN | Бег (цикл) |
ACT_RUN_HURT | Limp (loop) |
ACT_RUN_SCARED | Запустить дисплей страх инь (петля) |
ACT_SIGNAL1 | Сигнал |
ACT_SIGNAL2 | Альтернативный сигнал |
ACT_SIGNAL3 | Альтернативный сигнал |
ACT_SLEEP | Сон ( петля) |
ACT_SMALL_FLINCH | Незначительная реакция на неспецифическое попадание |
ACT_SNIFF | Это фактическое обнюхивание предмета перед монстром |
ACT_SPECIAL_ATTACK1 | Особая атака монстра |
ACT_SPECIAL_ATTACK2 | Особая атака монстра |
ACT_STAND | Вставание из присевшего положения< /TD> |
ACT_STRAFE_LEFT | Шаг в сторону, сохраняя положение лица (петля) |
ACT_STRAFE_RIGHT | Шаг в сторону, сохраняя положение лицом (петля) |
ACT_SWIM | Плыть (петля) |
ACT_THREAT_DISPLAY | Не атакующий монстр демонстрирует, что он злой |
ACT_TURN_LEFT | Быстро повернуть налево |
ACT_TURN_RIGHT | Быстро повернитесь на месте вправо |
ACT_TWITCH | Twitch |
ACT_USE | Использовать предмет |
ACT_VICTORY_DANCE. | Отображение победы после убийства игрока |
ACT_WALK | < TD>Ходить (цикл)|
ACT_WALK_HURT | Ходить вяло или ранено (цикл) |
ACT_WALK_SCARED | Прогулка с отображением страха (цикл) |
Эти команды приведены здесь для заполнения глоссария, но их не следует использовать, поскольку они не нужны, вызывают проблемы или просто ничего не делают.
$externaltextures
Используется для хранения текстур модели отдельно. Это разбивает модель на два файла, в одном имя модели, а в другом имя плюс «t». Первоначально использовалась как команда оптимизации еще во времена ускорителя Voodoo для экономии памяти, когда модель находилась за пределами экрана, когда текстуры не загружались до тех пор, пока их не увидят. Разделение моделей может легко вызвать конфликты и проблемы, особенно с многопользовательскими модами с загружаемым контентом (также заполнение файлов .res), и этой команды следует избегать.
$sequencegroupsize
Команда оптимизации для разделения групп анимаций на разные файлы моделей, чтобы только анимации загружались только при необходимости. Как указано в $externaltextures, это создает множество потенциальных проблем с многопользовательскими модами.
Нефункциональная команда. Возможно, предшественник костяного контроллера.
Нефункциональная команда, которая должна была установить имя кости в корень иерархии модели.
[AX AY AZ AZR AXR AYR] (подкоманда $sequence)
Первоначально предназначался для извлечения относительного расстояния перемещения между первым и текущим кадрами по оси XYZ, а "R" - для вращения. Эта команда отображается в документах SDK и декомпилированных моделях, но в ней нет необходимости, поскольку последовательности автоматически устанавливают местоположение монстра во время перемещения последовательности.
Простая статическая модель:
Простая циклическая анимированная модель:
Модель Гиба. Модели Gib имеют несколько сеток, настроенных $bodygroup. Эти сетки выбираются движком случайным образом при использовании в качестве гибов моделей, гибов func_breakable или сущностью env_shooter/gibshooter.
Модель турели-монстра (из Half-Life SDK)
Модель просмотра оружия MP5 (из Half-Life SDK)
Декомпилированная модель игрока Counter-Strike 1.6
Компилятор Sven-Coop находится в SDK Sven-Coop, загруженном через Steam через вкладку «Инструменты», а затем находится в:
C:\Program Files (x86)\Steam\steamapps\common\Sven Совместный SDK\моделирование\studiomdl.exe
Добавлен новый аргумент командной строки -k: сохранить все неиспользуемые кости, функция аналогична $keepallbones.
$keepallbones
Предотвращает удаление компилятором всех костей в SMD, не взвешенных по вершинам.Важно отметить, что для того, чтобы сохранить кости, хотя бы в одном из ваших эталонных SMD-файлов должен быть весь скелет, он не обнаружит кости, просто находясь в файлах анимации.
$keepbone
$protected
Предотвращает удаление компилятором определенной кости в SMD, которая не взвешена по вершинам. Два имени команды, но одна и та же функция.
Модели необходимо скомпилировать, прежде чем их можно будет использовать в игре. Компиляция состоит из трех компонентов:
- Набор исходных файлов (SMD, DMX, VTA), описывающих модель. См. Экспорт модели, если у вас ее нет. FBX имеет ограниченную поддержку в CS:GO, начиная с обновления 1.34.8.4.
- Файл QC, который определяет, в манере, не слишком отличающейся от VMT текстуры, как исходные файлы должны быть преобразованы в модель движка Source.
- Studiomdl, программа SDK, которая использует QC и выдает (надеюсь!) скомпилированную модель.
Настройка
Предполагая, что ваши исходные файлы успешно экспортированы из вашего любимого программного обеспечения для 3D-моделирования, единственный шаг, который вам нужно сделать перед компиляцией, — это выбрать текущий VPROJECT. Это определяет, куда studiomdl будет записывать скомпилированную модель. Вы можете настроить значение:
- Глобально, выбрав свою игру/мод в раскрывающемся списке средства запуска SDK.
- Только для studiomdl, запустив его с параметром -game ""
Совет. Большинство инструментов SDK принимают -game .
Подсветка синтаксиса
Редактирование файла контроля качества становится намного проще, если вы используете расширенный текстовый редактор с поддержкой подсветки синтаксиса. На данный момент есть два редактора с правилами выделения QC:
Создание контроля качества
Файл контроля качества — это просто текстовый файл с расширением .qc. Вы можете создать его где угодно и назвать как угодно, но лучше организовать его и хранить вместе с SMD в папке с тем же именем, что и у файла конечной модели.
Внутри должен быть список команд, которые сообщают studiomdl о расположении различных SMD модели, куда следует записывать скомпилированные файлы (относительно VPROJECT), как обрабатывать анимацию и потенциально многое, многое. больше. Все известные команды вы найдете в разделе Категория:Команды контроля качества.
Пример
Расположение файлов
Когда исходный файл упоминается в вашем КК, компилятор будет искать его в той же папке. Поэтому вам следует поместить все ваши исходные файлы для данной модели в одну папку. Однако есть команды, сообщающие компилятору, что вы хотите передать ему файл, находящийся не в той же папке, что и QC!
- С абсолютным путем (например, C:\modelsrc\my_model\ )
- С относительным путем (например, .\subfolder или ..\ )
Совет: Текущей папкой является одна точка. Два периода - тот, что над ним. ..\..\ идет на два каталога вверх.
Вот очень простой файл QC для твердотельной модели без какой-либо анимации или специальных свойств (нажмите на каждую команду, чтобы узнать подробности):
Вы должны иметь возможность использовать его в качестве шаблона для компиляции собственной модели, поэтому замените свои собственные SMD (DMX или FBX) и посмотрите, что произойдет.
Примечание. Все модели должны иметь хотя бы одну $sequence , даже если они на самом деле не анимированы!
Учебники
- Информацию о физически смоделированных объектах см. в разделе prop_data.
- Модели персонажей или игроков см. в разделе Компиляция модели персонажа.
- Информацию об оружии см. в разделе Создание моделей мира из моделей просмотра.
- Информацию о транспортных средствах см. в разделе Компиляция модели транспортного средства.
- Общую помощь по компиляции моделей см. в разделе Категория:Команды контроля качества
Компиляция
В текстовом редакторе
Самый простой способ скомпилировать модель — использовать встроенные функции запуска расширенных текстовых редакторов.
С пакетным файлом
Если вы не можете (или не хотите) использовать расширенный текстовый редактор, вы будете компилировать QC, перетаскивая их на studiomdl в Windows. Вы можете найти исполняемый файл в sourcesdk/bin/[orangebox|ep1]/bin/ .
Этот процесс будет проще, если вы создадите файл .cmd в более доступном месте для его автоматизации. Это просто переименованный файл .txt, содержащий что-то вроде этого:
Перетащите файл QC на CMD, как если бы вы делали это непосредственно в studiomdl; по сути, это ярлык для исполняемого файла.
С инструментами компиляции
Вы также можете использовать такие инструменты, как Crowbar, для компиляции модели. Вы можете просто загрузить файл QC, выбрать исходную игру и нажать «Скомпилировать»
Распространенные ошибки
- Ошибка открытия! (Проверьте, разрешена ли запись)
- Дорогая модель столкновения
- Дублировать весовой список только для таза
- Короткая конверсия вне диапазона
- ВНИМАНИЕ: (4768124): ОШИБКА: «НАРУШЕНИЕ ДОСТУПА К ИСКЛЮЧЕНИЮ» (утверждение: 1)
- ВНИМАНИЕ! Неверная модель столкновений, проверьте группы сглаживания.
Примечание. Если отключение автоматического разрыва не работает, попробуйте упростить модель столкновения.
- ВНИМАНИЕ! Модель имеет двумерную геометрию (толщина менее 0,500 дюйма по любой оси).
- Ограничивающая рамка вне диапазона
Совет. Решением может быть разделение модели на несколько более мелких частей, если это возможно.
В случае, если ваша модель не будет сталкиваться с другими объектами в мире, кажется, вы также можете проигнорировать эту ошибку, если это необходимо, поскольку она не влияет на производительность.
Примеры SDK
В SDK есть множество примеров моделей, в том числе несколько полностью артикулированных персонажей и игроков. Их можно найти в sourcesdk_content\\modelsrc\ .
Примечание. Образцы моделей Left 4 Dead и Left 4 Dead 2 можно найти по адресу \sdk_content\modelsrc\
sdk Полный исходный код SMD для обеих моделей игроков в Day of Defeat: Source. tf Полный, но устаревший источник DMX для всех классов TF2. Референсные сетки Rigged также доступны в форматах SMD и Maya. generic Измененный риг ValveBiped (без мешей) cstrike Модель игрока "Urban CT" Несколько статических реквизитов hl2 Airboat и багги Antlion Guard Мужчина-гражданин (старая версия с несколькими анимациями) Некоторые вещи CS, которые, вероятно, являются дубликатом содержимого \cstrike Модели просмотра для всего оружия HL2 hl2mp Все только с многопользовательской анимацией: Комбинированный солдат Метрокоп Мужчина-бунтарь Left 4 Dead Обычные зараженные Модели, группы тел и команды, необходимые для динамических скинов Пример разрушаемого деревянного рельса Примеры взрывного оружия для красных газовых баллончиков и баллоны с пропаном Пример динамической опоры Left 4 Dead 2 Breakable Woodrail отличается от той, что используется в Left 4 Dead 1 Пример динамической опоры рушащегося потолка
Вы используете браузер, не поддерживаемый Interlopers, поэтому на сайте все может выглядеть некорректно. Мы настоятельно рекомендуем вам выполнить обновление по нескольким причинам.
Учебники
Создание файла .QC
По многочисленным просьбам (я думаю), пришло время для небольшого урока по компиляции модели. Обратите внимание, что в этом уроке я собираюсь показать вам только команды QC, экспорт и другие элементы моделирования, которые будут показаны в другом уроке. Я собираюсь рассказать о простых физических, динамических и статических моделях. Никаких тряпичных кукол, NPC или транспортных средств.
Эталонная модель (.smd, экспортированный как эталонный кадр, должен называться model_ref.smd)
Анимация бездействия (.smd экспортируется как последовательность анимации. Должен содержать только кадры 0 и 1 анимации бездействия. Должен называться model_still.smd)
физическая модель (файл .smd, экспортированный как система отсчета, должен называться model_phys.smd)
Теперь, когда у вас есть все файлы SMD, пришло время компилировать.
Предлагаю для начала взять мой пример QC-файла. Он содержит все основные команды для создания статической или простой физической опоры.
(сохранить цель как..)
$modelname Указывает компилятору, где сохранить выходной файл .MDL. Путь зависит от конфигурации игры, в которой вы находитесь. Если вы откроете приложение Source SDK, вы увидите внизу список игр, которые у вас есть для Source Engine. Выберите тот, для которого вы делаете свою модель, ваш мод должен быть указан, если вы создали его правильно. Он сохранит файл .MDL в папке models вашего мода/игры. Для мода под названием MOD1 это будет:
C:\Program Files\Valve\Steam\SteamApps\SourceMods\MOD1\models\, а затем путь, указанный в команде $modelname. Если ваша команда:
Полный путь к вашей модели будет таким:
Обратите внимание, что путь+имя модели после команды $modelname не требует "".
$cdmaterials Эта команда сообщает движку, где брать текстуры. Когда вы экспортировали свой model_ref.smd, каждой грани было присвоено имя текстуры, но не путь. Теперь эта команда сообщает движку, в какой папке находится текстура. Базовый путь для текстуры:
Обычно в материалах создается папка с именем models, куда помещаются все текстуры, используемые для моделей. Вы также должны создать подпапку в materials\models с именем папки, в которой находится ваша модель, например, наш biglamp01.mdl находится в props_city, поэтому ваши текстуры будут помещены в materials\models\props_city\biglamp01_texture.vmt. Конечный путь будет таким:
В этом случае наша команда будет выглядеть так:
$scale Эта команда может изменить масштаб вашей модели, если это необходимо. Когда вы делаете свою модель, вы должны учитывать, что 1 единица в 3Ds MAX = 1 единица в Hammer. Но если по какой-либо причине модель неправильно масштабируется, вы можете изменить значение этой команды, где 1 = исходный размер модели.
$body Это сообщает компилятору, какой SMD является эталонной моделью. У некоторых моделей есть много частей, поэтому у них есть пара таких команд. Но в простой статической или физической опоре нужен только один. Ваша команда должна выглядеть так:
$body studio "biglamp01_ref.smd"
studio – это название подраздела. Но это не очень важно для простого реквизита.Затем у вас есть имя эталонного файла между "". Обратите внимание, что пути нет, поскольку SMD должны находиться в той же папке, что и файл контроля качества.
$origin X Y Z Эта команда не нужна для большинства реквизитов, она в основном предназначена для специальных целей, таких как вид оружия от первого лица. Просто замените буквы X, Y и Z координатами, которые изменят исходную точку. Я предлагаю вам просто удалить его из файла QC, если вы делаете только реквизит.
$upaxis Y Эта простая команда нужна только пользователям Maya. Поскольку Maya использует ось Y в качестве вертикальной оси, просто вставьте эту команду в свой файл контроля качества, чтобы сделать модель прямой. Для пользователей MAX просто сотрите его.
$staticprop Эта команда сообщает движку, что это свойство является статическим. Он сворачивает все кости и вложения в исходную точку центра на 0,0,0. Если вы поместите это в свой QC, вы сможете использовать эту модель только как prop_static или как prop_detail в Hammer.
$surfaceprop Используйте эту команду в модели prop_static, чтобы сообщить движку, какой это тип реквизита. Вот список значений, которые вы можете поместить между "" сразу после команды:
$sequence Это команда последовательности. Он включает анимацию в файл модели. Вот типичная команда для статической опоры:
$sequence idle "biglamp01_still.smd" loop fps 1
idle – это имя последовательности.
между "" находится имя файла последовательности.
loop означает, что анимация повторяется.
fps 1 — частота кадров в секунду в последовательности. В этом случае 1 больше не нужно, так как анимация простаивает.
$collisionmodel Это команда физической модели. Это необходимо как в статических, так и в физических моделях, но не в prop_detail. Вот типичная команда физической модели:
$collisionmodel "biglamp01_phys.smd" $Mass 10
$concave
>
Здесь вам нужно только изменить имя файла физической модели и массу. Масса указана в килограммах (2,2 фунта = 1 килограмм).
$keyvalues Ключевые значения нужны только для prop_physic. Это похоже на команду $staticprop. Он сообщает движку, как модель должна реагировать на физику. Вот типичная команда ключевых значений:
Вам просто нужно изменить значение Type.Size на propdata. Эти значения находятся в файле source engine.gcf/hl2/scripts/propdata.txt, но я дал вам его копию.
Бумага.Маленький
Ткань.Средний
и т. д.
Просто используйте тот, который, по вашему мнению, больше подходит для вашей модели.
Для prop_static или prop_detail требуются следующие команды:
$modelname
$cdmaterials
$body
$staticprop
$surfaceprop
$sequence
$collisionmodel р>
Для prop_physic требуются следующие команды:
$modelname
$cdmaterials
$body
$sequence
$collisionmodel
$keyvalues propdata
Я пытаюсь скомпилировать альфа-модель hl1, и каждый раз, когда я пытаюсь скомпилировать ее, выдается эта ошибка:
` ********** ОШИБКА **********
/reference.smd.smd не существует
ЛОМ: Удалена пустая временная папка компиляции "C:\Пользователи\Александр\Загрузки\Half-Life_Alpha.1\Half-Life Alpha\клапан\модели\клапан".
. Компиляция ".\hgrunt.qc" завершена. Проверьте выше на наличие ошибок.`
Я попытался отредактировать файл .qc с помощью блокнота, но ничего не помогло.
В противном случае проблема будет довольно расплывчатой, без подробностей. Что находится в файле .qc? Что вы пытались изменить? Присутствуют ли все файлы, которые должны быть?
Хорошо, я проверил папку, в которой находится файл qc, и reference.smd находится в той же папке, что и qc. я попытался удалить .smd из файла qc, но ничего не изменилось.
также, если я попытаюсь пропустить ссылку и ссылку на пистолет, все остальные файлы, такие как walk.smd, выдают ту же ошибку.
я компилирую с помощью программы Crowbar.
вот файл .qc
`// Создано Crowbar 0.67
$bodygroup "body"
studio "reference.smd"
>
$bodygroup "weapons"
studio "gunreference.smd"
>
$sequence "walk1" "hgrunt_anims\walk1.smd"
fps 30
loop
LX
>
$sequence "walk2" "hgrunt_anims\walk2. smd"
fps 30
loop
LX
>
$sequence "run" "hgrunt_anims\run.smd"
fps 30
loop
LX
>
$sequence "diesimple" "hgrunt_anims\diesimple.smd"
fps 30
X
>
$sequence "dieforward " "hgrunt_anims\dieforward.smd"
fps 30
X
>
$sequence "crouch" "hgrunt_anims\crouch.smd"
fps 30
>
$sequence "standup" "hgrunt_anims\standup.smd"
fps 30
>
$sequence "приседание" "hgrunt_anims\crouching.smd"
fps 30
>
$sequence "crawl" "hgrunt_anims\crawl.smd"
fps 30
loop
LX
>
$sequence "smflinch " "hgrunt_anims\smflinch.smd"
fps 30
>
$sequence "fire_grenade" "hgrunt_anims\fire_grenade.smd"
fps 30
>
$sequence "notarget" " hgrunt_anims\notarget.smd"
fps 30
>
$sequence "idle1" "hgrunt_anims\idle1.smd"
fps 30
loop
>< br />$sequence "idle2" "hgrunt_anims\idle2.smd"
fps 30
loop
>
$sequence "reload" "hgrunt_anims\reload.smd"
>< event 1 43 >
fps 30
loop
>
$sequence "shootcycle" "hgrunt_anims\shootcycle.smd"
< event 2 4 >
fps 30
loop
>
$sequence "frontkick" "hgrunt_anims\frontkick.smd"
< event 3 14 >
fps 30
>< br />$sequence "swim" "hgrunt_anims\swim.smd"
fps 30
loop
>
$sequence "signal" "hgrunt_anims\signal.smd"
>30 кадров в секунду
>
$sequence "180L" "hgrunt_anims\180L.smd"
30 кадров в секунду
>
$sequence "180R" "hgrunt_anims\180R.smd" "
fps 30
>
$sequence "strafeleft" "hgrunt_anims\strafeleft.smd"
fps 40
цикл
LX LY
>
$sequence "straferight" "hgrunt_anims\straferight.smd"
fps 40
цикл
LX LY
>
`
Авторские права на сайт и нединамический контент © 2022, Logic & Trick. Оригинальный сайт по атому. Все права защищены.
Все ресурсы, представленные участниками, защищены авторскими правами их соответствующих авторов, если не указано иное.
TWHL — это фан-сайт, не связанный с корпорацией Valve. Мнения, выраженные пользователями, являются их собственными и не отражают мнения какой-либо другой организации.
Обработано за удручающе загадочные 422 миллисекунды.
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Проблема с оснасткой модели
Забудьте о посте о взломе головы.
Я решил поставить скелет из HL2 на HD-модель Джины (сделанную Ромкой и многими другими) из HL:S DM.
В разделе 5 ("составление базового тряпичной куклы") части 2 у меня возникла проблема:
Модель движется при перемещении кости (с ошибкой, но движется). Ok. В моей модели не бывает:
Я следовал всем инструкциям. Что мне делать?
Редактировать: упс. Я забыл сказать, что использую скелет модели "Гордон Фримен".
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
xenoaisam prop_physics
Сообщений: 158 Присоединился: Сб, 28 августа 2010 г., 20:31 Место: Combine Citadel Контактное лицо:
это означает, что кость не приросла к коже должным образом
редактировать:
я бы посоветовал вам импортировать модель gordon hl2 в 3dsmax, затем просто удалить голову gordon и заменить на gina. удаление только головы гордона не коснется костной кожи на другой части тела. я думаю.
~Моя красавица и чудовище~
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
xenoaisam написал: это значит, что кость не приросла к коже должным образом
редактировать:
я бы посоветовал вам импортировать модель gordon hl2 в 3dsmax, затем просто удалить голову gordon и заменить на gina. удаление только головы гордона не коснется костной кожи на другой части тела. я думаю.
Я сделал это, но продолжает выдавать ту же ошибку.
EDIT: ВАУ, я не знаю, что я сделал, но я могу продолжить обучение.
Я оставил эту тему открытой, если мне нужна дополнительная помощь.
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Дубликат разрешен, потому что это важно.
Хорошо, я близок к успеху. Но ошибка отделяет его:
ВНИМАНИЕ! Модель имеет двумерную геометрию (толщина менее 0,500 дюйма по любой оси).
Я продолжаю поиск по форумам об этой ошибке. Вероятно, это связано с материалами (гладкие группы) или с моделью столкновения (я думаю, что я делаю это очень хорошо).
Кто-нибудь поможет?(если, наконец, эта работа, у нас скоро будут новые модели).
Я думаю, что исправил эту ошибку (я перезапишу текстуры?), но (забудьте сказать раньше) я все еще продолжаю эту ошибку:
ВНИМАНИЕ: ДОРОГОСТОЯЩАЯ МОДЕЛЬ СТОЛКНОВЕНИЯ. (45 частей - разрешено 40)
ВНИМАНИЕ: ошибка с выпуклыми элементами C:\Users\Rafa\Desktop\Nueva ковра (2)/phymodel.smd, построение одной выпуклости.
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
xenoaisam prop_physics
Сообщений: 158 Присоединился: Сб, 28 августа 2010 г., 20:31 Место: Combine Citadel Контактное лицо:
смеется, простая модель, на компиляцию которой нужно время XD
просто взгляните на образец контроля качества, который я вам показывал раньше~
~Моя красавица и чудовище~
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Удалена моя ошибка (смеется, я перепутал файлы .SMD, XD).
(Здравствуйте, Джина. Рад видеть вас в OC)
Возможно, фимомодель, так что исправлю.
Это означает, что я знаю (более или менее) риг модели и когда-нибудь смогу сделать собственную модель:
Спасибо Xenoaisam за помощь.
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Извините за этот двойной пост.
Теперь я не могу устранить ошибку "ВНИМАНИЕ! Модель имеет двумерную геометрию (толщина менее 0,500 дюйма по любой оси)".
В прошлый раз работало, а сейчас не работает.
Кто-нибудь может помочь мне еще раз?
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
fug4life Beta Tester
Сообщений: 4093 Присоединился: Пн, 11 декабря 2006 г., 10:35
'Наверное, я бы приоделся перед тем, как ты встретишься с Вайолет'.
"У нее нулевая терпимость к идиотам".
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
Boroko Vertex
Сообщений: 18 Присоединился: вс, 19 сентября 2010 г., 14:26 Местоположение: LOL land Контактное лицо:
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
У меня хорошие новости. Джина почти готова. Посмотрите на изображение, чтобы увидеть информацию:
Думаю, завтра или послезавтра закончу.
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
fug4life Beta Tester
Сообщений: 4093 Присоединился: Пн, 11 декабря 2006 г., 10:35
'Наверное, я бы приоделся перед тем, как ты встретишься с Вайолет'.
"У нее нулевая терпимость к идиотам".
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Физика пиздец. Но я вижу Phymodel и вижу, что все идеально.
Вот Phymodel.SMD и мой файл .QC:
(если удалить ikchains и/или физические данные, модель будет иметь ошибку при компиляции. "$concave $maxconvexpieces 50" избавится от "дорогостоящей модели столкновения" и "предупреждения, 2 модель бла-бла.." ошибки).
P.D: Я исправил ошибки шеи и "пингаса". А вот переднюю часть шеи исправить невозможно (спровоцировано на скелет, "баг модели HEV Helmet").[/code]
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
fug4life Beta Tester
Сообщений: 4093 Присоединился: Пн, 11 декабря 2006 г., 10:35
Пытались использовать reference.smd для создания физической модели? Я знаю, что это работает на менее сложных моделях, стоит попробовать.
Также есть несколько руководств по обнаружению ошибок в файлах smd.
Если вы посмотрите на координаты, вы найдете значения, которые чрезвычайно высоки и неуместны по сравнению с другими, откройте ref.smd и найдите те же координаты и добавьте правильные непрерывные значения. Это вызывает декомпилятор модели, но это можно исправить, отсортировав значения, дайте мне найти mah FP thread для учебника, который мне помог.
Редактировать: вот и все.
Если вы прочтете мою ветку, то увидите, что на самом деле я скопировал весь последний кадр анимации открытия, чтобы действовать как два кадра анимации открытия, которые я пытался исправить. Не совсем такая же проблема, как у вас, но теория, стоящая за всем этим, должна быть информативной.
'Наверное, я бы приоделся перед тем, как ты встретишься с Вайолет'.
"У нее нулевая терпимость к идиотам".
MaestraFénix Team Member
Сообщений: 2467 Присоединился: Пн, 10 мая 2010 г., 11:50 Местоположение: Испания Контактное лицо:
Я использовал reference.SMD для создания Phymodel, а затем и тряпичной куклы (в данном случае эталон называется Gina.SMD).
Я посмотрю завтра, если найду ошибку.
Нажмите на мою фотографию, чтобы добавить меня в друзья в Steam
Фото в Steam | Видео в Steam
Читайте также: