Как создать файл контроля качества для 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.)

< /TR> < TD>Не отправлять персонажа обратно на этаж в конце сценария < TD>
Event Event description Дополнительные параметры
1000 Персонаж мертв в этот момент
1001 Последовательность не прерывается с этой точки
1002 Последовательность прерывается с этой точки
1003 Запускает триггер на карте< /TD> Имя триггера
1004 Воспроизвести файл .wav Путь к файлу .Wav
1005 Воспроизвести файл предложения Путь к файлу предложения
1006
1007 Перейти к этой анимации после завершения скрипта Имя последовательности анимации
1008 Воспроизведение именованного файла .wav через голосовой канал Путь к файлу .Wav
1009 Проиграть случайную группу предложений (вероятность 25 %)
1010 На данный момент персонаж жив
События, характерные для монстров
2001 Монстр роняет легкое тело
2002 Монстр роняет тяжелое тело
2010 Monster воспроизводит звук свинга или свистящего звука

События на стороне клиента для моделей представления
5001 Muzzleflash на насадке 0 Масштаб дульного луча и тип спрайта
5002 Искра на насадке
5004 Издавать звук Путь к файлу Wav
5011 Дульный вспышка на насадке 1 Масштаб дульного вспышка и тип спрайта
5021 Дульный вспышка на насадке 2 Масштаб дульного вспышки и тип спрайта
5031 Дульные плашки h на насадке 3 Масштаб дульного плафона и тип спрайта
6001 Выброс латунного снаряда из насадки

Мероприятия Sven-Coop

(Этот список взят из "Modeling For Half-Life.doc" в Half-Life SDK.)

< TR> < TD>ACT_DIE_HEADSHOT < TD>ACT_FLY_LEFT < TD>Поведение по умолчанию, когда больше ничего не происходит (цикл) < TD>ACT_INSPECT_WALL < TR> < TD>Ходить (цикл)
Тег действия Описание
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 Вздрогнул от удара в грудь
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
ACT_IDLE_ANGRY Альтернативная анимация бездействия, в которой монстр явно взволнован.(цикл)
ACT_INSPECT_FLOOR Для активного бездействия -- посмотрите на что-нибудь на полу или рядом с ним
Для активного бездействия -- посмотрите на что-то прямо перед собой
(не обязательно на стену или на стену)
ACT_LAND Конец прыжка
ACT_LEAP Длинный прыжок вперед
ACT_MELEE_ATTACK1 Атака с близкого расстояния
ACT_MELEE_ATTACK2 Альтернативный удар с близкого расстояния
ACT_RANGE_ATTACK1 Атака оружием дальнего боя
ACT_RANGE_ATTACK2 Альтернативный дальний бой
ACT_RELOAD Перезарядить оружие
ACT_ROLL_LEFT Собрать и перевернуться влево
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
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, которая не взвешена по вершинам. Два имени команды, но одна и та же функция.

Модели необходимо скомпилировать, прежде чем их можно будет использовать в игре. Компиляция состоит из трех компонентов:

  1. Набор исходных файлов (SMD, DMX, VTA), описывающих модель. См. Экспорт модели, если у вас ее нет. FBX имеет ограниченную поддержку в CS:GO, начиная с обновления 1.34.8.4.
  2. Файл QC, который определяет, в манере, не слишком отличающейся от VMT текстуры, как исходные файлы должны быть преобразованы в модель движка Source.
  3. Studiomdl, программа SDK, которая использует QC и выдает (надеюсь!) скомпилированную модель.

Настройка

Предполагая, что ваши исходные файлы успешно экспортированы из вашего любимого программного обеспечения для 3D-моделирования, единственный шаг, который вам нужно сделать перед компиляцией, — это выбрать текущий VPROJECT. Это определяет, куда studiomdl будет записывать скомпилированную модель. Вы можете настроить значение:

  1. Глобально, выбрав свою игру/мод в раскрывающемся списке средства запуска SDK.
  2. Только для 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

Читайте также: