Скриптовый файл *.qc

.qc скрипт - простой текстовый файл или несколько файлов, созданных в текстовом редакторе типа NOTEPAD, и необходимыхчтобы компилировать модель. Cписок общих команд для studiomdl, с параметрами, описанием, и примером:

$modelname
Эта команда сообщает studiomdl, где поместить откомпилированную модель.
example: $modelname "C:\Half-Life\valve\models\player\Gordon"

$cd <путь>
Эта команда указывает studiomdl текущую рабочую папку. Эта команда такая же как и в DOS'e "cd".
пример: $cd "C:\Half-Life\valve\models\source\Gordon"

$cdtexture <путь>
Эта команда сообщает studiomdl, где лежат текстуры.
пример: $cdtexture "C:\Half-Life\valve\models\source\Gordon\textures"

$externaltextures
Эта команда сообщает studiomdl сохранять ли текстуры модели как отдельный *t.mdl файл.
пример: $externaltextures

$cliptotextures
Эта команда сообщает studiomdl компилировать ли текстуры с моделью. Это обычно используется с моделями игрока для дезматча.
пример: $cliptotextures

$scale #
Масштаб модели больше или меньше. По умолчанию всегда равно1.
пример: $scale 1.2

$origin
Это смещения начала координат модели. Этот параметр нужен для точной настройки модели, если вы к примеру модель сделаливыше 0 по координате Z, то вам надо обязательно указать насколько выше вы её поместили или модель будет неправильно показыватсяна экране. Внимание: после декомпиляции модели оружия из CS анимации рук сьезжает нафих в совсем не туда куда нужно, спомощью этой команды можно вернуть модель рук обратно не редактируя анимации.
пример: $origin 0 0 36

$eyeposition
Для монстров в одиночной игре, нужно чтобы сообщить игре где глаза монстра находятся относительно начала координат модели.
пример: $eyeposition 0 0 65

$body <имя smd файла> [reverse]
Это ссылка на .smd файл сеточной оболочкой модели; базовая модель с кожей. Команда reverse зеркально отражает нормаливсех поверхностей, используется только в случае, если происходят некоторые проблемы при экспортировании из 3D MAX, когда нормалиповерхностей полностью полностью изменены.
пример: $body studio "monster" reverse

$bodygroup <имя группы> {smd группы}
Это позволяет вашей модели иметь взаимозаменяемые части. Этот пример показывает как сделать монстра, который может держатьдробовик, mp5 или ничего. Не включайте .smd расширение. Я несовсем понял как точно пользоватся этой командой, попозже разберусь.
пример:
$bodygroup weapons
{
studio "shotgun"
studio "mp5"
blank
}

$texturegroup <имя группы> {bmp группы}
Команда позволяет вашей модели иметь взаимозаменяемые текстуры. Этот пример показывает, как нормальные текстуры головы и теламогут быть заменены в игре кровавыми текстурами. Убедитесь, что включили .bmp расширение.
пример:
$texturegroup pain
{
{ "body_normal.bmp" "head_normal.bmp"}
{ "body_pain.bmp" "head_pain.bmp" }
}

$renamebone <старое имя кости> <новое имя кости>
Character Studio версии 2.x и выше использует другое названия длянекоторых из костей двуногого животного. Если вы смешиваете модели, илимультипликации от болееранних версий тогда они должны быть переименованны. Этой командой можнолегко переименовать кости в течение компилирования, вместо того чтобыпереименовать их в каждом .max файле.
пример: $renamebone "Bip01 R Clavicle" "Bip01 R Arm"

$include <.qc файл>
Включать ли другой .qc файл в компиляцию.
пример: $include "C:\Half-Life\valve\models\player\player_shared.qc"

$attachment <#> <кость>
Задаёт определённую точку которая присоединяется к заданной кости, потом можно воспроизводить различные эффекты, такие как огонь, взбрызги крови и т. д. в этой точке. Координаты задают удаление точки от кости.
пример: $attachment 0 "Bip01 R Hand" 20 2 5

$controller <#> <кость> <ось вращения> <лимит врашения в градусах>
Эта команда позволяет игре управлять вращением костей. Наиболее очевидный пример - вращение головы монстра, в примере 1. Команда позволяет игре вращать голову от -60 градусов до +60 по оси X. Пример 2 показывает как сделать контроллер рта чтобы монстр мог говорить.
пример 1: $controller 0 "Bip01 Head" XR -60 60
пример 2: $controller mouth "Bone03" ZR 0 45

$hbox <группа #> <кость>
Команда задеёт hitboxes для костей модели. Эти два примера показывают как назначить хитбоксы ноге.
пример: $hbox 7 "Bip01 R Leg1" 0.31 -3.97 -2.84 17.60 3.94 2.97
пример: $hbox 7 "Bip01 R Foot" -0.56 -2.34 -2.19 3.81 8.00 2.66

$sequencegroupsize <# в KB>
Это отделяет скелетные анимации от сети в меньшие файлы. Нужно для того чтобы анимации загружались в память только когда необходимо, вместо того чтобы загружать их все. Это полезно для монстров с заданными сценарием анимаций.
пример: $sequencegroupsize 64

$sequence <имя файла> "smd" [motion extraction] [fps <#>] [blend ] [origin ] [scale <#>] [loop] [frame ] ['activity' 'multiplier'] {event <#> }
Команда указывает компилятору файл с анимацией.
Подробней о параметрах $sequence:

[motion extraction] Этот параметр указывает оси по которым будет происходить перемешение модели при воспроизведении анимации. Наиболее общие опции: X, Y, LX, и LY, которые обозначают движения по x и y оси. LX и LY - для линейного движения. X и Y работают также как LX и LY. Это используется в Half-Life, чтобы перемещать монстра.

[fps <#>] Устанавливает скорость проигрывания кадров анимации в секунду.
пример: fps 15

[blend ] Вы можете перечислять два .smd файла мультипликации и смешивать их вместе. Этот пример смешивает от -45 до +45 градусов по оси X. Параметр не изучен.
пример: blend XR -45 45

[origin ] То же самое что и $origin но только применяется к данной анимации.
пример: origin 0 0 13

[scale <#>] То же самое что и $scale но только применяется к данной анимации.
пример: scale 1.3

[loop] Указывает что анимация зацикленна.
пример: loop

[frame ] Это ограничивает воспроизведение кадров анимации.
пример: frame 5 10

['activity' 'multiplier'] Если у вас несколько анимаций к примеру выстрела из одного и тогоже оружия, то данная команда укажет игре что данную анимацию воспроизводить нужно в 3 раза чаще чем остальные.
пример: ACT_RANGE_ATTACK2 3

{event <#> <кадр> <опции>} События которые может вызывать данная анимация. Параметр изменяет не очень много но весма полезен для создания различных эффектов. Можно вызывать: воспроизведение звука, показывание спрайта в определённой точке, запускать определённый механизм на карте или делать еще что-нибудь если заранее запрограмировать то что вам нужно.

пример 1: { event 5004 1 "weapons\shoot.wav" }
Случай 5004 - воспроизведение звука. Впишите путь, начинающийся с папки вашего мода..

пример 2: { event 5001 1 "20" }
События 5001, 5011 и 5021 - для спрайтов, особенно огня и дыма для оружия. Этот пример запускает mp5 спрайт, muzzleflash1.spr с системой координат 1. "20" указывает, что спрайт # 0 масштабируется в 2 раза больше. Ниже - диаграмма спрайтов с порядковыми номерами и описанием для чего они используются:

0: muzzleflash1.spr - mp5
1: muzzleflash2.spr - shotgun, pistols
2: muzzleflash3.spr - hornetgun

Точка крепления должна быть определена для спрайтов. Случай 5001 делает так, чтобы начало координат было в $attachment 0, начало координат 5011-ых спрайтов - в $attachment 1, и начало координат 5021-ых - в $attachment 2.

пример 3: { event 5002 10 "5" }
Случай 5002 - для искр. Здесь это проигрывается относительно системы координат 10 и масштабируется 5 раз.

пример 4: { event 7 2 }
Это просто запускает случай # 7 к системе координат 2. Случай 7 - может быть всё что угодно. Это должно быть заданно в програмном коде ИСКУССТВЕННОГО ИНТЕЛЛЕКТА монстра.

пример 5: { event 1003 20 "bigexplosion" }
Случай 1003 запускает некий механизм в карте под названием "bigexplosion", к системе координат 20.

Вот примеры команды $sequence:

пример 1: $sequence crouch_shoot_mp5 "crouch_shoot_mp5"
Очень простая команда содержащая в себе минимум, необходимый для того чтобы она работала. Crouch_shoot_mp5 - имя анимации,и "crouch_shoot_mp5" - файл анимации, без .smd расширения.

пример 2: $sequence shoot "shoot" { { event 5001 "20" } { event 5004 1 "hks1.wav" } }
Этот пример использует события, чтобы показать действие спрайтов и звук для стрельбы из оружия.

Вот и всё что можно было сказать о содержании qc, далее будутопубликованны примеры различных qc файлов с описанием каждой команды.


Источник: MTeam

Автор: yxo

CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0041 ]